API-dokumentasjon

Versjon: v0
Sist oppdatert: 2019-05-22 10:36

Testperiode

Domeneshop tilbyr nå et enkelt REST-basert API for testing. API-tjenesten er foreløpig i versjon 0, og det er sannsynlig at grensesnittet vil forandre seg i løpet av testperioden. Dokumentasjonen på disse sidene kan potensielt være utdatert.

Vi kan ikke garantere for stabiliteten av API-tjenesten i testperioden, og ber derfor kunder om å ikke bruke denne tjenesten til driftskritiske formål.

For å få tilgang til APIet, ta kontakt med kundeservice.

Autentisering

For å benytte deg av dette APIet behøver du innloggingsopplysninger i form av et API-token og en API-secret. Dette er i praksis synonymt med et brukernavn og passord, men muliggjør mer granulær tilgangskontroll for den aktuelle brukerkontoen.

Du kan i dag ikke opprette disse selv. Ta kontakt med kundeservice for å få tilgang.

Foreløpig er eneste autentiseringsmekanisme HTTP Basic Auth. Brukernavnet er ditt API-token, og passordet er din API-secret.

Et eksempel på autentisert forespørsel i cURL ser slik ut:

curl --user "{token}:{secret}" https://api.domeneshop.no/v0/domains

{token} og {secret} er henholdsvis ditt API-token, og din API-secret.

Endepunkter

Følgende endepunkter er definert for versjon 0 av APIet.

Domener

GET Hente alle domenenavn

GET https://api.domeneshop.no/v0/domains

Returnerer 200 OK ved suksess, og i body en liste over alle domenenavn.

Vi aksepterer følgende valgfrie parametere i query string:

Parameter

Forklaring

domain

Filtrerer listen slik at den kun inneholder domenenavn som inneholder denne verdien. For eksempel vil ?domain=.no kun returnere alle domener som inneholder .no i navnet.

Eksempel:

GET https://api.domeneshop.no/v0/domains
HTTP 200 OK
[
  {
    "domain": "example.com",
    "expiry_date": "2019-10-12",
    "id": 1,
    "nameservers": [
      "ns1.hyp.net",
      "ns2.hyp.net",
      "ns3.hyp.net"
    ],
    "registered_date": "2015-10-12",
    "registrant": "Example Registrant",
    "renew": true,
    "services": {
      "dns": true,
      "email": false,
      "registrar": true,
      "webhotel": "none"
    },
    "status": "active"
  }
]

GET Hente informasjon om domenenavn

GET https://api.domeneshop.no/v0/domains/{domainId}

Returnerer 200 OK ved suksess, og i body informasjon om et spesifikt domenenavn.

URL Parameter

Forklaring

domainId

Domenenavnets ID. Kan hentes ut fra URL i kontrollpanelet på våre websider, eller fra API-kallet GET Hente alle domenenavn

Eksempel:

GET https://api.domeneshop.no/v0/domains/1
HTTP 200 OK
{
  "domain": "example.com",
  "expiry_date": "2019-10-12",
  "id": 1,
  "nameservers": [
    "ns1.hyp.net",
    "ns2.hyp.net",
    "ns3.hyp.net"
  ],
  "registered_date": "2015-10-12",
  "registrant": "Example Registrant",
  "renew": true,
  "services": {
    "dns": true,
    "email": false,
    "registrar": true,
    "webhotel": "none"
  },
  "status": "active"
}

Domenesøknader

GET Hente alle domenesøknader

GET https://api.domeneshop.no/v0/applications

Returnerer 200 OK ved suksess, og i body en liste over alle pågående domenesøknader.

GET Hente informasjon om domenesøknad

GET https://api.domeneshop.no/v0/applications/{domainId}

Returnerer 200 OK ved suksess, og i body informasjon om en spesifikk domenesøknad.

URL Parameter

Forklaring

domainId

Domenenavnets ID. Kan hentes ut fra URL i kontrollpanelet på våre websider, eller fra API-kallet Hente alle domenesøknader

Domeneflyttinger

GET Hente alle domeneflyttinger

GET https://api.domeneshop.no/v0/transfers

Returnerer 200 OK ved suksess, og en liste over alle aktive domeneflyttinger.

GET Hente informasjon om domeneflytting

GET https://api.domeneshop.no/v0/transfers/{domainId}

Returnerer 200 OK ved suksess, og i body informasjon om en spesifikk domeneflytting.

URL Parameter

Forklaring

domainId

Domenenavnets ID. Kan hentes ut fra URL i kontrollpanelet på våre websider, eller fra API-kallet GET Hente alle domeneflyttinger

DNS

GET Hente alle DNS-pekere for domene

GET https://api.domeneshop.no/v0/domains/{domainId}/dns

Returnerer 200 OK ved suksess, og i body en liste over alle DNS-pekere for domenenavnet.

URL Parameter

Forklaring

domainId

Domenenavnets ID. Kan hentes ut fra URL i kontrollpanelet på våre websider, eller fra API-kallet GET Hente alle domenenavn

Eksempel:

GET https://api.domeneshop.no/v0/domains/1/dns

Respons:

HTTP 200 OK
[
    {
        "data": "127.0.0.1",
        "host": "subdomain",
        "id": 1233,
        "ttl": 3600,
        "type": "A"
    },
    {
        "data": "my-text",
        "host": "subdomain",
        "id": 1234,
        "ttl": 3600,
        "type": "TXT"
    }
]

GET Hente informasjon om DNS-peker for domene

GET https://api.domeneshop.no/v0/domains/{domainId}/dns/{recordId}

Returnerer 200 OK ved suksess, og i body informasjon om en spesifikk DNS-peker for et domene.

URL Parameter

Forklaring

domainId

Domenenavnets ID. Kan hentes ut fra URL i kontrollpanelet på våre websider, eller fra API-kallet GET Hente alle domenenavn

recordId

DNS-pekerens ID. Kan hentes med API-kallet GET Hente informasjon om DNS-peker for domene, eller fra resultatet i POST Opprette DNS-peker for domene

Eksempel:

GET https://api.domeneshop.no/v0/domains/1/dns/1234

Respons:

HTTP 200 OK
{
  "data": "my-text",
  "host": "subdomain",
  "id": 1234,
  "ttl": 3600,
  "type": "TXT"
}

POST Opprette DNS-peker for domene

POST https://api.domeneshop.no/v0/domains/{domainId}/dns

Oppretter en DNS-peker for et domenenavn. Krever et JSON-enkodet objekt i innsendt data (request body).

Returnerer 201 Created ved suksess, og en Location-header med URL til det opprettede objektet. Body er tom.

URL Parameter

Forklaring

domainId

Domenenavnets ID. Kan hentes ut fra URL i kontrollpanelet på våre websider, eller fra API-kallet GET Hente alle domenenavn

Følgende nøkler er definerte for det innsendte JSON-objektet:

JSON Body

Forklaring

type (påkrevd)

DNS-pekerens RR-type. Må være én av: A AAAA CNAME ANAME TLSA MX SRV DS CAA NS TXT.

host (påkrevd)

Vertsnavnet som DNS-pekeren skal gjelde. For rotdomenet, bruk @ eller tom streng «».

data (påkrevd)

Verdi/data. Gyldige verdier avhenger av pekerens RR-type.

ttl

TTL i sekunder.

priority

Påkrevd for MX- og SRV-pekere. Prioritet for pekeren.

weight

Påkrevd for SRV-pekere. En tallverdi som angir vekten til pekeren.

port

Påkrevd for SRV-pekere. Et portnummer for SRV-pekeren.

usage

Påkrevd for TLSA-pekere. TLSA usage. Tallverdi, 1 , 2 eller 3.

selector

Påkrevd for TLSA-pekere. TLSA selector. Tallverdi, 0 eller 1.

dtype

Påkrevd for TLSA-pekere. TLSA matching type. Tallverdi, 0, 1 eller 2.

tag

Påkrevd for DS- og CAA-pekere.

alg

Påkrevd for DS-pekere. Se RFC3658 for detaljer.

digest

Påkrevd for DS-pekere. Se RFC3658 for detaljer.

flags

Påkrevd for CAA-pekere. Se RFC3658 for detaljer.

Eksempel:

POST https://api.domeneshop.no/v0/domains/1/dns/
{"type": "A", "host": "www", "ttl": 3600, "data": "127.0.0.5"}

Respons:

HTTP 201 Created

Location: https://api.domeneshop.no/v0/domains/1/dns/1235

PUT Modifisere eksisterende DNS-peker for domene

PUT https://api.domeneshop.no/v0/domains/{domainId}/dns/{recordId}

Modifiserer en eksisterende DNS-peker for et domenenavn. Krever et JSON-enkodet objekt i innsendt data (request body).

Det er ikke tillatt å endre vertsnavn eller RR-type på en eksisterende DNS-peker. Om dette ønskes, slett den eksisterende DNS-pekeren og opprett en ny.

Returnerer 204 No Content ved suksess. Body er tom.

URL Parameter

Forklaring

domainId

Domenenavnets ID. Kan hentes ut fra URL i kontrollpanelet på våre websider, eller fra API-kallet GET Hente alle domenenavn

recordId

DNS-pekerens ID. Kan hentes med API-kallet GET Hente informasjon om DNS-peker for domene, eller fra resultatet i POST Opprette DNS-peker for domene

Se API-kallet [Opprette DNS-peker for domene](#toc_16) for informasjon om gyldig innsendt data.

Eksempel:

PUT https://api.domeneshop.no/v0/domains/1/dns/1235

{"type": "A", "host": "www", "ttl": 3600, "data": "127.0.0.6"}

Respons:

HTTP 204 No Content

Feilkoder

Her er en oversikt over de definerte feilkodene, og en tilhørende forklaring:

HTTP Status

Feilkode

Forklaring

403

resource:unauthorized

Den innsendte autentiseringsinformasjon har ikke tilgang til den ønskede ressursen. Det kan skyldes at du ikke har tilgang til den angitte domainId, eller at API-tokenet du benytter deg av ikke har de nødvendige rettighetene.

404

resource:unknown

Den ønskede ressursen eksisterer ikke. Det betyr sannsynligvis at angitt domainId eller recordId ikke eksisterer.

403

resource:methodInvalid

HTTP-verbet du forsøker å benytte er ikke støttet for ønsket ressurs.

400

request:jsonInvalid

Innsendt data er ikke et gyldig JSON-objekt.

401

request:headerMissing

Den nødvendige Authorization-headeren mangler i forespørselen.

400

request:headerInvalid

Den nødvendige Authorization-headeren mangler er ikke en gyldig HTTP Basic Auth header.

401

authentication:failed

Authorization er en gyldig HTTP Basic Auth header, men autentisering feilet. token/secret er enten feil, eller tokenet har løpt ut.

400

record:invalid

Det innsendte JSON-objektet er ikke en gyldig DNS-peker. Se API-kallet POST Opprette DNS-peker for domene for informasjon om gyldig innsendt data.

412

record:illegalChange

Ugyldig modifikasjon av DNS-peker. Se PUT Modifisere eksisterende DNS-peker for domene

409

record:collision

Opprettelse av DNS-pekeren vil føre til kollisjon med en eksisterende CNAME-peker.

Support

Ved problemer, spørsmål eller andre tilbakemeldinger, ta kontakt med kundeservice.