# Antworten und Fehler

Was Samy auf einen Aufruf antwortet und was die Fehlercodes bedeuten.

Alle Antworten von `POST /v1/push` sind JSON.

## Übersicht

| Status | `error` | Bedeutung | Was tun |
|---|---|---|---|
| 200 | | Gespeichert. Antwort: `{"message_id": "…"}` | |
| 400 | `invalid_body` | Ungültige Daten. | `details` lesen und den Body korrigieren. Nicht wiederholen. |
| 401 | `missing_key` | Der Header `Authorization` fehlt. | Header `Authorization: Bearer <SAMY_KEY>` setzen. |
| 401 | `invalid_key` | Schlüssel falsch, neu erzeugt oder Packlet entfernt. | Aktuellen Schlüssel aus der App eintragen. |
| 429 | `rate_limited` | Zu viele Aufrufe. | Kurz warten und erneut senden. |

## Aufbau eines Fehlers

```json
{
  "error": "invalid_body",
  "message": "Ungültige Daten.",
  "details": [{ "path": "text", "message": "text darf nicht leer sein" }]
}
```

- `error` ist eine feste Kennung, auf die dein Code prüfen kann.
- `message` ist ein lesbarer Satz auf Deutsch.
- `details` gibt es nur bei `invalid_body`. Jeder Eintrag nennt das Feld (`path`) und den Grund.

## Rate-Limit

Erlaubt sind 60 Aufrufe pro Minute und Schlüssel. Das Limit ist reiner Missbrauchsschutz.

## Protokoll

In den Einstellungen jedes Packlets zeigt die App die letzten Aufrufe mit Status, auch die Webhook-Aufrufe an dein Tool. Dort siehst du zuerst nach, wenn etwas nicht ankommt.
