Errors
Error response format and common error codes
All API errors follow a consistent JSON format.
{
"error": "Human-readable error message",
"details": {}
}
The details field is optional and included for validation errors.
| Status | Meaning |
|---|
400 | Bad Request — invalid input or validation failure |
401 | Unauthorized — missing or invalid API key |
403 | Forbidden — valid key but insufficient permissions or plan |
404 | Not Found — resource doesn't exist or isn't owned by your org |
409 | Conflict — resource already exists (e.g. video on post) |
413 | Payload Too Large — video exceeds 4GB |
429 | Too Many Requests — rate limit or plan limit exceeded |
500 | Internal Server Error — unexpected failure |
| Error | Cause |
|---|
"Unauthorized" | Missing Authorization header or invalid API key |
"API key expired" | The API key has passed its expiration date |
"API key revoked" | The API key was revoked in settings |
| Error | Cause |
|---|
"Invalid request" | Request body failed schema validation. Check details for field-level errors |
| Error | Cause |
|---|
"Rate limit exceeded" | Too many requests in the current window |
"Plan limit reached" | Monthly usage limit for posts or other resources |
| Error | Cause |
|---|
"Post not found" | Post doesn't exist or belongs to a different org |
"Only draft and archived posts can be deleted" | Cannot delete scheduled/publishing/posted posts |
"Failed to create post" | Server error during post creation |
"Failed to update post" | Server error during post update |
"Failed to delete post" | Server error during post deletion |
| Error | Cause |
|---|
"Video already exists" | Video post already has a video; use replace: true to replace |
"Payload too large" | Video file exceeds 4GB limit |