Quickstart

Get from zero to a scheduled post in four steps. You'll need an active PostAxis subscription and at least one connected social account.

1. Create an API key

In the app, open Settings → API keys, create a key, and copy it once. Keys start with px_live_.

2. List accounts

Call GET /v1/social-accounts and keep the account id values you want to publish to.

3. Upload media (optional)

For images or video, request an upload URL, then PUT the file bytes. Use the returned media_id in the next step.

4. Create the post

Send caption, media paths, account IDs, and either schedule with scheduled_at, publish now, or save a draft.

bash·End-to-end example
# 1. List connected accounts
curl -X GET "https://YOUR_PROJECT.supabase.co/functions/v1/public-api/v1/social-accounts" \
  -H "Authorization: Bearer px_live_YOUR_KEY"

# 2. Create a signed upload URL
curl -X POST "https://YOUR_PROJECT.supabase.co/functions/v1/public-api/v1/media/create-upload-url" \
  -H "Authorization: Bearer px_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mime_type":"image/png","size_bytes":12345,"name":"slide.png"}'

# 3. Upload the file (use upload_url from step 2)
# curl -X PUT "UPLOAD_URL" -H "Content-Type: image/png" --data-binary @slide.png

# 4. Schedule a post
curl -X POST "https://YOUR_PROJECT.supabase.co/functions/v1/public-api/v1/posts" \
  -H "Authorization: Bearer px_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"caption":"Hello from PostAxis","media":["USER_ID/api/….png"],"social_accounts":["ACCOUNT_UUID"],"scheduled_at":"2026-06-22T14:00:00Z","is_draft":false}'