Skip to main content
Version: Latest

Mobile Integration Guides

API integration guides for the Clustr React Native app. Every guide documents the exact endpoints, request/response shapes, and Socket.IO events the backend exposes.

Start with Auth Integration — all other guides assume authenticated requests with the X-Client-Type: mobile header.

Any screen that uploads photos or files uses one shared flow — see Media Upload for the allowed types, size caps, and the presign → PUT → reference contract. The feature guides only add their own attach/send step.

Any screen with a text input can be rejected by the server's blocked-word filter — one 422 shape, one handler, described in Content Moderation.

Any request at all can come back 429. Every one names the cap it hit (code: "RATE_LIMITED", plus limit and retryAfter) — one handler covers the lot, and Rate Limits lists every cap and what to show for each.

Any request at all can also just fail, or take eight seconds because the server was asleep. Request Reliability is the one retry policy for the whole app: what's worth retrying, the backoff numbers, the per-attempt timeout, and — the part that bites — which endpoints are safe to repeat and which quietly create a duplicate when you retry a timeout. Build it once in your HTTP client before you build screens.

The home screen renders the personalized Feed — a scored, cursor-paginated blend of follows, interests, and trending, where liked/commented posts drop out and seen posts rotate down automatically.

The search screen is one call — Search — returning people, matching posts and topic-tagged posts in a single response, each section paged on its own cursor.

The six policy pages — About, Help centre, Safety centre, Community guidelines, Terms of use, Privacy policy — are one screen, not six. The API serves them as versioned markdown (Policies); build one renderer and never ship the copy in the bundle.

Checking what changed: every guide carries a What's new section at the top — the last five changes to that guide, in plain language, written when the change was made. Recent Updates collects the newest line from each. Read those before the diff; the diff banner on each page is there for when you need the exact wording that moved.

Pick a guide from the sidebar.

⤓ Download .md