Skip to main content
Version: Latest

Support (Contact us) — Mobile Integration Guide

Settings → Contact us. The user picks a topic, writes a message, and can add up to 3 photos. One endpoint.

What's new​

  • 2026-10-29 — First version. POST /api/support/tickets is new. Build the Contact us screen on it.

1. Topics​

The topics are not served by the API. Hardcode the four slugs and their labels in the app. The API rejects any other slug with 400.

topicLabel in the appDescription line
BUGSomething isn't workingFor app bugs, broken features or unexpected behaviour
ACCOUNT_HELPAccount or login helpFor account access, verification or account information issue
FEEDBACKFeedback or suggestionShare an idea or tell us how Clustr could be better
OTHERSomething elseFor anything that doesn't fit the above options

Labels are yours. The server never sends display text.

2. Send a ticket​

POST /api/support/tickets — needs the usual Authorization header.

{
"topic": "BUG",
"message": "The feed does not load after I log in.",
"attachments": [
{ "type": "image", "url": "<publicUrl from presign>", "width": 1170, "height": 2532, "size": 245000 }
],
"appVersion": "1.4.0",
"platform": "IOS",
"osVersion": "18.1"
}
FieldRule
topicRequired. One of the four slugs.
messageRequired. 10–2000 characters after trim.
attachmentsOptional. Max 3. Images only. Same item shape as a post's media.
appVersionOptional. Up to 40 characters. Send it for BUG.
platformOptional. IOS or ANDROID.
osVersionOptional. Up to 40 characters.

Response 201:

{ "success": true, "data": { "id": "…", "createdAt": "2026-10-29T10:00:00.000Z" } }

3. Photos​

  1. Upload each photo with POST /api/media/presign, then PUT to the signed URL. See the media upload guide.
  2. Put the resulting publicUrl in attachments[].url.
  3. Do not call /api/media/attach. The ticket request attaches them.

4. Errors​

StatusCode / meaningWhat to do
400Bad topic, short or long message, more than 3 photosFix the form. Validate the same limits in the app first.
415A file is not a real imageAsk for a different photo.
422MEDIA_BLOCKEDA photo failed the check. Ask for a different one.
503MEDIA_CHECK_UNAVAILABLENot the user's fault. Let them retry.
429Rate limit: 5 tickets per hourShow "Try again later".

5. After sending​

Show a "Thanks, we got your message" screen. There is no ticket list and no reply in the app. Support answers by email, to the address on the user's account.

⤓ Download .md