El endpoint
https://api.amator.app/api/v1/public/postsEnvía un cuerpo JSON y la clave en la cabecera X-API-KEY (no Authorization: Bearer).
Los nombres de los campos van en camelCase, en las peticiones y en las respuestas: clubId, createdAt. Un nombre con guion bajo, como club_id, se rechaza con 400 PUBLIC_API_SNAKE_CASE_FIELD, y la respuesta indica el campo que debes enviar en su lugar.
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"}'
Una publicación correcta devuelve 201 con su enlace:
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
Para publicar fotos, envía los mismos campos como multipart/form-data en lugar de JSON y añade hasta 4 archivos en photos: aparecen en el orden en que los envías. Solo texto, solo fotos o ambos: puedes omitir content si envías al menos una foto.
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
Límites: 40 fotos al día por clave de API; la petición entera, como máximo 4 fotos y el texto. Es todo o nada: si algo falla, no se guarda ninguna foto y no se publica nada. Envía una cabecera Idempotency-Key (un UUID) y un reintento tras un tiempo de espera devolverá la primera publicación en lugar de publicarla dos veces.