VPS.org API

Pagina officialis Documentationis

API Administrationis DNS

Zones DNS creavit et inscriptiones eius administravit. Zones servantur a ns1.vps.org, ns2.vps.org et ns3.vps.org.

Extrema 13
Via Basis /api/v1/dns-zones, /api/v1/dns-records

Conspectus

Zona inscriptiones pro dominio habet. Quaemquam mutatio per API facta est, in servum nominis VPS.org immediate invenitur. Ad dominium ex hoc zona servum nominis in registro tuum in ns1.vps.org, ns2.vps.org et ns3.vps.org configurandum.

Variationes in una passio conservatae et publicae sunt: si servus nominarum modificationem refutat, petitio 502 restituit et nihil conservatur. Zona non potest creatae esse pro dominio quod alius conatus praeteritus administrat, pro patre vel filio zonae alii conatus, vel pro VPS.org nomina reservata.

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

ACQUIRE /api/v1/dns-zones/

Enumera Omnes Zonas DNS

Retortit zonae tuae, novae primum, 25 per paginam. Recordes non sunt in hoc inclusae; obtinuit sola zonam ut obtinuit.

Parametri Quaestionis

Parametrus Typus Requisitum Descriptio
domain string No Retorta solum zona cum exacte hoc nomini dominio
page integer No Numerus paginarum, a 1 incipiens

Exemplum Petitionis

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

Exemplum Responsionis

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

Campi Responsorum

Campo Typus Descriptio
uuid string Indicem communium praefecturae Aeoliae
domain string Nomen dominii, in minusculis conservum
created_at datetime Tempore UTC (ISO 8601)
record_count integer Numerus inscriptionum in zona, inter quas tres NS inscriptiones

Codices Status Responsorum

200 Successus
403 Token API mancant vel invalidus, aut token permissum necesse non habet
Post /api/v1/dns-zones/

Creatio zonae DNS

Zonam creat et publicat. Zona cum tres NS inscriptionibus pro ns1, ns2 et ns3.vps.org incepit, quae sunt inscriptiones systematicae et non editae vel deletae sunt.

Parametri Corporis Petitionis

Parametrus Typus Requisitum Descriptio
domain string Ita Nomen dominii, exempli gratia 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"}'

Exemplum Responsionis

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

Codices Status Responsorum

201 Area creata
400 Nomen dominii mancant vel non validum est
ACQUIRE /api/v1/dns-zones/{uuid}/

Descriptio descriptio descriptio

Restituit unam zonam cum omnes eius inscriptionibus in array inscriptionum. Respuesta est formae similis cum creatio inscriptionis supra.

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

Codices Status Responsorum

200 Successus
404 Non repertus, aut ad alium contum pertinet
DELE /api/v1/dns-zones/{uuid}/

Despectus in Domus

Zonam ex omnis tres servibus nominalibus removit, et verificavit si nonnumquam ex eo servit, et postea zonam et eius inscriptiones eliminavit. Si servus nominalis ad zonam respondet, petitio fallus est et zona conservatur ut reprobare possit.

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

Codices Status Responsorum

204 Eliminatum. Respuesta non habet corpus.
400 Servitor nominis zonam etiam servit. Zona non est eliminata; campo descriptivo errores enumeratur.
404 Non repertus, aut ad alium contum pertinet
ACQUIRE Post /api/v1/dns-zones/{uuid}/records/

Listum aut addendum inscriptiones in zona

GET restituit omnes inscriptiones in zona ut array (non paginatum), ordinatum per genus et nomen. POST inscriptionem ad zonam adiit et publicat.

Parametri Corporis Petitionis (POST)

Parametrus Typus Requisitum Descriptio
record_type string Ita A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Ita In hoc modo, nomen est nomen proprium, et non nomen familiae, quod in familiam inscriptum est.
value string Ita Data inscriptionis, exempli gratia, address IP aut hostname. Hostnames punctum postscriptum non necessitat et valores TXT citationem non necessitat; ambo sunt aggregatae cum inscriptionis publicatur.
ttl integer Ita Tempore in secundis vivere
priority integer MX et SRV solum Requiescit pro MX et SRV inscriptis et ignoratur pro omnes alios generis. Pro SRV, ponderem, portum et propositum in valorem mettere.

Exemplum Petitionis

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

Exemplum Responsionis

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

Campi Responsorum

Campo Typus Descriptio
uuid string Record identifier, used by the /api/v1/dns-records/ endpoints
priority integer | null Prioritas pro MX et SRV inscriptionibus, aliquando nullum
created_at date Creatio data solum (Y-MM-DD), sine tempore

Codices Status Responsorum

200 Novi Eboraci: The Record Company.
201 Post: record creatus
400 Errore validationis, exempli gratia, genus recordi ignotum, ttl mancant, vel recordum MX aut SRV sine prioritate
404 Non repertus, aut ad alium contum pertinet
Post /api/v1/dns-zones/{uuid}/sync/

Republicae Foederatae

Zonam et omnes eius inscriptiones in servum nominis re- inscripsit. Cambii inscriptionis automatice publicati sunt, sed publicatio est optima probatio et fallus originalem petitionem non fallit, ergo hoc utitur cum mutatio in DNS investigationibus non apparet. Corpus petitionis non est necesse.

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"
}
ACQUIRE Post /api/v1/dns-records/

Listum aut creavit inscriptiones inter zonas

GET restituit inscriptiones omnes zonarum, 25 pro pagina, ordinatas per dominium, genus et nomen. POST creat inscriptionem similem inscriptionum zonarum finali, sed in corpore zonam cum zone_uuid appellatur.

Parametri Quaestionis

Parametrus Typus Requisitum Descriptio
zone string No Solum inscriptiones zonae cum hoc uuid
record_type string No Solum inscriptiones hoc generis, exempli gratia MX (majusculae et minusculae non distinguuntur)
page integer No Numerus paginarum, a 1 incipiens
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"
    }
  ]
}

Codices Status Responsorum

200 Novi Eboraci: Success
201 Post: record creatus
400 Errore validationis, vel zone_uuid manet vel non est una ex tuis zonis
ACQUIRE PUT PATCH DELE /api/v1/dns-records/{uuid}/

Obtinuit, actualizavit, vel deletavit recordum

GET recordum restituit. PUT substituit et record_type, name, value et ttl necessitat. PATCH solum campos quae tu invenis mutatur. DELETE recordum removit et 204 restituit corpus non esse. Mutationes imediate publicae sunt. NS records creati cum zona sunt systema records: actualizationes aut eliminationes 403 restituunt.

Cum PATCH prioritatem MX vel SRV recordum, record_type in iustum petitionem mandat. Corpus PATCH cum prioritate sed non cum record_type prioritatem clarificat.
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}'

Codices Status Responsorum

200 GET, PUT, PATCH: Registrum
204 Eliminatum. Respuesta non habet corpus.
400 Errore validationis
403 Recordum est systematicus recordum, aut token permissio necata est
404 Non repertus, aut ad alium contum pertinet

Errore manipulatio

Errores validationis 400 restituunt cum problema per nomen campi clavis:

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

Despectus in Cantu

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