Basis-URL: https://api.schraubertermin.de/v1

Fehlerbehandlung

Die API verwendet konventionelle HTTP-Statuscodes und gibt strukturierte JSON-Fehlerobjekte zurück.

Fehlerformat

Alle Fehlerantworten folgen einem einheitlichen Format mit einem error-Code und einer lesbaren message:

Fehler-Response400 Bad Request
{
  "error": "validation_error",
  "message": "Das Feld \"datum\" ist erforderlich.",
  "details": {
    "field": "datum",
    "code": "required"
  }
}

HTTP-Statuscodes

CodeStatusBeschreibung
200OKAnfrage erfolgreich
201CreatedRessource erfolgreich erstellt
204No ContentErfolgreich, keine Antwortdaten (z.B. DELETE)
400Bad RequestUngültige Parameter oder fehlende Pflichtfelder
401UnauthorizedFehlender oder ungültiger API-Key
403ForbiddenKein Zugriff auf diese Ressource (z.B. fremde Werkstatt)
404Not FoundRessource nicht gefunden
409ConflictKonflikt (z.B. doppelte Buchung, Zeitslot belegt)
422Unprocessable EntitySemantisch ungültige Daten
429Too Many RequestsRate Limit überschritten
500Internal Server ErrorServerfehler — bitte Support kontaktieren

Fehlercodes

Das Feld error enthält einen maschinenlesbaren Fehlercode:

Error CodeHTTPBeschreibung
validation_error400Ein oder mehrere Felder sind ungültig
unauthorized401API-Key fehlt, ist ungültig oder abgelaufen
forbidden403Kein Zugriff auf die angeforderte Ressource
not_found404Die angeforderte Ressource existiert nicht
conflict409Aktion nicht möglich aufgrund eines Konflikts
rate_limit_exceeded429Zu viele Anfragen pro Minute
internal_error500Interner Serverfehler

Beispiel: Fehlerbehandlung

# Fehler werden als JSON zurückgegeben:
"token-method">curl -s "token-keyword">-X GET "token-url">https://api.schraubertermin.de/v1/buchungen/ungueltige-id \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey' | jq .

Paginierung

Listen-Endpunkte unterstützen Paginierung über die Query-Parameter page und per_page.

Paginierte Antwort200 OK
{
  "data": [
    "..."
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 142,
    "total_pages": 6
  }
}