VPS.org API

REST API-documentatie

Domein API

Zoek naar beschikbare domeinnamen, registreer en vernieuw domeinen, en beheer hun nameservers en auto-vernieuwing. Domein wordt geïdentificeerd door hun uuid.

Eindpunten 7
Basispad /api/v1/domains
KRIJGEN /api/v1/domains/

Alle domeinen weergeven

Geeft de domeinen die zijn geregistreerd in uw account, 25 per pagina. De lijst heeft geen filters.

Vereiste toestemming: domains:list

Voorbeeldverzoek

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/domains/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

url = "https://admin.vps.org/api/v1/domains/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.get(url, headers=headers)
for domain in response.json()["results"]:
    print(domain["domain_name"], domain["status"], domain["expiration_date"])
const response = await fetch('https://admin.vps.org/api/v1/domains/', {
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});

const data = await response.json();
console.log(data.results);

Voorbeeldantwoord

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
      "domain_name": "example.com",
      "status": "active",
      "registrar": "dynadot",
      "registration_date": "2026-01-15T10:30:00Z",
      "expiration_date": "2027-01-15T10:30:00Z",
      "days_until_expiration": 122,
      "is_expired": false,
      "needs_renewal_soon": false,
      "auto_renew": true,
      "renewal_period_years": 1,
      "registration_price": "12.64",
      "renewal_price": "12.64",
      "whois_privacy": true,
      "nameserver1": "ns1.vps.org",
      "nameserver2": "ns2.vps.org",
      "nameserver3": "ns3.vps.org",
      "nameserver4": null,
      "transfer_lock": true,
      "created_at": "2026-01-15T10:30:00Z",
      "updated_at": "2026-09-01T08:12:40Z"
    }
  ]
}

Antwoordvelden

Veld Type Omschrijving
uuid string Domeinidentificatie gebruikt in de andere domeineindpunten
status string active, pending, expired, cancelled, transferred
registrar string Registrar het domein wordt gehouden op
registration_date, expiration_date datetime Wanneer het domein geregistreerd is en wanneer het verloopt. expiration_date kan nul zijn.
days_until_expiration integer | null De hele dag tot de vervaldatum, negatief eenmaal verlopen
is_expired, needs_renewal_soon boolean Of het domein is verlopen en of het binnen 30 dagen verloopt
auto_renew, renewal_period_years boolean, integer Of het domein automatisch wordt verlengd, en voor hoeveel jaar
registration_price, renewal_price string Prijzen in USD als decimale tekenreeksen
whois_privacy, transfer_lock boolean Instellingen voor privacy en registrar transfers van WHOIS
nameserver1 to nameserver4 string | null De naamservers van het domein
created_at, updated_at datetime Wanneer de record werd aangemaakt en voor het laatst gewijzigd (ISO 8601, UTC)
KRIJGEN /api/v1/domains/{uuid}/

Domeindetails opvragen

Geeft één domeinobject terug met de velden hierboven.

Vereiste toestemming: domains:list

curl -X GET "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Responsstatuscodes

200 Succes
404 Niet gevonden, of het behoort tot een andere account
POST /api/v1/domains/search/

Zoekdomein beschikbaarheid

Controleert of een naam beschikbaar is over ongeveer 20 populaire extensies (com, net, org, io, dev, co, app, ai en meer), plus de extensie die je typte als het niet onder hen is. De resultaten beginnen met de exacte match, dan beschikbare namen, dan genomen.

Vereiste toestemming: domains:search

Parameters van de aanvraagbody

Parameter Type Vereist Omschrijving
domain string Ja Een naam met of zonder extensie, bijvoorbeeld mysite of mysite.com (2 tot 63 karakters)

Voorbeeldverzoek

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/domains/search/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "mysite.com"}'
import requests

url = "https://admin.vps.org/api/v1/domains/search/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.post(url, headers=headers, json={"domain": "mysite.com"})
for result in response.json()["results"]:
    if result["available"]:
        print(result["domain"], result["registration_price"], result["renewal_price"])

Voorbeeldantwoord

{
  "results": [
    {
      "domain": "mysite.com",
      "available": false,
      "price": null,
      "registration_price": null,
      "renewal_price": null,
      "tld": "com",
      "is_exact_match": true
    },
    {
      "domain": "mysite.dev",
      "available": true,
      "price": 17.24,
      "registration_price": 17.24,
      "renewal_price": 17.24,
      "tld": "dev",
      "is_exact_match": false
    }
  ],
  "base_domain": "mysite",
  "search_count": 20
}

De prijzen zijn in USD per jaar en zijn nul voor namen die niet beschikbaar zijn. De getoonde prijzen zijn illustratief.

Responsstatuscodes

200 Succes
400 Ontbrekend domein, of het bevat tekens anders dan letters, cijfers en koppeltekens
500 Opzoeken van de registrar is mislukt. Probeer het later opnieuw.
POST /api/v1/domains/register/

Nieuw domein registreren

Registreert een domein en rekent uw opgeslagen betaalmethode in. Beschikbaarheid en prijs worden opnieuw gecontroleerd met de registrar vlak voor de lading. De contactgegevens van de registrant worden uit uw rekeningprofiel gehaald. Indien de registrar de registratie na de kosten weigert, wordt de betaling terugbetaald.

Vereiste toestemming: domains:register (toegekend door domeinen:*)

Parameters van de aanvraagbody

Parameter Type Vereist Omschrijving
domain string Ja De volledige domeinnaam inclusief extensie, bijvoorbeeld.com
years integer Nee Registratie periode, 1 tot 10 (standaard 1). De prijs is de jaarlijkse prijs tijden jaren..ai vereist ten minste 2 jaar; een kleinere waarde geeft 400.
curl -X POST "https://admin.vps.org/api/v1/domains/register/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "mysite.dev", "years": 1}'

Voorbeeldantwoord

{
  "success": true,
  "domain_uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
  "domain_name": "mysite.dev",
  "message": "mysite.dev registered successfully!"
}

Responsstatuscodes

201 Domein geregistreerd
400 Ongeldig domein, domein niet meer beschikbaar, prijs kon niet worden geverifieerd, verouderde betalingsmethode, of de betaling mislukt
402 Geen betalingsmethode in het dossier, of onbetaalde facturen
500 De betaling kon niet worden verwerkt, of de registrar verwierp de registratie na betaling. In het tweede geval de foutmelding zegt of de restitutie ging door.
POST /api/v1/domains/{uuid}/renew/

Een domein vernieuwen

Vernieuwt het domein en brengt zijn vernieuwing_prijs voor elk jaar in rekening aan uw opgeslagen betaalmethode.

Vereiste toestemming: domains:renew

Parameters van de aanvraagbody

Parameter Type Vereist Omschrijving
years integer Nee Toe te voegen jaren, 1 tot 10 (standaard 1)
curl -X POST "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/renew/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"years": 1}'
{
  "success": true,
  "domain_uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
  "new_expiration": "2028-01-15T10:30:00+00:00",
  "message": "example.com renewed successfully for 1 year(s)!"
}

Responsstatuscodes

200 Domein vernieuwd
400 Ongeldige jaren, geen verlengingsprijs voor het domein, geen bruikbare betaalmethode of de betaling is mislukt
404 Niet gevonden, of het behoort tot een andere account
500 Betaling kon niet worden verwerkt, of de betaling ging door maar de registrar vernieuwing mislukt. Contact ondersteuning in dat geval.
PUT /api/v1/domains/{uuid}/nameservers/

Naamservers bijwerken

Stelt de naamservers van het domein in op de registrar en geeft het bijgewerkte domeinobject terug. Om DNS te beheren met de DNS API, gebruik je ns1.vps.org, ns2.vps.org en ns3.vps.org en maak je een zone voor het domein.

Vereiste toestemming: domains:update

Parameters van de aanvraagbody

Parameter Type Vereist Omschrijving
nameserver1 string Ja Primaire naamserver-hostnaam
nameserver2, nameserver3, nameserver4 string Nee Aanvullende naamserverhostnamen
curl -X PUT "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/nameservers/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"nameserver1": "ns1.vps.org", "nameserver2": "ns2.vps.org", "nameserver3": "ns3.vps.org"}'

Responsstatuscodes

200 Nameservers bijgewerkt; de body is het domeinobject
400 nameserver1 ontbreekt
404 Niet gevonden, of het behoort tot een andere account
500 De update is mislukt; de body heeft fout- en berichtvelden
PUT /api/v1/domains/{uuid}/auto-renew/

Automatisch aan- of uitzetten

Stelt auto_renew in en geeft het bijgewerkte domeinobject terug. Verzend ingeschakeld als een JSON boolean: elke niet-leeg tekenreeks, inclusief de string false, zet automatisch verlenging aan.

Vereiste toestemming: domains:update

curl -X PUT "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/auto-renew/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled": false}'

Responsstatuscodes

200 Opgeslagen instellingen; het lichaam is het domeinobject
400 ontbrekend
404 Niet gevonden, of het behoort tot een andere account

Opmerkingen