L’endpoint
https://api.amator.app/api/v1/public/postsEnvoyez un corps JSON et la clé dans l’en-tête X-API-KEY (pas Authorization: Bearer).
Les noms de champs sont en camelCase, dans les requêtes comme dans les réponses : clubId, createdAt. Un nom avec un tiret bas, comme club_id, est refusé avec 400 PUBLIC_API_SNAKE_CASE_FIELD, et la réponse indique le champ à envoyer à la place.
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"}'
Une publication réussie renvoie 201 avec son lien :
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": "…"
}
Photos
Pour publier des photos, envoyez les mêmes champs en multipart/form-data au lieu de JSON et ajoutez jusqu’à 4 fichiers dans photos — ils apparaissent dans l’ordre d’envoi. Texte seul, photos seules ou les deux : content peut être omis dès qu’au moins une photo est envoyée.
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
Limites : 40 photos par jour et par clé d’API ; la requête entière, au plus 4 photos et le texte. C’est tout ou rien : si quelque chose échoue, aucune photo n’est conservée et rien n’est publié. Envoyez un en-tête Idempotency-Key (un UUID) : une nouvelle tentative après un délai dépassé renvoie la première publication au lieu de la publier deux fois.