API-dokumentasjon
Norgesdomene API, versjon 1.3.0. Base-URL: https://norgesdomene.no/api/v1. Maskinlesbar spesifikasjon (OpenAPI 3.1): /api/v1/openapi.json
Introduksjon
API-et lar deg lese domenene dine, styre DNS og navnetjenere og følge ordrer programmatisk. Med API-bestilling aktivert kan du i tillegg registrere, flytte og fornye domener mot forhåndssaldo, for egen bruk eller for å selge domener i din egen løsning. Alle priser er i norske øre (NOK). Alle svar er JSON.
Alle endepunkter har base-URL https://norgesdomene.no/api/v1 og krever autentisering. Foretrekker du å la en AI-assistent gjøre jobben, se MCP for AI-assistenter under — samme nøkkel, samme tilgang.
Autentisering
Eiere og administratorer på en kundekonto kan lage API-nøkler under API eller AI-assistenter (MCP) i foretaksmenyen i portalen. Nøkkelen skal bare brukes fra din egen server, aldri i nettleserkode. Send nøkkelen som et Bearer-token i Authorization-headeren. Alle nøkler starter med ndp_live_.
Authorization: Bearer ndp_live_xxxxxxxxxxxxxxxxxxxx
Nøkler har scopes. Lese-endepunkter krever domains:read eller dns:read, skriveoperasjoner krever domains:write eller dns:write. En nøkkel opprettet som «kun lesetilgang» har bare lese-scopene.
Bestilling mot forhåndssaldo (POST /domains, POST /domains/transfers og POST /domains/:id/renew) krever en nøkkel med domains:order og at kontoen har API-bestilling aktivert. Vanlige nøkler med domains:write kan ikke bruke saldoen. Uten aktivering svarer API-et 403 api_disabled, og er bestilling sperret for kontoen, 403 ordering_blocked. Alle andre endepunkter er åpne for enhver gyldig nøkkel med riktig scope.
MCP for AI-assistenter
Norgesdomene har en MCP-server (Model Context Protocol) på https://norgesdomene.no/api/mcp. Koble den til Claude Code, Cursor eller en klient med støtte for MCP over HTTP og Bearer-nøkkel, så kan assistenten sjekke domener, lese og endre DNS, bytte navnetjenere og se tjenestene på kontoen. Bestilling og betaling skjer alltid i kassen på norgesdomene.no.
Uten nøkkel finnes bare de offentlige verktøyene. Med en API-nøkkel (samme Authorization: Bearer-header som REST-API-et) kommer kontoverktøyene i tillegg, styrt av nøkkelens scopes.
Claude Code
Oppsett med innlogging i Claude Code:
claude mcp add --scope user --transport http norgesdomene-oauth https://norgesdomene.no/api/mcp/oauth claude mcp login norgesdomene-oauth
Alternativt med API-nøkkel:
claude mcp add --scope user --transport http norgesdomene https://norgesdomene.no/api/mcp \ --header "Authorization: Bearer ndp_live_xxxx"
Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"norgesdomene": {
"url": "https://norgesdomene.no/api/mcp",
"headers": { "Authorization": "Bearer ndp_live_xxxx" }
}
}
}Du kan også koble til med innlogging på https://norgesdomene.no/api/mcp/oauth. Da velger du kundekonto og godkjenner lesetilgang uten API-nøkkel. OAuth er verifisert med Claude Code. ChatGPT, Claude Desktop og Cursor med OAuth avventer egne klienttester. Lag gjerne en egen nøkkel med kun lesetilgang for hver assistent.
Verktøy
| Verktøy | Krever | Gjør |
|---|---|---|
| check_domain | Ingen nøkkel | Ledighet, pris og bestillingslenke for et domene |
| get_domain_prices | Ingen nøkkel | Listepriser per toppdomene (inkl. mva) |
| create_order_link | Ingen nøkkel | Lenke til kassen for registrering eller flytting |
| get_account | domains:read | Hvilken konto nøkkelen tilhører |
| list_domains | domains:read | Kontoens domener med status og utløp |
| get_domain | domains:read | Detaljer om ett domene |
| list_services | domains:read | Webhotell, e-post, VPS, Microsoft 365, Deploy |
| list_dns_records | dns:read | DNS-oppføringer i Norgesdomenes DNS |
| create_dns_record | dns:write | Opprett DNS-oppføring |
| update_dns_record | dns:write | Endre DNS-oppføring |
| delete_dns_record | dns:write | Slett DNS-oppføring |
| set_nameservers | domains:write | Bytt navnetjenere hos registeret |
Serveren er stateless (ingen sesjoner) og følger MCP-spesifikasjonen 2026-07-28, med støtte for eldre klienter. Med API-nøkkel deler MCP og REST-API-et samme rate limit per nøkkel. Uten nøkkel er grensen 60 forespørsler i minuttet per IP-adresse. Med innlogging er grensen 120 i minuttet per IP-adresse og per tilkobling. Begge har i tillegg et felles tak for all trafikk, så du kan få 429 før din egen grense er nådd når belastningen er høy. Over grensen svarer serveren 429 med Retry-After.
Forhåndssaldo
En eier eller administrator aktiverer API-bestilling under API i kundeportalen ved å godta vilkårene for API-bestilling. Du trenger ingen egen avtale. Deretter lager du en nøkkel med bestillingsrett og fyller på saldo med faktura, minst 1 000 kr. Saldoen kan brukes når betalingen er registrert.
Bestillingene prises til ordinær pris med volumrabatt og trekkes fra saldoen. Saldoen er i øre. Har du for lav saldo, svarer API-et 402 insufficient_balance uten å belaste noe. Kontoen har også en grense for antall bestillinger per døgn (standard 50). Er den nådd, svarer API-et 429 order_limit_reached. Automatisk fornyelse av domenene faktureres som før og trekkes ikke fra saldoen.
Sjekk saldo og om kontoen kan bestille med GET /account. Uten API-bestilling bruker du kassen på norgesdomene.no. MCP-verktøyet create_order_link lager lenken for deg.
Idempotens
Bestillinger (POST /domains, POST /domains/transfers og POST /domains/:id/renew) krever headeren Idempotency-Key med en unik streng per forsøk. Send samme nøkkel og samme innhold ved retry; du får da samme ordre uten ny belastning, med oppdatert status. Gjenbrukes nøkkelen med andre opplysninger eller en annen handling i samme nøkkelrom, svarer API-et med 409 conflict. Bruk derfor en unik nøkkel per bestilling på tvers av endepunktene.
Idempotency-Key: ordre-klient-ref-abc123
Prøvekjøring (dryRun)
Legg til ?dryRun=true på POST /domains, POST /domains/transfers eller POST /domains/:id/renew for å teste integrasjonen uten å bestille. API-et kjører de samme kontrollene som en ekte bestilling: validering, pris, ledighet hos Norid, åpne fornyelser, døgngrensen og saldoen. Ingen ordre opprettes, ingenting trekkes fra saldoen og ingenting sendes til registeret. Idempotency-Key trengs ikke.
Går alt gjennom, svarer API-et 200 med pris og saldo etter bestillingen. Ellers får du den samme feilen som en ekte bestilling ville gitt, for eksempel 402 insufficient_balance eller 409 domain_taken. En prøvekjøring er ingen reservasjon: domenet kan bli tatt før du bestiller. For fornyelser sjekkes utløpsdatoen hos registraren først ved den ekte bestillingen.
{
"dryRun": true,
"action": "register",
"domain": "kundensbedrift.no",
"subtotalOre": 14900,
"vatOre": 3725,
"totalOre": 18625,
"currency": "NOK",
"balanceOre": 500000,
"balanceAfterOre": 481375,
"dailyOrdersRemaining": 47,
"declarationRequired": true
}Webhooks
Flytting og registrering er asynkrone — de fullføres hos registeret etter at API-et har svart. I stedet for å spørre om status gjentatte ganger kan du registrere et endepunkt under API i portalen, så sender vi en POST når noe skjer.
Hendelser
domain.transfer.completed — domenet er flyttet og aktivt hos oss
domain.transfer.failed — flyttingen feilet (feil transferkode, avvist av registeret e.l.)
domain.declaration.signed — innehaveren har signert egenerklæringen. awaitingReview er true hvis vi må se på den før registrering.
domain.registered — domenet er registrert hos Norid og aktivt. Har med expiresAt.
domain.registration.failed — registreringen feilet etter signering. Har med reason. Vi følger opp saken.
domain.renewed — ny utløpsdato er bokført, uansett om fornyelsen kom fra API-et, en faktura eller automatisk fornyelse.
Kropp
{
"event": "domain.transfer.completed",
"createdAt": "2026-08-04T12:00:00.000Z",
"data": {
"domainId": "dom_xxxxxxxxxxxx",
"domain": "mittdomene.no",
"orderId": "ord_xxxxxxxxxxxx"
}
}Verifisering
Hver leveranse har headeren X-Norgesdomene-Signature på formen t=<unix>,v1=<hmac>. Signaturen er HMAC-SHA256 over <t>.<rå kropp> med signeringsnøkkelen du fikk da endepunktet ble opprettet. Tidsstemplet er med i signaturen så en avlyttet leveranse ikke kan spilles av på nytt — avvis forespørsler der t er eldre enn fem minutter.
const [t, v1] = header.split(",").map((p) => p.split("=")[1])
const expected = crypto
.createHmac("sha256", process.env.NORGESDOMENE_WEBHOOK_SECRET)
.update(`${t}.${rawBody}`)
.digest("hex")
if (!crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(v1))) {
return res.status(400).end()
}
if (Math.abs(Date.now() / 1000 - Number(t)) > 300) {
return res.status(400).end()
}Svar 2xx når du har tatt imot hendelsen. Får vi noe annet, prøver vi på nytt etter 1, 5 og 25 minutter, så 2 og 10 timer, før vi gir opp. Samme hendelse sendes aldri to ganger for samme domene, men bygg mottakeren idempotent likevel.
Endepunktet må bruke https og peke på en offentlig adresse. Interne og private adresser avvises.
Endepunkter
Sjekk om et .no-domene er ledig og hent pris. Andre endelser støttes foreløpig ikke av dette endepunktet og gir 400 invalid_request.
Query-parameter: domain (f.eks. mittdomene.no)
Svar — ledig
{
"domain": "mittdomene.no",
"available": true,
"priceOre": 19375,
"vatOre": 4844,
"totalOre": 24219,
"currency": "NOK"
}Svar — ikke ledig
{
"domain": "opptatt.no",
"available": false,
"reason": "Domenet er allerede registrert."
}Hvis Norid ikke gir et sikkert svar, returneres HTTP 503 med feilkoden availability_unavailable. Prøv igjen senere. Domenet meldes først ledig når oppslaget bekrefter at det kan registreres. Tilgjengelighet er ingen reservasjon.
Registrer et nytt domene. Kun .no støttes i denne versjonen — forespørsler på andre toppdomener avvises med 400 invalid_request. Se Registrerings- og deklarasjonsflyt nedenfor.
Forespørselskropp
{
"domain": "mittdomene.no",
"period": 1, // valgfri, 1–10 år
"registrant": {
"type": "organisasjon", // "person" eller "organisasjon"
"name": "Mitt Firma AS",
"orgNumber": "123456789", // 9 siffer — kreves for organisasjon
// "personId": "...", // kreves for type person
"email": "eier@firma.no",
"phone": "+4712345678", // valgfri
"addressLine1": "Storgata 1", // valgfri
"postalCode": "0001", // valgfri
"city": "Oslo", // valgfri
"country": "NO" // valgfri, standard NO
},
"nameservers": [ // valgfri
"ns1.mittfirma.no",
"ns2.mittfirma.no"
]
}Svar — 202 Accepted
{
"orderId": "ord_xxxxxxxxxxxxxxxx",
"orderNumber": "10042",
"domain": "mittdomene.no",
"status": "pendingRegistration",
"declarationUrl": "https://norgesdomene.no/deklarasjon/a1b2c3d4e5f6"
}Flytt et domene fra en annen registrar. Kun .no støttes i denne versjonen. Flytting av .no er gratis og beholder utløpsdatoen — domenet forlenges ikke, og du betaler først ved neste fornyelse.
En ren registrarflytting endrer ikke eier, og krever derfor ingen egenerklæring fra innehaveren. Det er forskjellen fra nyregistrering, og det som gjør at en hel portefølje kan flyttes uten at hver sluttkunde må signere noe.
Forespørselskropp
{
"domain": "mittdomene.no",
"authCode": "TransferKode123" // fra nåværende leverandør
// "noRegistrar": true // kun .no som står uten registrar —
// de har aldri hatt en transferkode
}Navnetjenerne beholdes alltid slik de er, så nettsted og e-post fortsetter uten avbrudd gjennom flyttingen. Vil du over på NorgesDNS, gjør du det i to steg etterpå: opprett oppføringene med POST /domains/{id}/dns, og bytt så navnetjenere med PUT /domains/{id}/nameservers. Rekkefølgen er viktig — bytter du navnetjenere før sonen er fylt, peker domenet mot ingenting.
Svar — 202 Accepted
{
"orderId": "ord_xxxxxxxxxxxxxxxx",
"orderNumber": "10043",
"domain": "mittdomene.no",
"status": "pendingTransfer",
"declarationUrl": null
}Flyttingen kjøres mot registeret etter at svaret er sendt, fordi Norid behandler ett flyttekall om gangen. Poll GET /domains/{id} til status går fra pendingTransfer til active. Feiler den, blir domenet stående i pendingTransfer og forsøkes på nytt automatisk — ingenting går tapt.
Hent liste over alle domener på kontoen (maks 200, sortert på utløpsdato).
Svar — 200 OK
{
"domains": [
{
"id": "dom_xxxxxxxxxxxxxxxx",
"name": "mittdomene.no",
"status": "active",
"expiresAt": "2026-05-01T00:00:00.000Z",
"registrar": "norid"
}
]
}Hent detaljer for ett domene. Bruk status-feltet for å poll-e registreringsstatus. declaration er pending, signed eller not_required. Mens den venter, inneholder declarationUrl lenken innehaveren skal bruke.
Svar — 200 OK
{
"id": "dom_xxxxxxxxxxxxxxxx",
"name": "mittdomene.no",
"status": "pendingDeclaration",
"expiresAt": null,
"registrar": "norid",
"autoRenew": true,
"declaration": "pending",
"declarationUrl": "https://norgesdomene.no/deklarasjon/xxxxxxxx"
}Slå automatisk fornyelse av eller på. Bruk dette når en sluttkunde slutter, så kontoen din ikke faktureres for neste periode. Det gjelder samme regler som i kundeportalen: slås den av, avbrytes eller krediteres en åpen fornyelsesfaktura, og billing forteller hva som skjedde. Maks åtte endringer per domene per time.
Body
{ "autoRenew": false }Svar — 200 OK
{
"id": "dom_xxxxxxxxxxxxxxxx",
"autoRenew": false,
"changed": true,
"billing": {
"outcome": "cancelled",
"message": "Den planlagte fornyelsen er avbrutt. Det var ikke utstedt noen faktura."
}
}Lag en ny lenke til egenerklæringen. Den forrige slutter å virke. Bare for .no-domener som venter på erklæring; ellers svarer API-et 409 conflict.
Svar — 200 OK
{ "declarationUrl": "https://norgesdomene.no/deklarasjon/yyyyyyyy" }Forny et domene med TLD-ens standardperiode (typisk 1 år). Beløpet trekkes fra saldo. Krever ingen forespørselskropp.
Svar — 202 Accepted
{
"orderId": "ord_xxxxxxxxxxxxxxxx",
"orderNumber": "10043",
"status": "active"
}Får ikke registraren svart i tide, kan svaret (eller et replay med samme Idempotency-Key) ha pendingRenewal: utfallet verifiseres mot registraren og ordren fullføres automatisk hvis fornyelsen gikk gjennom. Ikke send en ny forespørsel med en annen nøkkel — et nytt forsøk kan opprette en duplikat fornyelse.
Oppdater nameservere for et domene (erstatter eksisterende liste). Minst én, maks 13.
Har domenet DNSSEC på, avvises et bytte bort fra NorgesDNS med 409 conflict. En DS-post uten matchende signering gjør domenet utilgjengelig for validerende resolvere. DNSSEC skrus av i kundeportalen under Navnetjenere — vent noen timer etterpå før du bytter nameservere, så rekker den gamle DS-posten å gå ut av cachene.
Forespørselskropp
{
"nameservers": [
"ns1.ditt-hosting.no",
"ns2.ditt-hosting.no"
]
}Svar — 200 OK
{
"ok": true,
"nameservers": ["ns1.ditt-hosting.no", "ns2.ditt-hosting.no"]
}Hent alle DNS-oppføringer for et domene kontoen eier.
Svar — 200 OK
{
"records": [
{
"id": "uuid",
"type": "A",
"name": "@",
"value": "203.0.113.10",
"ttl": 3600,
"priority": null,
"weight": null,
"flags": null,
"tag": null,
"port": null,
"disabled": false
}
]
}Opprett en ny DNS-oppføring. Se tabellen over støttede typer nedenfor for påkrevde tilleggsfelt per type.
Forespørselskropp
{
"type": "A",
"name": "@",
"value": "203.0.113.10",
"ttl": 3600
}Svar — 201 Created
{
"id": "uuid",
"type": "A",
"name": "@",
"value": "203.0.113.10",
"ttl": 3600,
"priority": null,
"weight": null,
"flags": null,
"tag": null,
"port": null,
"disabled": false
}curl-eksempel
curl -X POST https://norgesdomene.no/api/v1/domains/$DOMAIN_ID/dns \
-H "Authorization: Bearer $NDP_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"A","name":"@","value":"203.0.113.10","ttl":3600}'Oppdater en eksisterende DNS-oppføring. Samme kropp-format som POST /dns.
Forespørselskropp
{
"type": "A",
"name": "@",
"value": "203.0.113.10",
"ttl": 3600
}Svar — 200 OK
{
"id": "uuid",
"type": "A",
"name": "@",
"value": "203.0.113.10",
"ttl": 3600,
"priority": null,
"weight": null,
"flags": null,
"tag": null,
"port": null,
"disabled": false
}Slett en DNS-oppføring. Returnerer tomt svar ved suksess.
Svar — 204 No Content
(tomt svar)
DNS-typer og påkrevde felt
ttl er valgfri (standard 3600, gyldig 60–86400). Tabellen viser hvilke tilleggsfelt som kreves per type.
| Type | Beskrivelse og krav |
|---|---|
| A | value = IPv4-adresse |
| AAAA | value = IPv6-adresse |
| CNAME | value = vertsnavn (kan ikke ligge på rotdomenet/@) |
| TXT | value = tekst |
| MX | value = mailserver-navn; krever priority |
| SRV | navn på formen _service._proto; krever priority, weight, port |
| CAA | krever flags og tag |
Navnetjenere og NorgesDNS
DNS-oppføringer trer i kraft når domenet bruker NorgesDNS-navnetjenere (ns1.norgesdns.no / ns2.norgesdns.no). Et domene registrert via API-et får dette automatisk ved første DNS-skriving. Har du satt egne eksterne navnetjenere, lagres oppføringene, men de resolver ikke før domenet peker til NorgesDNS.
Idempotens for DNS-skriving
DNS-skriving krever ikke Idempotency-Key. POST er ikke idempotent — et nytt forsøk kan opprette en duplikat. For å endre en eksisterende oppføring: hent listen (GET) og bruk PUT/DELETE på recordId.
Hent status og detaljer for en ordre. Ved reconciliationRequired=true må bestillingen avklares; saldoen beholdes reservert. Bruk orderId fra POST /domains-svaret for å følge ordren. Ordrestatusen completed betyr at ordren er behandlet, ikke at domenet er registrert. Følg domenestatus via GET /domains/:id.
Svar — 200 OK
{
"orderId": "ord_xxxxxxxxxxxxxxxx",
"orderNumber": "10042",
"status": "completed",
"reconciliationRequired": false,
"totalOre": 24219,
"items": [
{
"kind": "domain",
"description": "mittdomene.no (1 år)",
"meta": {}
}
]
}Hent saldo og status for API-bestilling. Krever bare lesetilgang, så integrasjonen kan sjekke status før den bestiller. ordering.status er active, not_activated eller blocked. keyCanOrder sier om nøkkelen du bruker har domains:order.
Svar — 200 OK
{
"balanceOre": 500000,
"currency": "NOK",
"ordering": {
"status": "active",
"dailyOrderLimit": 50,
"keyCanOrder": true
}
}Registrerings- og deklarasjonsflyt (.no)
For .no-domener er registrering en tostegs-prosess. Et 202-svar fra POST /domains betyr at ordren er mottatt og saldo er reservert — ikke at domenet er registrert hos Norid ennå.
Viktig: videresend deklarasjonslenken til din kunde
Svaret inneholder et declarationUrl-felt — en side hos Norgesdomene (norgesdomene.no/deklarasjon/…). Du sender lenken til domenets registrant (din sluttkunde), som fyller ut og signerer Norids egenerklæring der. Vi sender erklæringen til Norid og registrerer domenet først etter at den er levert.
Flyten steg for steg:
- Du kaller POST /domains → mottar 202 med status: "pendingRegistration" og declarationUrl.
- Du sender declarationUrl til din sluttkunde via e-post eller SMS.
- Sluttkunden åpner lenken (hos Norgesdomene), fyller ut og signerer egenerklæringen.
- Vi sender erklæringen til Norid og registrerer domenet. Status endres til active.
- Du får domain.declaration.signed og deretter domain.registered som webhook. Uten webhook: finn domenets ID via GET /domains og poll GET /domains/:id til status er active. Feltet declaration viser pending eller signed.
Håndter at declarationUrl kan være null
I sjeldne tilfeller (f.eks. om lenkegenerering ikke fullførte) er declarationUrl null selv om ordren er opprettet og saldo trukket. Ikke send en tom lenke til kunden. Lag en ny med POST /domains/:id/declaration-link. Det samme gjør du hvis lenken har kommet på avveie: den gamle slutter da å virke. Feltet gjelder bare .no.
Feilkoder
Alle feil returneres med HTTP-statuskoden nedenfor og kroppen:
{ "error": { "code": "invalid_request", "message": "..." } }| Kode | HTTP | Betydning |
|---|---|---|
| unauthorized | 401 | Ugyldig eller manglende API-nøkkel. |
| forbidden_scope | 403 | Nøkkelen mangler nødvendig scope. |
| api_disabled | 403 | API-bestilling er ikke aktivert for kontoen. En administrator aktiverer den under API i kundeportalen. |
| ordering_blocked | 403 | API-bestilling er sperret for kontoen. Lesing og DNS virker som før. Kontakt oss. |
| rate_limited | 429 | For mange forespørsler. Vent og prøv igjen. |
| order_limit_reached | 429 | Kontoen har nådd grensen for bestillinger siste døgn. Ingenting er belastet. |
| invalid_request | 400 | Manglende eller ugyldig felt i forespørselen. |
| domain_taken | 409 | Domenet er allerede registrert. |
| conflict | 409 | Idempotency-Key er brukt med andre opplysninger, et tidligere forsøk med nøkkelen feilet, eller domenet har en åpen fornyelse. Les meldingen før du prøver igjen. |
| invalid_contact | 422 | Registrantdata godkjennes ikke (f.eks. manglende orgNumber). |
| insufficient_balance | 402 | Saldo er for lav til å gjennomføre ordren. |
| provisioning_failed | 502 | Ekstern feil ved provisjonering hos register. |
| reconciliation_required | 503 | Bestillingen må avklares. Saldoen beholdes reservert. Bruk samme Idempotency-Key ved retry; ikke opprett en ny bestilling. Kontakt oss hvis statusen vedvarer. |
| availability_unavailable | 503 | Norid kunne ikke bekrefte tilgjengeligheten. Prøv igjen senere. |
| norid_busy | 503 | Norid tar ikke imot flere kall akkurat nå. Ingenting er belastet. Prøv igjen etter tidspunktet i retryAt. |
| not_found | 404 | Domene eller ordre finnes ikke. |
curl-eksempler
Sjekk om et domene er ledig
curl -s \ -H "Authorization: Bearer ndp_live_xxxx" \ "https://norgesdomene.no/api/v1/domains/check?domain=mittdomene.no"
Registrer et .no-domene (organisasjon)
curl -s -X POST \
-H "Authorization: Bearer ndp_live_xxxx" \
-H "Idempotency-Key: ordre-ref-001" \
-H "Content-Type: application/json" \
-d '{
"domain": "mittdomene.no",
"period": 1,
"registrant": {
"type": "organisasjon",
"name": "Mitt Firma AS",
"orgNumber": "123456789",
"email": "eier@firma.no"
}
}' \
"https://norgesdomene.no/api/v1/domains"Endringslogg
Nye endepunkter, felt og hendelser kommer uten ny hovedversjon, så klienten bør ignorere felt den ikke kjenner. Endringer som kan bryte en integrasjon, varsles med rimelig frist.
1.3.0 · 2026-10-14
- dryRun=true på POST /domains, /domains/transfers og /domains/:id/renew. Kjører kontrollene uten å bestille.
- Maskinlesbar spesifikasjon på /api/v1/openapi.json.
1.2.0 · 2026-10-14
- PATCH /domains/:id for å slå automatisk fornyelse av og på.
- POST /domains/:id/declaration-link lager en ny lenke til egenerklæringen (krever domains:order).
- GET /domains/:id viser declaration og declarationUrl. GET /domains viser autoRenew.
- Nye webhooks: domain.declaration.signed, domain.registered, domain.registration.failed og domain.renewed.
1.1.0 · 2026-10-14
- Bestilling krever scopet domains:order. Nøkler som hadde bestillingsrett fra før, fikk det automatisk.
- Nye feilkoder: ordering_blocked (403) og order_limit_reached (429).
- GET /account krever bare domains:read og viser ordering.status, dailyOrderLimit og keyCanOrder.