Skip to content
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.it/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.it/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.it/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","threads"]
  }'

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.it/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.