DocsReference

Posts

A post is a single video with a caption, targeted at one or more platforms. Every platform attempt lives in a platformResults subdocument so you can see per-platform outcomes independently.

Create a post

POST /v1/posts

curl https://api.letspost.app/v1/posts \
  -H "Authorization: Bearer $SOCIALHUB_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "profileId": "prof_abc",
    "title": "Launch day",
    "description": "Our biggest drop yet.",
    "mediaUrl": "uploads/u_1/xyz/xyz.mp4",
    "platforms": ["tiktok","instagram","youtube"]
  }'

Fields

  • profileIdrequired.
  • title, descriptionrequired. 200 / 5000 chars.
  • mediaUrlFirebase Storage path under uploads/<uid>/…, or the value returned by /media/presign-upload.
  • platformsnon-empty subset of tiktok, instagram, youtube, facebook.
  • scheduledAtoptional ISO-8601. Omit for immediate publish.

Schedule a post

curl https://api.letspost.app/v1/posts \
  -H "Authorization: Bearer $SOCIALHUB_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "profileId": "prof_abc",
    "title": "Scheduled drop",
    "description": "",
    "mediaUrl": "uploads/u_1/xyz/xyz.mp4",
    "platforms": ["youtube"],
    "scheduledAt": "2026-05-01T14:00:00.000Z"
  }'

Get, list & update

GET /v1/posts/{id}, GET /v1/posts?profileId=…, PATCH /v1/posts/{id} (only while status is draft or scheduled).

Delete a post (cascade)

curl -X DELETE https://api.letspost.app/v1/posts/pst_123 \
  -H "Authorization: Bearer $SOCIALHUB_KEY"

DELETE removes the local record, deletes the uploaded video from storage, and cascades to the platforms:

  • YouTubevideo is deleted via the Data API.
  • Instagram / Facebookmedia is deleted via the Graph API.
  • TikToknot supported. The Content Posting API has no delete endpoint; you must remove the video from the TikTok app.

The response includes a platformErrors array describing any per-platform failure. The local post is still removed even if a cascade fails.

Status lifecycle

draft → queued → publishing → published | partial | failed

partial means at least one platform succeeded and at least one failed. Failed platforms retry up to three times via Cloud Tasks before being marked terminal. Subscribe to webhooks to react to these transitions.

Was this page helpful?

Something unclear? Email us — we read every message.