VPS.org API

Constellation name (optional)

DNS-bestuur-API

Skep Dns sones en bestuur hulle rekords. Sones word bedien deur ns1.vps.org, ns2.vps.org en ns3.vps.org.

Eindpunte 13
Basispad /api/v1/dns-zones, /api/v1/dns-records

Oorsig

A zone holds the records for one domain. Every change you make through the API is pushed to the VPS.org nameservers straight away. To serve a domain from these zones, set its nameservers at your registrar to ns1.vps.org, ns2.vps.org and ns3.vps.org.

Changes are saved and published in one step: if the nameservers refuse a change, the request returns 502 and nothing is saved. A zone cannot be created for a domain another account already manages, a parent or child of another account's zone, or a VPS.org reserved name.

Benodigde toestemming: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

KRY /api/v1/dns-zones/

Lys alle DNS-sones

Sit eers jou tydsones terug, nuutste, 25 per bladsy. Rekords word nie hier ingesluit nie; haal 'n enkele sone om dit te kry.

Navraagparameters

Parameter Tipe Vereis Beskrywing
domain string Nee Gee slegs terug die sone met presies hierdie domein naam
page integer Nee Bladsy nommer, beginne na 1

Voorbeeldversoek

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);

Voorbeeldantwoord

{
  "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
    }
  ]
}

Antwoordvelde

Veld Tipe Beskrywing
uuid string Zo_neidentifiseerder
domain string Domeinnaam, wat in die onderste kas gestoor word
created_at datetime Skeppingstyd (Iso 8601, UTC)
record_count integer Aantal rekords in die gebied, waaronder die drie NS-verslae

Reaksiestatuskodes

200 Sukses
403 Ontbrekende of ongeldige API-bewys, of die teken het nie die nodige toestemming nie
AGT /api/v1/dns-zones/

Skep Dns Zone

Skep 'n sone en publiseer dit. Die sone begin met drie NS rekords vir ns1, ns2 en ns3.vps.org, wat stelselrekords is en nie geredigeer of geskrap kan word nie.

Versoekliggaamparameters

Parameter Tipe Vereis Beskrywing
domain string Ja Die domeinnaam, byvoorbeeld.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"}'

Voorbeeldantwoord

{
  "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
}

Reaksiestatuskodes

201 Zone created
400 Ontbrekende of ongeldige domeinnaam
KRY /api/v1/dns-zones/{uuid}/

Kry DNS-sonebesonderhede

Sit een sone terug met al sy verslae in 'n rekord skikking. Die reaksie het dieselfde vorm as die skep antwoord hierbo.

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

Reaksiestatuskodes

200 Sukses
404 Nie gevind nie, of dit behoort aan 'n ander rekening
VERWYDER /api/v1/dns-zones/{uuid}/

Skrap DNS-sone

Verwyder die sone van al drie naambedieners, gaan na dat nie een van hulle dit nog dien nie, en dan verwyder die sone en sy rekords. As 'n naambediener nog steeds antwoorde vir die sone gee, sal die versoek misluk en die sone gehou word sodat jy weer kan.

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

Reaksiestatuskodes

204 Die reaksie het geen liggaam nie
400 'n Naambediener dien nog steeds die sone. Die sone is nie geskrap nie; die details veld gee 'n lys van foute.
404 Nie gevind nie, of dit behoort aan 'n ander rekening
KRY AGT /api/v1/dns-zones/{uuid}/records/

Lys of voeg rekords in 'n tydsone by

Ry terug elke rekord in die sone as 'n eenvoudige skikking (nie gepigineerde) gesorteer deur tipe en naam. Die POS voeg 'n rekord by die sone en publiseer dit.

Versoekliggaamparameters (POST)

Parameter Tipe Vereis Beskrywing
record_type string Ja A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Ja @ die domein self, of'n etiket soos www. Name word in kleinletters gestoor.
value string Ja Die verslagdata, byvoorbeeld 'n IP-adres of 'n masjien naam. Gasheernaams het nie 'n voetslaanpunt en TXT-waardes nodig nie aanhalings nie; albei word bygevoeg wanneer die rekord gepubliseer word.
ttl integer Ja Tyd om in sekondes te lewe
priority integer MX en SRV slegs Benodig vir MX en SRV rekords en ignoreer vir elke ander tipe. Vir SRV, sit gewig, poort en teiken in waarde.

Voorbeeldversoek

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())

Voorbeeldantwoord

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

Antwoordvelde

Veld Tipe Beskrywing
uuid string Rekordidentifiseerder, gebruik deur die /api/v1/dns-records/ endpunte
priority integer | null Prioriteit vir MX en SRV-verslae, anders nulling
created_at date Die skeppingsdatum slegs (YYY-M-D), sonder 'n tyd

Reaksiestatuskodes

200 KRY: die sone se rekords
201 POS: rekord geskep
400 Geldige fout byvoorbeeld 'n onbekende rekord tipe,' n ontbrekende ttl, of 'n MX of SRV-rekord sonder prioriteit
404 Nie gevind nie, of dit behoort aan 'n ander rekening
AGT /api/v1/dns-zones/{uuid}/sync/

Herublise'n Zone

Stoot die sone en al sy rekords na die naam bedieners weer. Rekord verander word automaties gepubliseer, maar Die uitgewers is beste inspanning en 'n mislukking faal nie die oorspronklike versoek nie, so gebruik dit wanneer' n verandering nie in Dns- opkyke vertoon nie. versoek Geen liggaam is nodig nie.

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"
}
KRY AGT /api/v1/dns-records/

Lys of Skep Rekords Oor Zone

Ry terug die rekords van al jou sones, 25 per bladsy, gesorteer deur domein, tipe en naam. POST skep 'n rekord soos die sone opneem punt, maar neem die sone in die liggaam as sone_uuid.

Navraagparameters

Parameter Tipe Vereis Beskrywing
zone string Nee Slegs rekords van die sone met hierdie uid
record_type string Nee Slegs verslae van hierdie tipe, byvoorbeeld MX (as ongevoelig)
page integer Nee Bladsy nommer, beginne na 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"
    }
  ]
}

Reaksiestatuskodes

200 KRY: sukses
201 POS: rekord geskep
400 Geldige fout, of sone_uuid ontbreek of nie een van jou sones nie
KRY PUT PATCH VERWYDER /api/v1/dns-records/{uuid}/

Kry, Dateer op of uitvee 'n Opneem

Ry terug een opneem. Nader vervang dit en benodig opneem_type, naam, waarde en ttl. PATCH verander slegs die velde wat jy stuur. DE LETE verwyder die rekord en gee terug 204 met geen liggaam. Veranderinge word direk weg gepubliseer. Die NS verslae wat met die sone geskep is stelsel opneem: besig om dit te vervang of te verwyder gee terug 403.

Wanneer jy die prioriteit van 'n MX of SRV-rekord gee, stuur plate_tipe in dieselfde versoek. 'n PATCH-liggaam met prioriteit, maar sonder rekord_tipe maak die prioriteit duidelik.
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}'

Reaksiestatuskodes

200 KRY, MAAR of PATCH: die verslag
204 Die reaksie het geen liggaam nie
400 Geldige fout
403 Die rekord is 'n stelselrekord, of die teken het nie die benodigde toestemming nie
404 Nie gevind nie, of dit behoort aan 'n ander rekening

Fout met hantering van lêer: %s

Geldige foute terugkeer 400 met die probleem wat deur veldnaam bepaal word:

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

Toets DNS - veranderinge

Query the VPS.org nameservers directly to confirm a change is live before your registrar delegation or resolver caches catch up:

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