DocsReference

Quickstart

Publish your first post via the API in five minutes.

1. Create an API key

Sign in to the dashboard and click Create key. Copy the lp_live_… value — it is shown only once.

export LETSPOST_KEY="lp_live_xxx"

2. Pick a profile

Every post belongs to a profile. List yours:

curl https://api.letspost.app/v1/profiles \
  -H "Authorization: Bearer $LETSPOST_KEY"

3. Upload your video

Ask the API for a 15-minute signed URL and PUT the file directly to Firebase Storage. Full details in the media uploads guide.

# 1. Ask for a signed upload URL
RES=$(curl -s https://api.letspost.app/v1/media/presign-upload \
  -H "Authorization: Bearer $LETSPOST_KEY" \
  -H "Content-Type: application/json" \
  -d '{"fileName":"clip.mp4","contentType":"video/mp4"}')

UPLOAD_URL=$(echo "$RES" | jq -r .uploadUrl)
STORAGE_PATH=$(echo "$RES" | jq -r .storagePath)

# 2. PUT the file
curl -X PUT "$UPLOAD_URL" -H "Content-Type: video/mp4" --data-binary @clip.mp4

4. Create the post

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

5. Track status

Poll GET /posts/{id} or subscribe to webhooks. The top-level status moves through:

draft → queued → publishing → published | partial | failed
curl https://api.letspost.app/v1/posts/$POST_ID \
  -H "Authorization: Bearer $LETSPOST_KEY"

Next steps

  • Posts reference — scheduling, updates, deletion.
  • Webhooks — push notifications instead of polling.
  • Errors — status codes and partial-publish semantics.
Was this page helpful?

Something unclear? Email us — we read every message.