VPS.org API

REST API փաստաթղթավորում

DNS կառավարման API

Կերտել DNS ոլորտներ և կառավարել դրանց գրանցումները։ Զանգվածները ծառայում են ns1.vps.org, ns2.vps.org և ns3.vps.org.

Վերջնակետեր 13
Հիմնական ուղի /api/v1/dns-zones, /api/v1/dns-records

Ընդհանուր տեսք

Զանգվածը պահպանում է մեկ դոմենի համար գրանցումները։ API-ի միջոցով կատարված յուրաքանչյուր փոփոխություն անմիջապես ուղարկվում է VPS.org անուն սերվերներ։ Դոմենի ծառայություններ մատուցելու համար այս Զանգվածներից, սահմանեք դրա անուն սերվերները ձեր գրանցողի մոտ ns1.vps.org, ns2.vps.org և ns3.vps.org։

Փոփոխությունները պահպանվում են և հրապարակվում մեկ քայլով. եթե անունների սերվերները հրաժարվում են փոփոխությունից, խնդրանքը վերադարձնում է 502 և ոչինչ չի պահպանվում։ Զանգված չի կարող ստեղծվել այլ հաշվի կողմից արդեն կառավարվող դոմենի համար, այլ հաշվի ծնողների կամ երեխաների զուգահեռ ազդակի համար կամ VPS.org պահպանված անունի համար։

Պահանջվող թույլտվություն: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

ՍՏԱՆԱԼ /api/v1/dns-zones/

Ցանկագրել բոլոր DNS գոտիները

Վերադարձնում է ձեր ոլորտները, նորագույնը առաջինը, 25 էջը մեկ։ Այստեղ գրանցումները չեն ներառվում։ Առաջարկվում է վերցնել մեկ ոլորտ՝ դրանք ստանալու համար։

Հարցման պարամետրեր

Փարամետրի ցուցակ Տեսակ Պարտադիր Ապրանքանիշ
domain string Ոչ Վերադարձնել միայն այս դոմենի անունով ոլորտը
page integer Ոչ էջերի թիվ, սկսած 1-ից

Օրինակի հարցում

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

Օրինակ պատասխան

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

Պատասխանի դաշտեր

Տեղամասեր Տեսակ Ապրանքանիշ
uuid string Ցուցակ
domain string Դոմենի անուն, պահպանված փոքր տառերով
created_at datetime Creation time (ISO 8601, UTC)
record_count integer Զանգվածի ցուցակների քանակը, ներառյալ երեք NS ցուցակները

Պատասխանի կարգավիճակի կոդեր

200 Աշխատանք
403 Հաշվառված կամ օրինական API token-ը բացակայում է, կամ token-ը չունի անհրաժեշտ թույլտվություն
ԱՐՏ /api/v1/dns-zones/

Կերտել DNS Զոնա

Creates a zone and publishes it. The zone starts with three NS records for ns1, ns2 and ns3.vps.org, which are system records and cannot be edited or deleted.

Հարցման մարմնի պարամետրեր

Փարամետրի ցուցակ Տեսակ Պարտադիր Ապրանքանիշ
domain string Այո Դոմենի անունը, օրինակ 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"}'

Օրինակ պատասխան

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

Պատասխանի կարգավիճակի կոդեր

201 Ընտրեք վայրը
400 Հաշվի չառնել կամ թերացած դոմենի անուն
ՍՏԱՆԱԼ /api/v1/dns-zones/{uuid}/

Գրանցվել

Վերադարձնում է մեկ ոլորտ՝ բոլոր գրանցումներով գրանցումների շարքում։ Պատասխանը նույն ձևն ունի, ինչ վերը նշված ստեղծել պատասխանը։

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

Պատասխանի կարգավիճակի կոդեր

200 Աշխատանք
404 Չգտնվեց կամ պատկանում է այլ հաշվին
ՋՆՋԵԼ /api/v1/dns-zones/{uuid}/

Հեռացնել DNS Զանգվածը

Հեռացնում է գոտին բոլոր երեք անուն սերվերներից, ստուգում, որ նրանցից ոչ մեկը դեռ ծառայում է այն, և այնուհետև ոչնչացնում է գոտին և նրա գրառումները։ Եթե անուն սերվերը դեռ պատասխանում է գոտին, խնդրանքը ձախողվում է և գոտը պահվում է, որպեսզի կարողանաք կրկին փորձել։

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

Պատասխանի կարգավիճակի կոդեր

204 Առաջարկը չի պարունակում մարմին։
400 Անվան սերվերը դեռ ծառայում է ոլորտին։ Զանգվածը չվերացվեց, մանրամասն ցուցակում նշված են սխալները։
404 Չգտնվեց կամ պատկանում է այլ հաշվին
ՍՏԱՆԱԼ ԱՐՏ /api/v1/dns-zones/{uuid}/records/

Տեղադրել ցուցակը կամ ավելացնել գրանցումները ոլորտում

GET- ը վերադարձնում է ոլորտի բոլոր գրանցումները որպես պարզ ռեժիմ (չէջավորված), դասակարգված ըստ տեսակի և անունի։ POST- ը ավելացնում է գրանցումը ոլորտին և հրապարակում այն։

Հարցման մարմնի պարամետրեր (POST)

Փարամետրի ցուցակ Տեսակ Պարտադիր Ապրանքանիշ
record_type string Այո A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Այո @ - ը դոմենի համար կամ պիտակ, ինչպիսին www- ն է: Անվանումները պահվում են փոքր տառերով:
value string Այո Ծրագրի տվյալները, օրինակ IP հասցե կամ սերվերի անուն։ սերվերի անունները չեն պահանջում վերջում կետ և TXT արժեքները չեն պահանջում մեջբերումներ։ Դրանք երկուսն էլ ավելացվում են ռեժիմի հրապարակման ժամանակ։
ttl integer Այո Ժամանակը վայրկյաններում
priority integer MX և SRV միայն Պահանջվում է MX և SRV գրանցումների համար և անտեսվում է բոլոր այլ տեսակների համար։ SRV- ի համար, արժեքում գրեք weight, port և target։

Օրինակի հարցում

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

Օրինակ պատասխան

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

Պատասխանի դաշտեր

Տեղամասեր Տեսակ Ապրանքանիշ
uuid string Զեկույցի ինդեքսը, որը օգտագործվում է /api/v1/dns-records/ վերջնական կետերում
priority integer | null MX և SRV գրանցումների առաջնահերթությունը, այլապես null
created_at date Ընտրեք միայն ստեղծման օրը (Y-MM-DD), առանց ժամանակի

Պատասխանի կարգավիճակի կոդեր

200 GET: ոլորտի գրանցումները
201 POST: գրանցում ստեղծվել է
400 Վերահսկողության սխալ, օրինակ անհայտ գրանցման տեսակ, բացակայող ttl, կամ MX կամ SRV գրանցում առանց առաջնահերթության
404 Չգտնվեց կամ պատկանում է այլ հաշվին
ԱՐՏ /api/v1/dns-zones/{uuid}/sync/

Հետո հրատարակել

Նորից ուղարկում է ոլորտը և նրա բոլոր գրանցումները անուն սերվերներ։ Գրանցման փոփոխությունները ավտոմատ կերպով հրապարակվում են, բայց հրապարակումը լավագույն փորձն է և ձախողումը չի ձախողում սկզբնական խնդրանքը, այնպես որ օգտագործեք այս, երբ փոփոխությունը չի հայտնվում 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"
}
ՍՏԱՆԱԼ ԱՐՏ /api/v1/dns-records/

Ցուցակ կամ ստեղծել գրառումներ ոլորտներում

GET- ը վերադարձնում է բոլոր ոլորտների գրանցումները, 25 էջում, կարգավորված դոմենի, տեսակի և անունի համաձայն։ POST- ը ստեղծում է գրանցում, ինչպես ոլորտի գրանցումների վերջնական կետը, բայց ոլորտը մարմնի մեջ ընդունում է zone_ uuid- ի պես։

Հարցման պարամետրեր

Փարամետրի ցուցակ Տեսակ Պարտադիր Ապրանքանիշ
zone string Ոչ Ցուցադրել միայն այս uuid- ով ոլորտի գրանցումները
record_type string Ոչ Միայն այս տիպի գրառումներ, օրինակ MX (ռեժիմի նկատմամբ անզգուշություն)
page integer Ոչ էջերի թիվ, սկսած 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"
    }
  ]
}

Պատասխանի կարգավիճակի կոդեր

200 GET: հաջողություն
201 POST: գրանցում ստեղծվել է
400 Վերահսկողության սխալ, կամ zone_uuid-ը բացակայում է կամ ձեր ոլորտներից մեկը չէ
ՍՏԱՆԱԼ PUT PATCH ՋՆՋԵԼ /api/v1/dns-records/{uuid}/

Ստացել, վերափոխել կամ ջնջել գրառում

GET-ը վերադարձնում է մեկ գրառում։ PUT-ը փոխարինում է այն և պահանջում է record_type, name, value և ttl։ PATCH-ը փոխում է միայն ձեր ուղարկած դաշտերը։ DELETE-ը հեռացնում է գրառումը և վերադարձնում 204 առանց մարմնի։ Փոփոխությունները հրապարակվում են անմիջապես։ NS գրառումները, որոնք ստեղծվել են ոլորտի հետ, համակարգային գրառումներ են՝ նրանց թարմացումը կամ հեռացումը վերադարձնում է 403։

Երբ դուք PATCH-ում եք MX կամ SRV գրանցման առաջնահերթությունը, ուղարկեք record_type նույն խնդրանքով։ PATCH մարմինը առաջնահերթությամբ, բայց առանց record_type-ի, մաքրում է առաջնահերթությունը։
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}'

Պատասխանի կարգավիճակի կոդեր

200 GET, PUT կամ PATCH: ռեգիստրը
204 Առաջարկը չի պարունակում մարմին։
400 Սխալ հաստատման ժամանակ
403 Ծրագրի ցուցակը համակարգային ցուցակ է, կամ տոկենը չունի անհրաժեշտ թույլտվություն
404 Չգտնվեց կամ պատկանում է այլ հաշվին

Սխալի կառավարում

Վերահսկողության սխալները վերադարձնում են 400, երբ խնդիրը կոչվում է դաշտի անունով:

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

DNS փոփոխությունների ստուգում

Հարցրեք VPS.org անուն սերվերներին ուղղակիորեն հաստատելու համար փոփոխությունը կենդանի է մինչև ձեր գրանցողի դելեգացիան կամ լուծողի քեշերը հասնեն:

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