Paginering
De fleste endpoints returnerer ét objekt. De få, der returnerer lister, er enten sideinddelte med per_side og side eller returnerer de bedste hits til en søgning.
Sideinddelte lister
Registerlister sideinddeles med to query-parametre: per_side (antal pr. side) og side (1-indekseret). Svaret bærer antal (rækker på denne side) og total (rækker i hele listen), så du ved, hvornår du er færdig.
| Endpoint | per_side standard | per_side maks. | Bemærk |
|---|---|---|---|
GET /v1/ejerlav | 100 | 100 | Sorteret efter ejerlavskode. |
GET /v1/vejnavne | 100 | 200 | Kan afgrænses med kommunekode. |
GET /v1/postnumre | — | — | Ikke sideinddelt: hele listen i ét svar (antal = total). |
En værdi over maksimum sættes ned til maksimum. En side efter den sidste giver en tom liste med antal: 0, ikke en fejl. Hver side er ét kald.
{
antal: number, // rækker på denne side
total: number, // rækker i hele listen
vejnavne: string[], // (ejerlav: ejerlav[])
meta: { kilde, grundfast_version }
}Hent alle sider
const headers = { Authorization: `Bearer ${process.env.GRUNDFAST_API_KEY}` };
const perSide = 200;
const vejnavne = [];
for (let side = 1; ; side++) {
const url = `https://api.grundfast.dk/v1/vejnavne?kommunekode=0851&per_side=${perSide}&side=${side}`;
const res = await fetch(url, { headers });
if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);
const page = await res.json();
vejnavne.push(...page.vejnavne);
if (page.antal < perSide || vejnavne.length >= page.total) break;
}
console.log(vejnavne.length, 'vejnavne i Aalborg Kommune');Med TypeScript-SDK’et er det samme gf.vejnavne(perSide, side, kommunekode) og gf.ejerlav(perSide, side).
Søgning og autocomplete
Søge-endpoints sideinddeles ikke. De returnerer de bedst rangerede hits op til et loft — til en søgeboks, ikke til at hente hele registret.
| Endpoint | Parameter | Standard | Maks. |
|---|---|---|---|
GET /v1/adresse/search | per_side | 8 | 20 |
GET /v1/adgangsadresser/reverse | per_side | 1 | 20 |
GET /v1/cvr/search | limit (eller per_side) | 10 | 20 |
GET /v1/autocomplete | — | 20 | 20 |
GET /v1/vejnavne/autocomplete, /v1/postnumre/autocomplete, /v1/ejerlav/autocomplete | — | 20 | 20 |
Autocomplete for vejnavne, postnumre og ejerlav bærer også antal og total; her er total størrelsen af hele listen, der blev søgt i, ikke antallet af mulige hits.
Mange ejendomme på én gang