REST API

Public API

Integrer NordShelf direkte i dine systemer. Hent leveringsbadge-data, produktstrøm og fraktpriser via vårt REST API.

🔐 Alle endepunkter krever Authorization: Bearer fk_live_... i HTTP-headeren.
Autentisering

Slik bruker du API-nøkkelen

NordShelf bruker Bearer-token autentisering. Alle API-kall må inkludere din hemmelige API-nøkkel i Authorization-headeren.

1
Hent API-nøkkel fra Dashboard
Gå til Dashboard → API-nøkler og generer en ny nøkkel. Nøkkelen vises bare én gang — lagre den trygt.
2
Legg til Authorization-header
Send nøkkelen som Bearer-token i alle HTTP-forespørsler.
3
Test tilkoblingen
Bruk eksemplet under for å verifisere at nøkkelen fungerer korrekt.
Eksempel — Authorization header
curl -H "Authorization: Bearer fk_live_xxxxxxxxxxxxxxxx" \
  https://NordShelf.com/api/v1/badge/0158
Grensefrekvens

Grensefrekvens per plan

API-kall er begrenset per døgn. Når grensen er nådd returneres HTTP 429. Grensen nullstilles midnatt UTC.

Plan Kall per døgn Burst Merknad
Vekst 1 000 50 / min Passer for de fleste nettbutikker
Pro 5 000 200 / min For høyvolum-integrasjoner
Endepunkt

Leveringsbadge-oppslag

Sjekk om et postnummer kvalifiserer for neste-dag-levering og hent badge-metadata. Brukes av NordShelf-badgen på produktsidene dine.

GET /api/v1/badge/:postalCode
Returnerer leveringsdata for et norsk postnummer, inkludert badge-etikett og nærmeste fraktpart.
URL-parametere
ParameterTypeKravBeskrivelse
postalCode string Påkrevd Norsk postnummer (4 siffer), f.eks. 0158
Eksempel-forespørsel
curl
curl -H "Authorization: Bearer fk_live_..." \
  https://NordShelf.com/api/v1/badge/0158
Eksempel-svar
200 OK — application/json
{
  "postal_code": "0158",
  "city":        "Oslo",
  "next_day":    true,
  "carrier":     "helthjem",
  "badge": {
    "eligible": true,
    "label":    "Levert i morgen"
  }
}
Svarfelt
FeltTypeBeskrivelse
postal_codestringPostnummeret som ble slått opp
citystringTilhørende stedsnavn
next_daybooleanOm neste-dag-levering er mulig for postnummeret
carrierstringFraktpart som betjener området (helthjem, posten, etc.)
badge.eligiblebooleanOm dette postnummeret kan vise leveringsbadge
badge.labelstringLokalisert badge-tekst klar til visning
Endepunkt

Produktstrømdata

Hent strømstatus og produktliste for en spesifik kanal. Strømmene oppdateres automatisk når du synkroniserer produktkatalogen din.

GET /api/v1/feeds/:channel
finn prisjakt komplett
Returnerer strømstatus og produktliste for angitt kanal.
URL-parametere
ParameterTypeKravBeskrivelse
channel string Påkrevd Kanal-ID: finn, prisjakt eller komplett
Eksempel-forespørsel
curl
curl -H "Authorization: Bearer fk_live_..." \
  https://NordShelf.com/api/v1/feeds/finn
Eksempel-svar
200 OK — application/json
{
  "channel":       "finn",
  "status":        "active",
  "product_count": 142,
  "last_synced":   "2026-03-23T08:15:00Z",
  "feed_url":      "https://NordShelf.com/feeds/uid123/finn.no",
  "products": [
    {
      "id":        "prod_abc",
      "title":     "Vinterjakke Herre L",
      "price_nok": 1299,
      "in_stock":  true
    }
  ]
}
Endepunkt

Fraktprissammenligning

Sammenlign fraktpriser på tvers av alle tilgjengelige fraktparter for et gitt postnummer og vekt. Returnert i stigende prisrekkefolge.

GET /api/v1/carriers/compare
Returnerer sortert liste over fraktparter med priser for den angitte sendingen.
Spørreparametere
ParameterTypeKravBeskrivelse
postal_code string Påkrevd Mottakers postnummer (4 siffer)
weight_kg number Påkrevd Pakkes vekt i kilogram, f.eks. 2.5
length_cm number Valgfritt Pakkelengde i centimeter
width_cm number Valgfritt Pakkebredde i centimeter
Eksempel-forespørsel
curl
curl -H "Authorization: Bearer fk_live_..." \
  "https://NordShelf.com/api/v1/carriers/compare?postal_code=0158&weight_kg=2.5"
Eksempel-svar
200 OK — application/json
{
  "postal_code": "0158",
  "weight_kg":   2.5,
  "carriers": [
    {
      "carrier":   "helthjem",
      "service":   "Hjem-levering",
      "price_nok": 49,
      "next_day":  true,
      "est_days":  1
    },
    {
      "carrier":   "posten",
      "service":   "Pakke i postkassen",
      "price_nok": 89,
      "next_day":  false,
      "est_days":  2
    },
    {
      "carrier":   "instabox",
      "service":   "Pakkeboks",
      "price_nok": 99,
      "next_day":  false,
      "est_days":  2
    }
  ]
}
Nøkkelhåndtering

API-nøkkelhåndtering

API-nøkler administreres direkte i Dashboard. Du kan opprette, rotere og trekke tilbake nøkler når som helst.

Vekst-plan eller høyere kreves. API-tilgang er tilgjengelig på Vekst- og Pro-planene. Oppgrader planen din →
Sikkerhetstips:
  • Lagre aldri API-nøkkelen i kildekode som pushes til GitHub
  • Bruk miljøvariabler eller hemmelighetshåndtering (f.eks. .env)
  • Roter nøkkelen med jevne mellomrom eller ved mistanke om lekkasje
  • Begrens nøkkelens tilgang til kun nødvendige endepunkter
🔑 Håndter API-nøkler i Dashboard →
Referanse

HTTP-svarkoder

Alle API-svar bruker standard HTTP-svarkoder. Feilsvar inkluderer alltid et message-felt med forklaring.

Kode Status Beskrivelse
200OKForespørselen ble behandlet
400Bad RequestUgyldig parameter eller manglende obligatorisk felt
401UnauthorizedManglende eller ugyldig API-nøkkel
403ForbiddenNøkkelen mangler nødvendige tilganger for dette endepunktet
404Not FoundPostnummer eller ressurs ble ikke funnet i databasen
429Too Many RequestsGrensefrekvens oversteget. Prøv igjen etter midnatt UTC
500Server ErrorIntern feil. Kontakt support@NordShelf.com
Eksempel — Feilsvar
{
  "error":   "INVALID_POSTAL_CODE",
  "message": "Postal code '9999' was not found in coverage database.",
  "status":  404
}