Zurück zur Übersicht

Dokumentation

Fehlerform, Statuscodes und stabile Codes der öffentlichen API.

Jeder Fehler kommt als JSON. Das Feld code ist stabil und für Programme gedacht. Das Feld message ist deutsch und für Menschen formuliert. details ist optional.

json
{
  "code": "invalid_title",
  "message": "Ein Titel ist erforderlich."
}

Statuscodes

StatusBedeutung
400Die Anfrage ist ungültig. Meist ein Feld oder ein JSON-Problem.
401Kein gültiger API-Schlüssel.
403Der Plan erlaubt die Aktion nicht oder die Rolle fehlt.
404Die Ressource wurde nicht gefunden.
405Diese Methode ist für die Ressource nicht erlaubt.
409Die Aktion passt nicht zum aktuellen Zustand.
413Der Rumpf ist größer als 1 MiB.
429Zu viele Anfragen. Retry-After beachten.
500Interner Fehler.
503Der Dienst ist vorübergehend nicht verfügbar.

Codes

CodeStatusBedeutung
invalid_json400Kein gültiges JSON.
unknown_field400Ein Feld im Rumpf ist unbekannt. details.field nennt den Namen.
request_too_large413Der Rumpf ist größer als 1 MiB.
invalid_title400Titel fehlt oder ist zu lang.
invalid_start_at400Beginn fehlt oder ist kein RFC-3339-Zeitpunkt.
invalid_end_at400Ende ist ungültig oder liegt vor dem Beginn.
invalid_timezone400Zeitzone fehlt oder ist keine IANA-Zeitzone.
invalid_location_type400Ortstyp ist nicht offline, online oder hybrid.
invalid_visibility400Sichtbarkeit ist nicht public oder private.
invalid_status400Status ist nicht draft oder published, oder der Statusfilter ist ungültig.
invalid_capacity400Kapazität ist negativ.
invalid_category400Kategorie ist unbekannt.
invalid_tags400Zu viele Schlagworte oder ein Schlagwort ist zu lang.
no_changes400Die Änderung enthält kein Feld.
invalid_days400Der Zeitraum liegt nicht zwischen 1 und 365 Tagen.
invalid_limit400Ein limit ist ungültig, etwa keine ganze Zahl oder außerhalb des erlaubten Bereichs.
idempotency_conflict409Derselbe Idempotency-Key wurde mit einem anderen Rumpf verwendet.
event_has_registrations409Ein veröffentlichtes Event mit Anmeldungen lässt sich nicht löschen. details.count nennt die Zahl der Anmeldungen.
invalid_api_key401Der Schlüssel fehlt, ist unbekannt oder wurde zurückgezogen.
auth_unavailable503Der Schlüssel konnte nicht geprüft werden.
plan_required403Die Aktion erfordert Eventwerk Plus.
forbidden403Die Rolle erlaubt die Aktion nicht.
event_not_found404Das Event wurde nicht gefunden.
ticket_not_found404Die Ticketart wurde nicht gefunden.
registration_not_found404Die Anmeldung wurde nicht gefunden.
not_found404Die Route existiert nicht.
method_not_allowed405Die Methode ist für diese Route nicht erlaubt.
rate_limited429Mehr als 200 Anfragen pro Minute je Schlüssel und Instanz.
internal_error500Interner Fehler.
service_unavailable503Der Dienst ist vorübergehend nicht verfügbar.

Weitere Codes

CodeStatusBedeutung
invalid_webhook_url400Die Webhook-Adresse ist keine gültige http- oder https-Adresse.
webhook_not_found404Der Webhook wurde nicht gefunden.
invalid_name400Der Name des API-Schlüssels ist leer oder zu lang.
key_limit_reached400Es sind bereits 25 aktive API-Schlüssel vorhanden.
key_daily_limit400Es wurden heute bereits 10 API-Schlüssel angelegt.
weekly_send_limit403Das wöchentliche Versandkontingent ist erreicht. Details enthält limit, used und plan.
invalid_unread_only400unread_only ist nicht true oder false.
invalid_notification_id400Die Kennung einer Benachrichtigung ist ungültig.

Fehler behandeln

  1. Bei 400 die Anfrage anhand von code, message und details korrigieren. Nicht automatisch wiederholen.
  2. Bei 401 den Schlüssel prüfen. Ein zurückgezogener Schlüssel wird nie wieder gültig.
  3. Bei 403 den Plan und die Rolle prüfen. Ein Planwechsel hilft sofort.
  4. Bei 404 die Kennung prüfen. Die Ressource kann gelöscht worden sein.
  5. Bei 409 den Zustand prüfen. idempotency_conflict bedeutet einen anderen Rumpf beim selben Schlüssel, event_has_registrations ein veröffentlichtes Event mit Anmeldungen.
  6. Bei 429 den Wert von Retry-After abwarten.
  7. Bei 500 und 503 mit wachsender Pause erneut versuchen.

POST /events akzeptiert einen Idempotency-Key. Gleicher Schlüssel und gleicher Rumpf liefern dieselbe Antwort, ein anderer Rumpf ergibt 409 idempotency_conflict. Ohne Schlüssel legt ein wiederholter POST ein neues Event an.