← gwada.app

Dokumentation

Anmelden

Rate Limits & Fehler

Limits und HTTP-Antworten.

Public API (Secret-Key, /api/v1/…)

60 Anfragen pro Minute pro API-Schlüssel — gilt für GET und POST (z. B. Reservierung buchen). Für typische Websites (ein Seitenaufruf, gelegentlicher Refresh) ist das mehr als ausreichend.

Bei Überschreitung: 429 rate_limit_exceeded mit Header Retry-After.

Öffentliche Slug-Endpunkte (/api/public/…)

Die unauthentifizierten Embed- und Profil-Routen (Slug in der URL) sind für eingebettete Widgets gedacht, nicht für Massen-Scraping. Es gelten zusätzliche Limits pro Client-IP:

  • Lesen (GET): 30/min pro IP, 20/min pro IP und Restaurant (Slug bzw. Restaurant-ID)
  • Schreiben (POST): 10/min pro IP, 5/min pro IP und Restaurant

Für Headless-Integrationen und höhere Limits: Public API v1 mit Secret-Key unter Einstellungen → API.

Betroffene Routen u. a.: /api/public/profile/{slug}/{module}, /api/public/embed/{slug}, Reservierung/Kontakt-POST.

Häufige Fehler (v1)

StatuserrorBedeutung
401invalid_api_keyKey fehlt, falsch oder widerrufen
403module_not_enabledModul nicht für diesen Key aktiv
403origin_forbiddenBrowser-Origin nicht in Allowlist
403restaurant_not_publishedRestaurant nicht veröffentlicht
404not_foundUnbekannter Endpunkt oder keine Daten
405method_not_allowedz. B. POST auf reinem Lese-Modul
429rate_limit_exceededLimit überschritten (Key oder IP)
503server_misconfiguredServerseitige Konfiguration fehlt

Reservierungs-Schreiben kennt zusätzliche Codes (z. B. terms_required, outside_opening_hours, invalid_credentials) — siehe Reservierung.

Antwortformat

{
  "data": { … }
}

Fehler:

{
  "error": "invalid_api_key"
}

Bei 429 zusätzlich Header Retry-After und oft X-RateLimit-Limit.

Caching (GET)

  • Die meisten Lese-Endpunkte: public, s-maxage=60, stale-while-revalidate=300
  • News und Reservierungs-Schreiben: private, no-cache, no-store, must-revalidate