Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.social-api.ai/llms.txt

Use this file to discover all available pages before exploring further.

Base URL

https://api.social-api.ai/v1

Authentication

All endpoints require a Bearer token. The API accepts three token types:
Token typeFormatUse case
API keysapi_key_...External API clients
Auth service JWTEdDSA signed JWTDashboard frontend
OAuth 2.1 access tokenEdDSA signed JWTMCP / AI assistant clients
Authorization: Bearer sapi_key_your_key_here
See the Authentication guide for how to create and manage keys.

Request format

  • All request bodies must be JSON with Content-Type: application/json
  • All timestamps are RFC 3339 (e.g. 2026-02-15T14:30:00Z)
  • Paginated endpoints accept limit (1-100, default 25), cursor, and filtering parameters

Response format

All successful responses are JSON. All errors use:
{
  "error": "human-readable message",
  "code": "machine_readable_code"
}
HTTP statusMeaning
400Invalid request parameters
401Invalid or missing API key
403Feature not available on your plan
404Account or resource not found
409Account already linked
413Storage quota exceeded
429Monthly resource limit exceeded
501Platform does not support this operation

Endpoint groups

GroupEndpointsDescription
AccountsGET /accounts, POST /accounts/connect, POST /oauth/exchange, DELETE /accounts/:idConnect, list, and disconnect social accounts
Inbox - CommentsGET /inbox/comments, GET /inbox/comments/:postId, POST /inbox/comments/:postId, DELETE /inbox/comments/:postId/:commentId, POST .../hide, DELETE .../hide, POST .../like, DELETE .../like, POST .../private-replyList commented posts, read and reply to comments, moderate (hide, like, delete, private reply)
Inbox - ConversationsGET /inbox/conversations, GET /inbox/conversations/:id, PATCH /inbox/conversations/:id, GET .../messages, POST .../messages, POST .../readList conversations, read and send DMs, mark as read
Inbox - ReviewsGET /inbox/reviews, POST /inbox/reviews/:id/reply, PUT /inbox/reviews/:id/reply, DELETE /inbox/reviews/:id/replyRead reviews, reply, update, and delete replies
MentionsGET /accounts/:id/mentionsRead mentions
PublishingPOST /posts, GET /posts, GET /posts/:pid, PATCH /posts/:pid, DELETE /posts/:pid, POST /posts/:pid/retry, POST /posts/:pid/unpublish, GET /posts/:pid/metrics, GET /posts/:pid/logs, GET /posts/logs, POST /posts/import, GET /posts/validate, POST /posts/validateCreate, schedule, update, delete, retry, and monitor posts
Media LibraryGET /media, DELETE /media/:id, GET /media/storage, GET /media/upload-url, POST /media/upload, POST /media/:id/verifyUpload, list, delete media files and check storage
UsageGET /usage, GET /accounts/:id/limitsCheck resource usage and platform limits
API KeysGET /keys, POST /keys, DELETE /keys/:idManage API keys
WebhooksGET /webhooks, POST /webhooks, PATCH /webhooks/:id, DELETE /webhooks/:idManage outbound webhook endpoints
UsersGET /users/me, PATCH /users/me, DELETE /users/meUser profile
BillingPOST /billing/checkout, POST /billing/portal, GET /billing/checkout/statusStripe billing

Keeping the spec up to date

The API reference is generated from Go source annotations. To regenerate after changing the code:
# From core/
make docs

# Commit the updated spec (docs/ is a separate repo)
cd ../docs/
git add api-reference/openapi.json
git commit -m "docs: regenerate OpenAPI spec"
This runs swag init (generates Swagger 2.0) then swagger2openapi (converts to OpenAPI 3.0) and writes the result to docs/api-reference/openapi.json.

Inbox

Comments, DMs, and reviews across platforms.

Publishing

Create, schedule, and manage posts.

Webhooks

Get notified of events in real time.

Error Handling

All error codes and how to handle them.