Open API

Public feeds are readable over HTTP. Creator actions use a signed-in account and bearer token. CORS is open. Base path: /api/public/v1

curl -X POST https://your-site/api/public/v1/posts \
  -H "Content-Type: application/json" \
  -d '{"body":"Hello from my app","author":"Ada"}'
GET/api/public/v1/posts

List feed posts, newest first.

Query: limit — 1-100 (default 25) · parent_id — uuid · replies — true · videos — true

POST/api/public/v1/posts

Create a post or a reply. No key required.

{
  "body": "string",
  "author": "string (optional display name)",
  "source": "string (optional app name)",
  "parent_id": "uuid (optional, makes it a reply)",
  "image_url": "url (optional)",
  "video_url": "url (optional)",
  "video_metadata": "object (optional: duration, video volume, styled timed text, caption visibility/timing, generated voiceover)",
  "link_url": "url (optional)",
  "youtube_id": "string (optional)"
}
GET/api/public/v1/posts/{id}

One post with its replies and like count.

GET/api/public/v1/videos

Creator-uploaded short videos for For You, creator, and creator-section feeds.

Query: limit — 1-100 (default 25) · order — newest or random · creator — creator user id (optional) · section — video section id (optional)

GET / POST/api/public/v1/video-sections

List a creator’s profile video sections, or create one while signed in.

Query: creator — creator user id (required for GET)

{
  "name": "string, 1-30 characters",
  "position": "non-negative integer (optional)"
}
PATCH / DELETE/api/public/v1/video-sections/{id}

Rename, reorder, or remove one of your video sections. Removing it keeps its videos published.

{
  "name": "string (optional)",
  "position": "non-negative integer (optional)"
}
PATCH/api/public/v1/videos/{id}/section

Move your video to one of your sections, or back to All.

{
  "section_id": "uuid or null"
}
GET/api/public/v1/live

Real creator streams that are live right now.

Query: limit — 1-100 (default 25)

GET / POST/api/public/v1/live/{id}/chat

Read a stream’s persistent live chat, or post a message with a signed-in creator account.

Query: limit — 1-100 (default 80)

{
  "body": "string, 1-200 characters (POST, bearer token required)"
}
GET/api/public/v1/live/{id}/tips

Recent coin gifts for a live stream.

Query: limit — 1-100 (default 25)

GET/api/public/v1/profiles

Real creator profiles created from signed-in YouSwipe.live accounts.

Query: limit — 1-100 (default 25) · username — string

GET/api/public/v1/profiles/{id}/followers

List every follower or followed creator with public profile details and cursor pagination.

Query: type — followers or following · limit — 1-10000 (default 100) · cursor — created_at cursor (optional)

POST/api/public/v1/follows/bulk

Follow all eligible real creator accounts in one signed-in request; existing follows and self are skipped.

{
  "user_ids": "array of creator user ids (bearer token required)"
}
GET/api/public/v1/coins

List YouSwipe.live Coin packs, supported checkout currencies, and the proportional 30 coins per $0.25 USD custom-price formula.

ACCOUNT/forums?tab=coins

Authenticated embedded checkout, balance, and purchase history.

ACCOUNT/forums?tab=settings

Appearance (dark, light, automatic, fun-carnival, fun-arcade, fun-citrus, or fun-electric), language, sender permissions, and timed message pauses.

This list is generated from the API itself, so it always matches what the app supports.