VPS.org API

REST API Documentation

API Yekutarisira DNS

Kugadzira DNS nzvimbo uye kuchengetedza yavo zvinyorwa. Zones vanopa ns1.vps.org, ns2.vps.org uye ns3.vps.org.

Magumo 13
Nzira Yekutanga /api/v1/dns-zones, /api/v1/dns-records

Pfupiso

Zone inogara nemashoko eimwe domain. Kana iwe ukachinja chero chinhu kuburikidza neAPI, zvichaendeswa kune VPS.org nameservers. Kuti uite domain kubva kune iyi zone, sarudza ns1.vps.org, ns2.vps.org uye ns3.vps.org.

Magadziriso anochengetwa uye anoburitswa munzira imwe chete: kana maseva ezita akabvuma kuchinja, mibvunzo inodzokera ku 502 uye hapana chinochengetwa. Iyo nzvimbo haigone kugadzirwa kune domain iyo imwe account yapfuura yakabatana, mhuri kana mwana wenzvimbo yeimwe account, kana zita rakaremara re VPS.org.

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

Tora /api/v1/dns-zones/

Nyora DNS Zones DNS DNS Zones Dzose

Retourne vose zvinyorwa, 25 papeji. Rekords ne pasvondo.

Maparamita emibvunzo

Parameter Rudzi Zvinodiwa Kutaura
domain string Hapana Return only the zone with exactly this domain name
page integer Hapana Nhamba yepeji, inobva pa1

Muenzaniso weChikumbiro

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

Muenzaniso weMhinduro

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

Minda Yemhinduro

_Firi Rudzi Kutaura
uuid string Zone identifier
domain string Domain name, stored in small letters
created_at datetime Kuumbwa kwenguva (ISO 8601, UTC)
record_count integer Nhamba yezvinyorwa munharaunda, kusanganisira matatu NS zvinyorwa

Makodhi eMamiriro eMhinduro

200 Kubudirira
403 Kukanganisa kweAPI Token kana kuti Token haina mvumo yakakodzera
POST /api/v1/dns-zones/

DNS Zone

Zone inotanga ne NS zvinyorwa zvitatu zve ns1, ns2 uye ns3.vps.org, izvo zvinyorwa zve system uye hazvigone kugadziriswa kana kugadziriswa.

Kumbira Maparamita Emuviri

Parameter Rudzi Zvinodiwa Kutaura
domain string Ehe Domain zita, semuenzaniso 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"}'

Muenzaniso weMhinduro

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

Makodhi eMamiriro eMhinduro

201 Yakagadzirwa nzvimbo
400 Kushaya kana kusavapo kwezita redomain
Tora /api/v1/dns-zones/{uuid}/

Get DNS Zone Details

Retournes imwe nzvimbo nezvose zvemazita ayo mu mazita akafanana. The kubvunza ane imwecheteyo fomu sezvakaita kubvunza pamusoro.

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

Makodhi eMamiriro eMhinduro

200 Kubudirira
404 Haichawanikwa, kana kuti inobva kune imwe account
DZIMA /api/v1/dns-zones/{uuid}/

DNS Zone

Kubvisa nzvimbo kubva kune ese matatu servers, tarisa kuti hapana mumwe wavo achiri kushambadza, uye wozobvisa nzvimbo nerecords dzayo. Kana server yezita iri kubvunza kwenzvimbo, mibvunzo ichakundikana uye nzvimbo ichachengetwa kuti iwe ugone kuedzazve.

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

Makodhi eMamiriro eMhinduro

204 Yakagadziriswa. Kudzoka hakuna muviri.
400 Nameservers still serve the zone. The zone was not deleted; the detail field lists the errors.
404 Haichawanikwa, kana kuti inobva kune imwe account
Tora POST /api/v1/dns-zones/{uuid}/records/

List or Add Records in a Zone

GET anodzokera yega yega rekodhi munharaunda semufananidzo plain (hapana paginated), akagadzirirwa nerudzi uye zita. POST anowedzera rekodhi kuti nzvimbo uye anoburitsa.

Kumbira Maparamita Emuviri (POST)

Parameter Rudzi Zvinodiwa Kutaura
record_type string Ehe A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Ehe @ yedomain pachayo, kana label semuenzaniso www. Amagama akachengetwa muzvinyorwa zvidiki.
value string Ehe The record data, for example an IP address or a hostname. Hostnames don' t need a trailing dot and TXT values don' t need quotes; both are added when the record is published.
ttl integer Ehe Time to live in seconds
priority integer MX ne SRV chete Inodiwa kune MX uye SRV zvinyorwa uye inoonekwa kune chero imwe mhando. Kuti uwane SRV, shandisa weight, port uye target muhuwandu.

Muenzaniso weChikumbiro

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

Muenzaniso weMhinduro

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

Minda Yemhinduro

_Firi Rudzi Kutaura
uuid string Record identifier, used by the /api/v1/dns-records/ endpoints
priority integer | null Priority for MX and SRV records, otherwise null
created_at date Kuumbwa kwezuva chete (Y-MM-DD), pasina nguva

Makodhi eMamiriro eMhinduro

200 GET: zvinyorwa zvemunharaunda
201 POST: record yakagadzirwa
400 Kuongorora kwechokwadi kwematambudziko, semuenzaniso, mhando yerecord isiri iyo, TTL isina, kana MX kana SRV record isina kukosha
404 Haichawanikwa, kana kuti inobva kune imwe account
POST /api/v1/dns-zones/{uuid}/sync/

Kuburitsazve nzvimbo

Inomanikidza nzvimbo nezvose zvekare zvekare kune servers. Magadziriso ekare anoburitswa otomatiki, asi kuburitswa kunoitwa nesimba uye kukundikana hakuzokanganisa chikumbiro chekutanga, saka shandisa izvi kana kuchinja kusingaratidzike mu DNS. Hapana chikumbiro chemuviri chinodarika.

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"
}
Tora POST /api/v1/dns-records/

List or Create Records Across Zones

GET inokudzosera mazita ezvinzvimbo zvako, 25 papeji, akanyorwa nezita rezita, mhando nezita. POST inokupa zita sezita rezita renzvimbo, asi inokupa zita renzvimbo mumuviri sezone_uuid.

Maparamita emibvunzo

Parameter Rudzi Zvinodiwa Kutaura
zone string Hapana Only records of the zone with this uuid
record_type string Hapana Kuchengeta chete mashoko erudzi urwu, semuenzaniso MX (inofunga nezvemazita ezvinyorwa)
page integer Hapana Nhamba yepeji, inobva pa1
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"
    }
  ]
}

Makodhi eMamiriro eMhinduro

200 GET: success
201 POST: record yakagadzirwa
400 Kuongorora kwematambudziko, kana zone_uuid isiripo kana kuti kwete imwe yenzvimbo dzako
Tora PUT PATCH DZIMA /api/v1/dns-records/{uuid}/

Kuwana, Kugadzirisa kana Kudzima Rekodhi

GET anodzokera imwe rekodhi. PUT anoshandura uye inodiwa record_type, zita, kukosha uye ttl. PATCH zvinochinja chete maindasitiri iwe kutumira. DELETE anobvisa rekodhi uye anodzokera 204 pasina muviri. Zvimwe zvinoshandurwa zvinoburitswa pashure. NS makodhi akagadzirwa nenzvimbo ndezve system makodhi: kuvandudzwa kana kubvisa avo anodzokera 403.

Kana iwe uchida kuchinja kukosha kweMX kana SRV repository, tumira record_type mune imwe mibvunzo. A PATCH body ine kukosha asi pasina record_type inobvisa kukosha.
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}'

Makodhi eMamiriro eMhinduro

200 GET, PUT kana PATCH: iyo rekodhi
204 Yakagadziriswa. Kudzoka hakuna muviri.
400 Kuongorora kwebasa
403 Rekodhi iri system rekodzero, kana kuti token haina zvinodiwa permission
404 Haichawanikwa, kana kuti inobva kune imwe account

Kugadziriswa kwematambudziko

Kuongorora matambudziko anodzokera 400 nematambudziko akavharwa nezita remunda:

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

Kuongorora DNS Zvigadziriso

Kubvunza VPS.org nameservers zvakananga kuti uone kana shanduko iri kuitika pamberi pekutumira kwako kwemumiri kana kudzokorora caches:

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