Reference
Errors
Status codes and error bodies.
The API uses standard HTTP status codes, and every error body is JSON with a message.
Status codes
| Status | Meaning |
|---|---|
200 / 201 | Success. Creating a post or media returns 201; repeating a create-post request with the same Idempotency-Key returns 200. |
401 | Missing, malformed or revoked API key: {"message": "Unauthenticated."} |
404 | Not found, or it belongs to another workspace: {"message": "Not found."} |
409 | A data tool’s account lost access (code reconnect_required). |
422 | Validation failed, or a platform rejected a data tool request (code rejected). Nothing was created. |
429 | Too many requests. Wait for Retry-After seconds. |
503 | A data tool’s platform is busy or unreachable (code temporarily_unavailable). Retry later. |
500 | Something went wrong on our side: {"message": "Server Error"}. Retry with the same Idempotency-Key. |
Validation errors
A 422 lists every problem at once in errors, keyed by field. Post content problems are keyed by account position, like accounts.0, and say which account and platform they’re about.
{
"message": "The accounts field is required.",
"errors": {
"accounts": [
"The accounts field is required."
]
}
}
Platform errors
Errors from the platforms themselves don’t fail your request when you post: the post is accepted, and each account’s target records what happened. A target that couldn’t be published ends as failed, with a readable error. Watch for it with GET /api/v1/posts/{id} or the post.failed and post.partially_published webhooks.
Data tools are the exception: they run straight away, so platform problems come back on the request itself, with a code. See Account tools.