amator.app
Publiczne API + n8n

Endpoint

POSThttps://api.amator.app/api/v1/public/posts

Wyślij body w formacie JSON, a klucz podaj w nagłówku X-API-KEY (nie Authorization: Bearer).

Nazwy pól są w camelCase, w zapytaniach i odpowiedziach: clubId, createdAt. Nazwa z podkreśleniem, np. club_id, jest odrzucana z kodem 400 PUBLIC_API_SNAKE_CASE_FIELD, a odpowiedź podaje, jakiego pola użyć zamiast niej.

contentstring
treść posta, od 1 do 2000 znaków. Wymagane.
clubIduuid | null
klub, w imieniu którego publikujesz. Opcjonalne — bez niego post trafia na Twój profil.
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"}'

Po udanej publikacji dostajesz 201 i link do posta:

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": "…"
}

Zdjęcia

Aby opublikować zdjęcia, wyślij te same pola jako multipart/form-data zamiast JSON i dodaj do 4 plików w polu photos — pojawią się w kolejności, w jakiej je wysłano. Sam tekst, same zdjęcia albo jedno i drugie: content można pominąć, gdy wysyłasz co najmniej jedno zdjęcie.

photosplik, do 4
JPEG, PNG lub WebP, do 5 MB każde. Bez wideo.
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

Limity: 40 zdjęć dziennie na klucz API; całe zapytanie to najwyżej 4 zdjęcia i tekst. Wszystko albo nic — jeśli coś się nie powiedzie, żadne zdjęcie nie zostaje zapisane i nic nie jest publikowane. Wyślij nagłówek Idempotency-Key (UUID), a ponowienie po przekroczeniu czasu zwróci pierwszy post zamiast publikować go drugi raz.

Inne odpowiedzi

  • 400FEED_POST_EMPTY

    Treść posta jest pusta albo za długa.

  • 400PUBLIC_API_SNAKE_CASE_FIELD

    Nazwa pola z podkreśleniem, np. club_id — details.fields podaje nazwę w camelCase, którą należy wysłać (clubId).

  • 401PUBLIC_API_KEY_INVALID

    Brak klucza albo klucz jest nieznany lub unieważniony.

  • 403FEED_NOT_A_CAPTAIN

    Nie jesteś właścicielem ani administratorem tego klubu.

  • 404FEED_TEAM_NOT_FOUND

    Nie ma klubu o takim clubId.

  • 429PUBLIC_API_RATE_LIMITED

    W tym miejscu był już post w tej godzinie.

  • 429FEED_DAILY_LIMIT_REACHED

    Wyczerpano dzienny limit 40 postów w feedzie.

  • 400PUBLIC_API_TOO_MANY_PHOTOS

    Więcej niż 4 zdjęcia w jednym poście.

  • 400IMAGE_INVALID_FILE_TYPE

    Zdjęcie nie jest w formacie JPEG, PNG ani WebP — to na przykład wideo.

  • 400IMAGE_FILE_TOO_LARGE

    Zdjęcie ma ponad 5 MB.

  • 400PUBLIC_API_MULTIPART_INVALID

    Nie da się odczytać formularza — plik poza photos albo pole wysłane dwa razy.

  • 413PUBLIC_API_BODY_TOO_LARGE

    Zapytanie jest większe niż 4 zdjęcia i tekst.

  • 429PUBLIC_API_PHOTO_DAILY_LIMIT

    Ten klucz API opublikował już 40 zdjęć w ciągu ostatnich 24 godzin.