Hopp til innhold
↑ ↓ navigerEnter åpneEsc lukk

Paginering

Markørbasert paginering på alle lister. Stabil under endringer, enkel å bruke, og innebygd i SDK-ene.

Alle endepunkter som returnerer lister bruker markørbasert paginering. Det gir stabile resultater selv når objekter legges til eller slettes mens du blar, i motsetning til offset, som kan hoppe over eller gjenta rader.

Formatet

{
  "data": [ { "…": "…" }, { "…": "…" } ],
  "neste": "eyJpZCI6ImZha18wMUpCWDRSOFEyTTciLCJ0IjoiMjAyNi0xMS0wMyJ9"
}

Send neste som spørringsparameteren markor for å hente neste side. Når neste er null, er du på siste side.

curl "https://api.spireapi.com/v1/fakturaer?status=forfalt&antall=100" -H "Authorization: Bearer …"
curl "https://api.spireapi.com/v1/fakturaer?status=forfalt&antall=100&markor=eyJpZCI6…" -H "Authorization: Bearer …"

Markøren er ugjennomsiktig. Ikke dekod den eller bygg den selv; formatet kan endres. Den er gyldig i 24 timer.

Parametre

ParameterStandardMaksHva
antall20100Objekter per side
markorFra forrige svar
sorteringAvhenger av endepunktopprettet eller -opprettet (nyeste først) der det støttes

Filtre (som status eller fra) må være like på alle sidene i én gjennomgang. Endrer du et filter, må du starte uten markør.

I SDK-ene

SDK-ene gjør paginering usynlig. Du får en iterator som henter neste side når du trenger den:

for faktura in spire.fakturaer.list(status="forfalt"):
    print(faktura.nummer)
it := client.Fakturaer.List(ctx, &spire.FakturaListParams{Status: "forfalt"})
for it.Next() {
    f := it.Current()
    fmt.Println(f.Nummer)
}
if err := it.Err(); err != nil {
    log.Fatal(err)
}

Vil du ha en side om gangen, for eksempel i et brukergrensesnitt, kan du be om det eksplisitt:

const side = await spire.fakturaer.listSide({ status: 'forfalt', antall: 50, markor });
// side.data, side.neste

Hente «alt siden sist»

For synkronisering er det bedre å filtrere på tid enn å bla gjennom alt:

curl "https://api.spireapi.com/v1/fakturaer?endret_etter=2026-11-02T22:00:00Z"

endret_etter finnes på alle lister. Kombiner med webhooks: webhooks gir deg endringer i sanntid, og en nattlig jobb med endret_etter fanger opp alt du eventuelt gikk glipp av.

Lister som strømmes

Masseoppslag og eksport bruker ikke paginering, men strømmer svaret som NDJSON: én JSON-linje per objekt, uten ytre liste. Les linje for linje, så trenger du ikke holde hele svaret i minnet.

curl -X POST https://api.spireapi.com/v1/virksomheter/masse -d @orgnr.json | while read linje; do
  echo "$linje" | jq -r .navn
done
Sist oppdatert 20. juni 2026 Fant du en feil? Si fra, så retter vi innen en virkedag.