Ендпоінт
https://api.amator.app/api/v1/public/postsНадішліть тіло запиту в JSON, а ключ передайте в заголовку X-API-KEY (не Authorization: Bearer).
Назви полів — у camelCase, у запитах і відповідях: clubId, createdAt. Назву з підкресленням, як-от club_id, буде відхилено з кодом 400 PUBLIC_API_SNAKE_CASE_FIELD, а відповідь назве поле, яке треба надіслати натомість.
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"}'
Успішна публікація повертає 201 і посилання на пост:
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": "…"
}
Фото
Щоб опублікувати фото, надішліть ті самі поля як multipart/form-data замість JSON і додайте до 4 файлів у полі photos — вони з’являться в тому порядку, в якому ви їх надіслали. Лише текст, лише фото або все разом: content можна не передавати, якщо надіслано хоча б одне фото.
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
Обмеження: 40 фото на добу на один API-ключ; увесь запит — щонайбільше 4 фото і текст. Усе або нічого: якщо щось не вдалося, жодне фото не зберігається і нічого не публікується. Надішліть заголовок Idempotency-Key (UUID) — і повтор після тайм-ауту поверне перший пост замість того, щоб опублікувати його вдруге.