amator.app
Public API + n8n

The endpoint

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

Send a JSON body and put the key in the X-API-KEY header (not Authorization: Bearer).

Field names are camelCase, in requests and responses: clubId, createdAt. A name with an underscore, such as club_id, is refused with 400 PUBLIC_API_SNAKE_CASE_FIELD, and the response names the field to send instead.

contentstring
the post text, 1–2000 characters. Required.
clubIduuid | null
the club to post as. Optional — without it the post goes to your personal feed.
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"}'

A successful post returns 201 with a link to it:

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

To publish photos, send the same fields as multipart/form-data instead of JSON and add up to 4 files in photos — they appear in the order you send them. Text only, photos only or both: content may be left out when at least one photo is sent.

photosfile, up to 4
JPEG, PNG or WebP, up to 5 MB each. No video.
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

Limits: 40 photos a day per API key; the whole request at most 4 photos and the text. It is all or nothing — if anything fails, no photo is kept and nothing is published. Send an Idempotency-Key header (a UUID) and a retry after a timeout returns the first post instead of publishing it twice.

Other responses

  • 400FEED_POST_EMPTY

    The post text is empty or too long.

  • 400PUBLIC_API_SNAKE_CASE_FIELD

    A field name with an underscore, such as club_id — details.fields names the camelCase one to send (clubId).

  • 401PUBLIC_API_KEY_INVALID

    The key is missing, unknown or revoked.

  • 403FEED_NOT_A_CAPTAIN

    You are not the owner or an admin of that club.

  • 404FEED_TEAM_NOT_FOUND

    There is no club with that clubId.

  • 429PUBLIC_API_RATE_LIMITED

    That destination already had a post this hour.

  • 429FEED_DAILY_LIMIT_REACHED

    The feed’s own limit of 40 posts a day has been reached.

  • 400PUBLIC_API_TOO_MANY_PHOTOS

    More than 4 photos in one post.

  • 400IMAGE_INVALID_FILE_TYPE

    A photo is not JPEG, PNG or WebP — a video, for example.

  • 400IMAGE_FILE_TOO_LARGE

    A photo is over 5 MB.

  • 400PUBLIC_API_MULTIPART_INVALID

    The form cannot be read — a file outside photos, or a field sent twice.

  • 413PUBLIC_API_BODY_TOO_LARGE

    The request is bigger than 4 photos and the text.

  • 429PUBLIC_API_PHOTO_DAILY_LIMIT

    This API key has published its 40 photos of the last 24 hours.