Social0|Docs
API

Quickstart — Social0 API

Create an API key and publish your first post in 5 minutes.

Before you start

ItemValue
Base URLhttps://api.social0.app
API version/v1
Auth headerAuthorization: Bearer sk_live_…
Content-Typeapplication/json (except media upload to presigned URL)
Key prefixsk_live_ (legacy s0_live_ still accepted)
Interactive docsapi.social0.app/docs
OpenAPI specapi.social0.app/openapi.json
Dashboard: Developersocial0.app/dashboard/api-keys

Step 1 — Connect an account (dashboard)

Open Connections and connect LinkedIn (or another platform). You need at least one connected account before publishing.

Copy the account UUID from the API response in Step 3, or from your dashboard.

Step 2 — Create an API key

Go to DeveloperAPI KeysCreate key → copy sk_live_… (shown once).

Store the key in an environment variable or secrets manager — never commit it to git.

Step 3 — List accounts

curl -s https://api.social0.app/v1/accounts \
  -H "Authorization: Bearer sk_live_YOUR_KEY" | jq

Note the id field for each account — you will use these UUIDs in the platforms array (not platform names like "linkedin").

Step 4 — Publish a post

curl -s -X POST https://api.social0.app/v1/posts/publish \
  -H "Authorization: Bearer sk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "content": "Hello from the Social0 API!",
    "platforms": ["YOUR_CONNECTED_ACCOUNT_UUID"]
  }' | jq

Response (202):

{
  "post_id": "uuid",
  "tracking_id": "uuid",
  "status": "queued",
  "stream_url": "/v1/jobs/{tracking_id}/stream"
}

status: "queued" on the 202 response means the publish job was accepted and is running asynchronously — not that the post is live yet. Poll GET /v1/jobs/:trackingId (or use the stream URL) until status is completed or failed.

Step 5 — Poll job status

curl -s https://api.social0.app/v1/jobs/TRACKING_ID \
  -H "Authorization: Bearer sk_live_YOUR_KEY" | jq

When status is completed, your post is live (or partial if some platforms succeeded). When status is failed, check platform_statuses for per-platform errors.

Next steps

On this page