Эндпоинт
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) — и повтор после тайм-аута вернёт первый пост, а не опубликует его второй раз.