VPS.org API

REST API- dokumentasjon

DNS-administrasjons-API

Administrer DNS-soner og -oppføringer programmatisk for domenene dine.

Endepunkter 4 endepunkter
Basissti /api/v1/dns-zones
Autentisering Bearer- tegn kreves

Oversikt

DNS API tilbyr full håndtering av DNS- soner og poster. Alle soner er verter på VPS.orgs autoritative navnetjenere med automatisk generering og utføring av BIND9- filer.

Navnetjenerinfrastruktur

Nøkkelfunksjoner

Autentisering

Alle DNS API- forespørsler krever autentisering med Bearer- tegn. Lag API- tegn fra konto- instrumentbordet på /account/developers/ med følgende tillatelser:

Eksempel

Authorization: Bearer vps_abc123def456...
Viktig: API- tegn vises bare én gang under oppretting. Lagre dem sikkert. Hvis du mister et symbol, må du lage et nytt.
BLI /api/v1/dns-zones/

List opp alle DNS-soner

Hent en paginert liste over alle DNS- soner som den autentiserte brukeren eier. Støtter filtrering etter domenenavn.

Spørringsparametere

Parameter Type Obligatorisk Beskrivelse
domain string Nei Filter zones by exact domain name (e.g., example.com)

Eksempelforespørsel

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/dns-zones/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
  headers: {'Authorization': 'Bearer YOUR_API_TOKEN'}
});

const zones = await response.json();
console.log(zones);

Eksempelsvar

[
  {
    "uuid": "abc123-def456-ghi789",
    "domain": "example.com",
    "created_at": "2024-01-15T10:30:00Z",
    "record_count": 12
  },
  {
    "uuid": "xyz789-uvw456-rst123",
    "domain": "myapp.io",
    "created_at": "2024-06-20T14:15:00Z",
    "record_count": 8
  }
]

Svarfelt

Felt Type Beskrivelse
uuid string Unique zone identifier (used in API requests)
domain string Domain name for this DNS zone
created_at datetime Zone creation timestamp (ISO 8601 format)
record_count integer Total number of DNS records in this zone

Svarstatuskoder

200 Successfully retrieved DNS zones list
401 Unauthorized - Invalid or missing API token
403 Forbidden - Token lacks dns:list permission
BLI /api/v1/dns-zones/{uuid}/

Hent detaljer om DNS- sone

Hent detaljert informasjon om en bestemt DNS-sone, herunder alle poster.

Baneparametere

Parameter Type Obligatorisk Beskrivelse
uuid string Ja Unique zone identifier

Eksempelsvar

{
  "uuid": "abc123-def456-ghi789",
  "domain": "example.com",
  "created_at": "2024-01-15T10:30:00Z",
  "record_count": 5,
  "records": [
    {
      "uuid": "rec-001",
      "record_type": "A",
      "name": "@",
      "value": "192.0.2.1",
      "ttl": 3600,
      "priority": null,
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "uuid": "rec-002",
      "record_type": "MX",
      "name": "@",
      "value": "mail.example.com",
      "ttl": 3600,
      "priority": 10,
      "created_at": "2024-01-15T10:32:00Z"
    }
  ]
}

Svarstatuskoder

200 Successfully retrieved zone details
404 Zone not found or not owned by user
POST /api/v1/dns-zones/

Opprett DNS- sone

Opprett en ny DNS- sone for et domene. Sonen blir straks levert til VPS.org navnetjenere.

Forespørselsparametere

Parameter Type Obligatorisk Beskrivelse
domain string Ja Domain name (e.g., example.com)

Eksempelforespørsel

cURL
Python
JavaScript
curl -X POST "https://admin.vps.org/api/v1/dns-zones/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "newdomain.com"}'
import requests

url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {"domain": "newdomain.com"}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({domain: 'newdomain.com'})
});

const zone = await response.json();
console.log(zone);

Eksempelsvar

{
  "uuid": "new-zone-uuid",
  "domain": "newdomain.com",
  "created_at": "2026-01-18T16:45:00Z",
  "record_count": 0,
  "records": []
}

Svarstatuskoder

201 DNS zone created successfully
400 Bad Request - Invalid domain name or zone already exists
403 Forbidden - Token lacks dns:create permission
SLETT /api/v1/dns-zones/{uuid}/

Slett DNS- sone

Slett en DNS- sone og alle tilknyttede poster for alltid. Denne handlinga kan ikke angres.

Baneparametere

Parameter Type Obligatorisk Beskrivelse
uuid string Ja Unique zone identifier

Svarstatuskoder

204 Zone deleted successfully (no response body)
403 Forbidden - Token lacks dns:delete permission
404 Zone not found
BLI /api/v1/dns-zones/{uuid}/records/

List DNS- poster i sone

Hent alle DNS-poster for en bestemt sone (nedlagt rute).

Baneparametere

Parameter Type Obligatorisk Beskrivelse
uuid string Ja Zone UUID

Eksempelforespørsel

curl -X GET "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Eksempelsvar

[
  {
    "uuid": "rec-001",
    "record_type": "A",
    "name": "@",
    "value": "192.0.2.1",
    "ttl": 3600,
    "priority": null,
    "created_at": "2024-01-15T10:30:00Z"
  },
  {
    "uuid": "rec-002",
    "record_type": "MX",
    "name": "@",
    "value": "mail.example.com",
    "ttl": 3600,
    "priority": 10,
    "created_at": "2024-01-15T10:32:00Z"
  }
]
POST /api/v1/dns-zones/{uuid}/records/

Opprett DNS- opptak i sone

Legg til en ny DNS- post til en bestemt sone (nedre rute).

Forespørselsparametere

Parameter Type Obligatorisk Beskrivelse
record_type string Ja Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Ja Record name (@ for root, subdomain, or FQDN)
value string Ja Record value (IP address, hostname, text)
ttl integer No Time to live in seconds (default: 3600)
priority integer For MX/SRV Priority (required for MX and SRV records)

Eksempelforespørsel

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "record_type": "A",
    "name": "www",
    "value": "192.0.2.1",
    "ttl": 3600
  }'
import requests

url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "record_type": "A",
    "name": "www",
    "value": "192.0.2.1",
    "ttl": 3600
}

response = requests.post(url, headers=headers, json=data)
print(response.json())

Svarstatuskoder

201 DNS record created successfully
400 Bad Request - Invalid parameters or validation error (e.g., MX record missing priority)
GET PUT PATCH DELETE /api/v1/dns-records/{uuid}/

Håndter DNS- dataposter (direkte tilgang)

Fullstendige CRUD-operasjoner for individuelle DNS-poster ved bruk av post UUID.

Tilgjengelige operasjoner

Spørringsparametrer (for GET /api/v1/dns-records/)

Parameter Type Beskrivelse
zone string Filter records by zone UUID
record_type string Filter by record type (A, AAAA, MX, etc.)

Eksempel: Oppdater TTL til en post

curl -X PATCH "https://admin.vps.org/api/v1/dns-records/{rec-uuid}/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ttl": 1800}'

Supported DNS Record Types

Type Purpose Example Value Priority Required
A Maps domain to IPv4 address 192.0.2.1 Nei
AAAA Maps domain to IPv6 address 2001:0db8::1 Nei
CNAME Creates alias to another domain example.com Nei
MX Mail server for domain mail.example.com Ja
TXT Text record (SPF, DKIM, verification) v=spf1 include:_spf.google.com ~all Nei
NS Nameserver delegation ns1.example.com Nei
SRV Service location record 10 5060 sip.example.com Ja
CAA Certificate authority authorization 0 issue "letsencrypt.org" Nei

Beste praksis

TTL- oppsett

Vanlige mønstre

Sikkerhet

Feilhåndtering

Vanlige feil

Statuskode Feil Løsning
400 Ugyldig domenenavn Sikre at domene følger DNS- navnekonvensjoner
400 MX- post krever prioritet Inkludering priority felt for registreringer i MX og SRV
401 Ugyldig API- symbol Sjekk symbolformatet (må begynne med vps_)
403 Manglende tillatelse Lag nytt symbol med nødvendig dns:* rettigheter
404 Fant ikke sone/rekord Verifiser UUID og se til at ressursen tilhører din konto

Eksempel på feilrespons

{
  "detail": "MX records require a priority value",
  "error_code": "validation_error",
  "field": "priority"
}

Tester DNS- endringer

Verifiser opptak av post

# Query A record
dig example.com A

# Query specific nameserver
dig @ns1.vps.org example.com

# Query MX records
dig example.com MX

# Check all records
dig example.com ANY

Bruke tilkoblede verktøy