VPS.org API

PENDEKEZO LA MAFUTA

API ya Usimamizi wa DNS

Create DNS zones and manage their records. Zones are served by ns1.vps.org, ns2.vps.org and ns3.vps.org.

Sehemu za Mwisho 13
Njia ya Msingi /api/v1/dns-zones, /api/v1/dns-records

Muhtasari

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.

Ruhusa ya Kuruhusiwa: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

PATA /api/v1/dns-zones/

Orodhesha Maeneo Yote ya DNS

Returns your zones, newest first, 25 per page. Records are not included here; fetch a single zone to get them.

Vigezo vya Hoja

Penseli Aina Inahitajika Maelezo
domain string Hapana Rudia eneo hilo tu ukiwa na jina hili la eneo
page integer Hapana Page number, starting at 1

Ombi la Mfano

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

Jibu la Mfano

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

Sehemu za Majibu

Field Aina Maelezo
uuid string Zonepser
domain string Jina la Domain, lililowekwa katika ghala la chini
created_at datetime Creation time (ISO 8601, UTC)
record_count integer Idadi ya rekodi katika eneo hilo, kutia ndani rekodi tatu za NS

Misimbo ya Hali ya Majibu

200 Mafanikio
403 Ishara hiyo ikikosekana au yenye kasoro, au ile ishara haina ruhusa inayohitajiwa
PENDEKEZO /api/v1/dns-zones/

Create DNS Zone

Eneo hilo lina eneo na linachapisha. Eneo hilo linaanza kwa kurekodi rekodi tatu za NS kwa ajili ya ns1, n2 na ns3.vps.org, ambazo ni rekodi za mfumo wa kompyuta na haziwezi kuhaririwa au kufutwa.

Omba Vigezo vya Mwili

Penseli Aina Inahitajika Maelezo
domain string Ndiyo Kwa mfano, jina la eneo hilo lina maana ya kuwa na jina la Kigiriki.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"}'

Jibu la Mfano

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

Misimbo ya Hali ya Majibu

201 Zone imeundwa
400 Jina la eneo hilo halijapatikana au halina uwezo
PATA /api/v1/dns-zones/{uuid}/

Tafuta Habari Zaidi Katika Eneo la DNS

Sehemu moja ina historia nyingi na ina umbo lilelile ambalo linatokezwa na mwitikio ulio juu.

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

Misimbo ya Hali ya Majibu

200 Mafanikio
404 Si wapatikanao, wala si wa Akaunti jingine
FUTA /api/v1/dns-zones/{uuid}/

Delette DNS Zone

Removes the zone from all three nameservers, checks that none of them still serves it, and then deletes the zone and its records. If a nameserver still answers for the zone, the request fails and the zone is kept so you can retry.

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

Misimbo ya Hali ya Majibu

204 Jibu lake halina mwili.
400 Eneo hilo bado linaitwa eneo la dunia, lakini eneo hilo halikufutwa; habari hizo zinaorodhesha makosa.
404 Si wapatikanao, wala si wa Akaunti jingine
PATA PENDEKEZO /api/v1/dns-zones/{uuid}/records/

Orodha au Uongeze Rekodi Katika Eneo

TOKEA kila rekodi katika eneo hilo ikiwa ni safu iliyo wazi (bila kuchujwa), iliyogawanywa kwa herufi na jina.

Omba Vigezo vya Mwili (POST)

Penseli Aina Inahitajika Maelezo
record_type string Ndiyo A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Ndiyo @ for the creact, or a ploo kama www.Bible bes in claft.
value string Ndiyo Kwa mfano, taarifa za rekodi, anwani ya IP au jina la mtu mmoja. Jina la cheo la mahali hapo halihitaji kuwekwa alama na thamani za ki - siku - hizi hazihitaji kunukuliwa; zote mbili zinaongezwa wakati rekodi inapochapishwa.
ttl integer Ndiyo Wakati wa kuishi kwa sekunde chache
priority integer MX na SRV pekee Rekodi za MX na SRV zilihitajika na kupuuzwa kwa kila aina.

Ombi la Mfano

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

Jibu la Mfano

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

Sehemu za Majibu

Field Aina Maelezo
uuid string Msajili, anayetumiwa na /api/v1/dns-records/ retents
priority integer | null Kabla ya rekodi za MX na SRV, nyingine zikiwa zimebatilishwa
created_at date Hakika Mimi ni mwenye hikima, na Mwenye kujua.

Misimbo ya Hali ya Majibu

200 TOKEA: Rekodi za eneo hilo
201 PONT: rekodi imefanyizwa
400 Kwa mfano, kosa la kuficha habari, kutopatikana kwa tatl, au rekodi ya MX au SRV bila kipaumbele
404 Si wapatikanao, wala si wa Akaunti jingine
PENDEKEZO /api/v1/dns-zones/{uuid}/sync/

Zungusha Eneo

Mabadiliko katika rekodi huchapishwa moja kwa moja, lakini kuchapisha ni jitihada bora na kushindwa hakukosi ombi la awali, kwa hiyo tumia hili wakati badiliko halipo katika viungo vya DNS.

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"
}
PATA PENDEKEZO /api/v1/dns-records/

Orodha au Magendo Kwenye Maeneo Mengine

TOKEA rekodi za kanda zako zote, 25 kwa kila ukurasa, ukiagizwa na utawala, aina na jina. PSTE hufanyiza rekodi kama rekodi za kanda za dunia ambazo zimeisha, lakini huchukua eneo la mwili kuwa eneo la dunia_uuid.

Vigezo vya Hoja

Penseli Aina Inahitajika Maelezo
zone string Hapana Ni rekodi tu za eneo hilo zenye picha hii
record_type string Hapana Kwa mfano, ni rekodi za aina hii tu, MX (kutohisi lolote)
page integer Hapana Page number, starting at 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"
    }
  ]
}

Misimbo ya Hali ya Majibu

200 JIJUHAMU: fanikio
201 PONT: rekodi imefanyizwa
400 Kosa la kihalo, au eneo_uid linakosekana au halipo katika eneo lenu
PATA PUT PATCH FUTA /api/v1/dns-records/{uuid}/

Pata, Habari Mpya au Uandike Rekodi

GET returns one record. PUT replaces it and needs record_type, name, value and ttl. PATCH changes only the fields you send. DELETE removes the record and returns 204 with no body. Changes are published straight away. The NS records created with the zone are system records: updating or deleting them returns 403.

Unapotanguliza rekodi ya MX au SRV, weka rekodi ya mambo ya kwanza katika ombi hilohilo.
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}'

Misimbo ya Hali ya Majibu

200 TOKEA, TAT au PATCH: rekodi
204 Jibu lake halina mwili.
400 Kosa la utakasaji
403 Rekodi ni rekodi ya mfumo, au ishara hiyo haina ruhusa inayohitajiwa
404 Si wapatikanao, wala si wa Akaunti jingine

Kushughulikia Vibaya

Makosa ya uhasibu hurudi mara 400 yakiwa na tatizo lililokaziwa kwa jina la shambani:

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

Kutahini Mabadiliko ya DNS

Janga hili la VPS.org linafahamika moja kwa moja kwa kuwa na alama za kuonyesha mabadiliko fulani ni moja kwa moja kabla ya wajumbe wa kusajili au watatua maeneo yaliyojificha kuingia:

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