# Rate limits og kvoter

Hver nøgle har to grænser: en burst-grænse pr. minut og en månedlig kvote. Begge står i headerne på hvert svar, så du aldrig behøver at gætte.

## To grænser

- **Burst pr. minut** — hvor mange kald nøglen må lave inden for et vindue på 60 sekunder. Beskytter mod løbske løkker.
- **Månedlig kvote** — hvor mange kald planen indeholder pr. kalendermåned. Nulstilles den 1. i måneden kl. 00:00 UTC.

```http
X-RateLimit-Limit: 1200        # burst-loft pr. minut for din plan
X-RateLimit-Remaining: 1187    # tilbage i det aktuelle minut
X-RateLimit-Reset: 1790239832  # unix-tid (sekunder), hvor minut-vinduet nulstilles
X-Quota-Limit: 5000            # månedens kvote
X-Quota-Remaining: 4211        # tilbage af månedens kvote
X-Quota-Reset: 1790812800      # unix-tid (sekunder) for den 1. i næste måned, UTC
Retry-After: 13                # kun på 429: sekunder du skal vente
```

I [TypeScript-SDK’et](https://grundfast.dk/docs/sdk) får du headerne parset med `*WithMeta()`-metoderne.

## Grænser pr. plan

| Plan | Kald pr. måned | Burst pr. minut | Over kvoten |
| --- | --- | --- | --- |
| Free | 5.000 | 1.200 | Afvises med `429` |
| Starter | 100.000 | 3.600 | 1 kr. pr. 1.000 kald |
| Pro | 500.000 | 9.000 | 1 kr. pr. 1.000 kald |
| Scale | 2.000.000 | 18.000 | 1 kr. pr. 1.000 kald |
| Enterprise | Ubegrænset | 60.000 | — |

Free er et hårdt loft: når kvoten er brugt, svarer API’et `429` resten af måneden. På de betalte planer fortsætter kaldene over kvoten og faktureres som overforbrug. På Enterprise viser `X-Quota-Limit` og `X-Quota-Remaining` værdien `unlimited`. Priser og indhold står på [/priser](https://grundfast.dk/priser).

Testnøgler (`gf_test_`) har deres eget loft på 25.000 kald pr. måned, uafhængigt af planen, og samme burst-grænse som planen. Se [Godkendelse og nøgler](https://grundfast.dk/docs/godkendelse).

## Hvad tæller som et kald

- Et almindeligt opslag tæller som ét kald.
- Et `:batch`-kald tæller ét kald pr. unikt id i listen. Dubletter tælles kun én gang. Se [Batch og eksport](https://grundfast.dk/docs/batch-og-eksport).
- En eksport tæller ét kald pr. unikt id, og id’er, der ikke kunne hentes, krediteres tilbage.
- `/v1/dhm/profil` tæller ét kald pr. punkt i profilen; `/v1/dhm/terraen` tæller ét kald for hele nettet.
- Et vellykket `tools/call` på [MCP-serveren](https://grundfast.dk/docs/mcp) tæller som ét kald.
- Svar med `5xx` og `504` lægges tilbage i kvoten. Se [Fejl og statuskoder](https://grundfast.dk/docs/fejl).

## Når du rammer en grænse

| Grænse | Kendetegn | Hvad du gør |
| --- | --- | --- |
| Burst | `429` med `X-RateLimit-*`; `Retry-After` er sekunderne til minut-vinduet nulstilles. | Vent `Retry-After` sekunder og prøv igen. Spred kaldene jævnt. |
| Månedens kvote (Free) eller sandbox-loftet | `429` med `X-Quota-Remaining: 0`; `Retry-After` peger på næste måned. | Prøv ikke igen automatisk. Opgradér eller skift til en live-nøgle. |

Hold øje med `X-Quota-Remaining` i din egen overvågning. Har du [webhooks](https://grundfast.dk/docs/webhooks), udsendes `usage.threshold`, når månedens forbrug passerer 80 % og 100 % af kvoten.
