VPS.org API

REST API- dokumentasjon

DNS-administrasjons-API

Lag DNS- soner og besørg deres poster. Soner betjenes av ns1.vps.org, ns2.vps.org og ns3.vps.org.

Endepunkter 13
Basissti /api/v1/dns-zones, /api/v1/dns-records

Oversikt

En sone inneholder postene for ett domene. Alle endringer du gjør gjennom API blir presset til navntjenerne for VPS.org med en gang. For å tjene et domene fra disse sonene kan du sette navntjenerne på registratoren til ns1. vps.org, ns2. vps.org og ns3. vps.org.

Endringer lagres og publiseres i ett steg: hvis navnetjenerne nekter en endring, returnerer forespørselen 502 og ingenting lagres. En sone kan ikke opprettes for et domene som en annen konto allerede håndterer, en forelder eller et barn av en annen kontos sone, eller et navn som er reservert for VPS.org.

Påkrevd tillatelse: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

BLI /api/v1/dns-zones/

List opp alle DNS-soner

Returnerer sonene dine, nyeste først, 25 pr. side. Opptegnelser tas ikke med her. Hent en enkelt sone for å hente dem.

Spørringsparametere

Parameter Type Obligatorisk Beskrivelse
domain string Nei Gir bare området med nøyaktig dette domenenavnet
page integer Nei Sidenummer, fra 1.

Eksempelforespørsel

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/dns-zones/?domain=example.com" \
  -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, params={"domain": "example.com"})
for zone in response.json()["results"]:
    print(zone["uuid"], zone["domain"], zone["record_count"])
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/?domain=example.com', {
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});

const data = await response.json();
console.log(data.results);

Eksempelsvar

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c",
      "domain": "example.com",
      "created_at": "2026-09-06T03:11:48.829693Z",
      "record_count": 5
    }
  ]
}

Svarfelt

Felt Type Beskrivelse
uuid string Soneidentifikator
domain string Domenenavn, lagret med små bokstaver
created_at datetime Opprettelsestid (ISO 8601, UTC)
record_count integer Antall poster i sonen, herunder de tre NS-postene

Svarstatuskoder

200 Vellykket
403 Mangler eller er ugyldig API- symbol, eller symbolet mangler tillatelse
POST /api/v1/dns-zones/

Opprett DNS- sone

Oppretter en sone og publiserer den. Sonen starter med tre NS- poster for ns1, ns2 og ns3.vps.org, som er systemposter og ikke kan redigeres eller slettes.

Forespørselsparametere

Parameter Type Obligatorisk Beskrivelse
domain string Ja The domain name, for example example.com
curl -X POST "https://admin.vps.org/api/v1/dns-zones/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "example.com"}'

Eksempelsvar

{
  "uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c",
  "domain": "example.com",
  "created_at": "2026-09-14T21:02:11.402113Z",
  "records": [
    {
      "uuid": "1f2e3d4c-5b6a-4978-8a9b-0c1d2e3f4a5b",
      "record_type": "NS",
      "name": "@",
      "value": "ns1.vps.org",
      "ttl": 86400,
      "priority": null,
      "created_at": "2026-09-14"
    },
    ...
  ],
  "record_count": 3
}

Svarstatuskoder

201 Område opprettet
400 Manglende eller ugyldig domenenavn
BLI /api/v1/dns-zones/{uuid}/

Hent detaljer om DNS- sone

Returnerer en sone med alle postene i en posttabell. Svaret har samme form som laget- svar over.

curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Svarstatuskoder

200 Vellykket
404 Ikke funnet, eller den tilhører en annen konto
SLETT /api/v1/dns-zones/{uuid}/

Slett DNS- sone

Fjerner sonen fra alle tre navnetjenerne, sjekker at ingen av dem fremdeles tjener den, og så sletter den og dens poster. Hvis en navnetjener fremdeles svarer på området mislykkes forespørselen og sonen beholdes slik at du kan forsøke igjen.

curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Svarstatuskoder

204 Slettet. Svaret har ingen kropp.
400 En navnetjener tjener fremdeles sonen. Sonen ble ikke slettet; detaljfeltet viser feilene.
404 Ikke funnet, eller den tilhører en annen konto
BLI POST /api/v1/dns-zones/{uuid}/records/

List eller legg til dataposter i en sone

GET gir hver post i sonen som en enkel tabell (ikke paginert), sortert etter type og navn. POST legger en post til sonen og publiserer den.

Forespørselsparametere (POST)

Parameter Type Obligatorisk Beskrivelse
record_type string Ja A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Ja @ for domenet selv, eller en etikett som www. Navn er lagret med små bokstaver.
value string Ja Postdata, for eksempel en IP- adresse eller et vertsnavn. Vertsnavn trenger ikke verdier for punktum og TXT etter hverandre, begge legges til når posten offentliggjøres.
ttl integer Ja Tid å leve i sekunder
priority integer Bare MX og SRV Kreves for MX og SRV poster og ignoreres for alle andre typer. For SRV, sett vekt, port og mål i verdi.

Eksempelforespørsel

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"record_type": "MX", "name": "@", "value": "mail.example.com", "ttl": 3600, "priority": 10}'
import requests

zone_uuid = "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c"
url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
data = {"record_type": "A", "name": "www", "value": "203.0.113.10", "ttl": 3600}

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

Eksempelsvar

{
  "uuid": "9d430082-5562-42b4-a0b2-12a6f6c862f9",
  "record_type": "MX",
  "name": "@",
  "value": "mail.example.com",
  "ttl": 3600,
  "priority": 10,
  "created_at": "2026-09-14"
}

Svarfelt

Felt Type Beskrivelse
uuid string Registeridentifikator, brukt av /api/v1/dns-registrators/ endpoints
priority integer | null Prioritet for MX- og SRV-poster, ellers null
created_at date Bare opprettelsesdato (Å- MM- DD), uten klokkeslett

Svarstatuskoder

200 GET: sonens poster
201 POST: post opprettet
400 Valideringsfeil, for eksempel en ukjent posttype, manglende ttl, eller MX eller SRV uten prioritet
404 Ikke funnet, eller den tilhører en annen konto
POST /api/v1/dns-zones/{uuid}/sync/

Gjenpubliser et område

Dytter sonen og alle postene til navnetjenerne igjen. Ta opp endringer publiseres automatisk, men offentliggjøring er best mulig og en feil mislykkes ikke den opprinnelige forespørselen, så bruk dette når en endring ikke vises i DNS- oppslag. Ingen instans trengs.

curl -X POST "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/sync/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "detail": "Zone example.com synced to PowerDNS"
}
BLI POST /api/v1/dns-records/

Før opp eller opp registre over områder

GET gir postene for alle sonene dine, 25 pr. side, ordnet etter domene, type og navn. POST lager en post som sluttpunktet for sonepostene, men tar sonen i kroppen som sone_ uuid.

Spørringsparametere

Parameter Type Obligatorisk Beskrivelse
zone string Nei Bare poster i sonen med denne uuid- en
record_type string Nei Bare poster av denne typen, for eksempel MX (ikke hensyn til store/ små bokstaver)
page integer Nei Sidenummer, fra 1.
curl -X GET "https://admin.vps.org/api/v1/dns-records/?zone=c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c&record_type=A" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

curl -X POST "https://admin.vps.org/api/v1/dns-records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"zone_uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c", "record_type": "TXT", "name": "@", "value": "v=spf1 mx -all", "ttl": 3600}'
{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "4b8e2c10-7d3f-4a5b-9e6c-1a2b3c4d5e6f",
      "record_type": "A",
      "name": "www",
      "value": "203.0.113.10",
      "ttl": 3600,
      "priority": null,
      "created_at": "2026-09-14"
    }
  ]
}

Svarstatuskoder

200 GET: vellykket
201 POST: post opprettet
400 Valideringsfeil, eller zone_ uuid mangler eller ikke en av dine soner
BLI PUT PATCH SLETT /api/v1/dns-records/{uuid}/

Hent, oppdater eller slett et opptak

GET gir en post. PUT erstatter den og trenger posttype, navn, verdi og ttl. PACKS endrer bare feltene du sender. DELETE fjerner posten og returnerer 204 uten kropp. Endringer offentliggjøres med en gang. NS- oppføringene som ble opprettet med sonen er systemoppføringer: oppdatering eller sletting gir 403.

Når du FANGAR om prioritet for MX - eller SRV- platen, så send record_ type i samme forespørsel. Et produkt- organ med prioritet men uten record_ type tømmer prioriteten.
curl -X PATCH "https://admin.vps.org/api/v1/dns-records/4b8e2c10-7d3f-4a5b-9e6c-1a2b3c4d5e6f/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ttl": 300}'

Svarstatuskoder

200 GET, PUT eller PACK: registreringen
204 Slettet. Svaret har ingen kropp.
400 Valideringsfeil
403 Posten er en systemoppføring, eller symbolet mangler tillatelse
404 Ikke funnet, eller den tilhører en annen konto

Feilhåndtering

Valideringsfeil gir 400 med feiltast etter feltnavn:

{
  "priority": ["MX records require a priority value"]
}

Tester DNS- endringer

Spør navntjenerne for VPS.org direkte for å bekrefte at en endring er i live før registrator- delegeringen din eller hurtiglageret tar i bruk:

dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com