Limits und Rate Limits
Rate Limit
Abschnitt betitelt „Rate Limit“Jeder Key darf 120 Anfragen pro Minute senden. Gezählt wird in festen Fenstern von 60 Sekunden. Jede Antwort trägt den aktuellen Stand in Headern nach dem IETF-Entwurf für RateLimit-Header:
RateLimit-Policy: "default";q=120;w=60RateLimit: "default";r=87;t=34| Wert | Bedeutung |
|---|---|
q | Anfragen pro Fenster |
w | Fenstergröße in Sekunden |
r | verbleibende Anfragen im aktuellen Fenster |
t | Sekunden bis zum nächsten Fenster |
Ist das Limit erreicht, antwortet die API mit 429 rate_limited und dem Header Retry-After (Sekunden). Warte so lange und wiederhole dann.
Zusätzlich gibt es eine großzügige Obergrenze pro IP-Adresse (600 Anfragen pro Minute), damit mehrere Websites auf einem gemeinsamen Webhosting sich nicht gegenseitig ausbremsen.
Tipps:
- Für viele Termine nimm Batch: 100 Operationen zählen als eine Anfrage.
- Schick Änderungen, wenn sie passieren, statt regelmäßig alles. Für den vollständigen Abgleich gibt es den Full Sync.
- Unveränderte Termine erkennt die API selbst (
changed: false); du musst dir dafür nichts merken.
Grenzen nach Tarif
Abschnitt betitelt „Grenzen nach Tarif“| Sandbox (jeder Tarif) | Basic | Professional | |
|---|---|---|---|
| Kalender | 3 Testkalender | 1 Live-Kalender | 10 Live-Kalender |
| Termine je Kalender | 500 | 5.000 | 5.000 |
| Aktive Abonnenten (Konto) | 500 | 5.000 |
Eine Serie zählt als ein Termin. Mehr auf Anfrage. Was beim Erreichen passiert: Tarife und Limits.
Technische Grenzen
Abschnitt betitelt „Technische Grenzen“| Grenze | |
|---|---|
| Aktive Keys je Konto | 10 |
| JSON-Body | 1 MB |
| Batch | 100 Operationen |
| Logo / Banner | 512 KB / 2 MB |
| Kalendername | 100 Zeichen |
| Kalenderbeschreibung | 1.000 Zeichen |
external_id | 1 bis 128 Zeichen: A-Z a-z 0-9 . _ : - |
| Termintitel | 255 Zeichen |
| Terminbeschreibung | 65.536 Zeichen Eingabe, gespeichert bis 8.000 Zeichen Text |
| Ort | 500 Zeichen |
| URLs | 2.000 Zeichen, nur https:// |
categories | 10 Einträge à 50 Zeichen |
metadata | 2 KB JSON |
recurrence.rules | 5 Regeln à 500 Zeichen |
recurrence.except_dates | 1.000 |
recurrence.overrides | 500 |
COUNT, INTERVAL | 1 bis 1.000 |
default_duration | bis PT24H |
| Seitengröße beim Auflisten | 100 |
| Gültigkeit eines Full Sync | 1 Stunde |
Idempotency-Key | 255 Zeichen, 24 Stunden gespeichert |