# Rate Limits der Public API

Jedes API-Token hat sein eigenes Anfragekontingent pro Minute und pro Stunde. Eine stark beschäftigte Integration auf einem Token bremst nie ein anderes Token. Eine Anfrage ohne Token teilt sich ein Kontingent mit jedem anderen anonymen Aufrufer.

## Wenn eine Anfrage abgelehnt wird

Eine Anfrage über dem Kontingent antwortet mit `429` und dem [Fehler-Body](/de/api/errors), `code` `rate_limit_exceeded` und `retryable` `true`. Ihr `detail` nennt das Limit und sein Zeitfenster. Vier Header sagen, wann du es erneut versuchen kannst:

| Header | Wert |
|---|---|
| `RateLimit-Limit` | Die Anfragen, die das Zeitfenster erlaubt, das diese abgelehnt hat. |
| `RateLimit-Remaining` | Die verbleibenden Anfragen in diesem Zeitfenster: `0`. |
| `RateLimit-Reset` | Sekunden, bis das Zeitfenster wieder eine Anfrage durchlässt. |
| `Retry-After` | Dieselben Sekunden wie `RateLimit-Reset`. |

## Zurückstecken

<Stepper>

1. Lies bei einem `429` den Header `Retry-After`, oder `RateLimit-Reset`, wenn ein Proxy ihn entfernt hat.
2. Warte so viele Sekunden und sende dieselbe Anfrage erneut.
3. Ist die Wartezeit lang, etwa fast eine Stunde, ist das Stundenkontingent aufgebraucht: Halte an und setze später fort, statt die Anfrage offen zu halten.

</Stepper>

Der Terraform-Provider erledigt das für dich: Er wartet ein kurzes `Retry-After` ab und meldet ein langes als Fehler.

## Wie es sich verhält

- Das Kontingent gehört zum Token, egal welcher Client oder welche Adresse es sendet. Ein Header wie `X-Client-Id` öffnet kein neues Kontingent.
- Nur `Authorization: Bearer` trägt ein Token. Ein auf anderem Weg gesendetes Token, etwa in einem `X-Api-Key`-Header, wird nicht gelesen; eine Operation, die ein Token braucht, antwortet daher mit `401`.
- Ein `429` wird abgelehnt, bevor die Operation läuft; ein erneuter Versuch ist daher für jede Methode sicher, auch für ein Anlegen.
- Kostendaten mit `limit=5000` zu lesen kostet eine Anfrage je 5.000 Zeilen; siehe [Paginierung](/de/api/pagination).

## Verwandte Seiten

- [Fehler](/de/api/errors)
- [Paginierung](/de/api/pagination)
- [Authentifizierung](/de/api/authentication)
