Der Endpoint
https://api.amator.app/api/v1/public/postsSende einen JSON-Body und den Schlüssel im Header X-API-KEY (nicht Authorization: Bearer).
Feldnamen sind camelCase, in Anfragen und Antworten: clubId, createdAt. Ein Name mit Unterstrich wie club_id wird mit 400 PUBLIC_API_SNAKE_CASE_FIELD abgelehnt, und die Antwort nennt das Feld, das du stattdessen senden musst.
curl -X POST https://api.amator.app/api/v1/public/posts \
-H "X-API-KEY: YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{"content":"Training moved to 19:00 tonight"}'
Ein erfolgreicher Beitrag liefert 201 und einen Link zum Beitrag:
HTTP/1.1 201 Created
{
"success": true,
"data": {
"id": "…",
"destination": "club",
"clubId": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-10-05T18:00:00.000Z",
"url": "https://amator.app/posts/…",
"media": []
},
"requestId": "…"
}
Fotos
Um Fotos zu veröffentlichen, sende dieselben Felder als multipart/form-data statt JSON und füge bis zu 4 Dateien im Feld photos hinzu – sie erscheinen in der Reihenfolge, in der du sie sendest. Nur Text, nur Fotos oder beides: content kannst du weglassen, wenn du mindestens ein Foto sendest.
curl -X POST https://api.amator.app/api/v1/public/posts \
-H "X-API-KEY: YOUR_API_KEY_HERE" \
-H "Idempotency-Key: 9b2f6d4e-1c3a-4f5b-8e7d-2a1c0b9f8e7d" \
-F content="Match day! Kick-off at 18:00" \
-F clubId=00000000-0000-0000-0000-000000000000 \
-F photos=@a.jpg \
-F photos=@b.jpg
Limits: 40 Fotos pro Tag und API-Schlüssel; die ganze Anfrage höchstens 4 Fotos und der Text. Alles oder nichts – schlägt etwas fehl, wird kein Foto gespeichert und nichts veröffentlicht. Sende einen Idempotency-Key-Header (eine UUID), dann liefert ein erneuter Versuch nach einem Timeout den ersten Beitrag zurück, statt ihn ein zweites Mal zu veröffentlichen.