Social0|Docs
API

API Reference

Complete reference for all Social0 REST API endpoints.

Base URL

https://api.social0.app/v1

Authentication

All endpoints require:

Authorization: Bearer sk_live_YOUR_KEY

Response conventions

  • JSON field names use snake_case
  • Every response includes x-request-id
  • Errors: { "error": { "code", "message" } }

Endpoints

SectionDescription
AccountsList, connect, and disconnect social accounts
PostsCreate, publish, schedule, and manage posts
JobsPoll or stream publish job progress
MediaUpload images and video
WebhooksManage webhook subscriptions

Copy-paste examples

cURL — list posts

curl "https://api.social0.app/v1/posts?status=draft&limit=10" \
  -H "Authorization: Bearer sk_live_YOUR_KEY"

cURL — schedule (UTC)

curl -X POST https://api.social0.app/v1/posts/schedule \
  -H "Authorization: Bearer sk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Monday motivation",
    "platforms": ["ACCOUNT_UUID"],
    "scheduledAt": "2026-07-14T09:00:00.000Z"
  }'

cURL — schedule (explicit offset)

curl -X POST https://api.social0.app/v1/posts/schedule \
  -H "Authorization: Bearer sk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Monday motivation",
    "platforms": ["ACCOUNT_UUID"],
    "scheduledAt": "2026-07-14T14:30:00+05:30"
  }'

Python — full publish flow

import os, time, uuid, requests

API = "https://api.social0.app"
KEY = os.environ["SOCIAL0_API_KEY"]
HEADERS = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}

r = requests.post(
    f"{API}/v1/posts/publish",
    headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
    json={"content": "Hello API", "platforms": ["YOUR_ACCOUNT_UUID"]},
    timeout=30,
)
r.raise_for_status()
tracking_id = r.json()["tracking_id"]

while True:
    job = requests.get(f"{API}/v1/jobs/{tracking_id}", headers=HEADERS, timeout=30).json()
    if job["status"] in ("completed", "failed"):
        print(job)
        break
    time.sleep(2)

JavaScript (Node 18+) — create draft then publish

const headers = {
  Authorization: `Bearer ${process.env.SOCIAL0_API_KEY}`,
  "Content-Type": "application/json",
};

const draft = await fetch("https://api.social0.app/v1/posts", {
  method: "POST",
  headers,
  body: JSON.stringify({
    content: "Draft via API",
    platforms: [process.env.SOCIAL0_ACCOUNT_ID],
  }),
}).then((r) => r.json());

const pub = await fetch(`https://api.social0.app/v1/posts/${draft.id}/publish`, {
  method: "POST",
  headers: { ...headers, "Idempotency-Key": crypto.randomUUID() },
}).then((r) => r.json());

console.log(pub.tracking_id);

On this page