Errors
post.buzz uses standard HTTP status codes and a consistent JSON error shape.
Every error response includes an error message; validation errors also
include a details array.
Error shape
{
"error": "Invalid request",
"details": [
{
"code": "invalid_type",
"expected": "array",
"received": "undefined",
"path": ["accountIds"],
"message": "Required"
}
]
}
Non-validation errors omit details:
{ "error": "Post not found" }
Status codes
| Status | Meaning | When |
|---|---|---|
200 | OK | Successful GET, DELETE |
201 | Created | Successful POST /v1/posts |
400 | Bad Request | Invalid input (missing/invalid fields) or a platform-limit violation |
401 | Unauthorized | Missing, invalid, or expired API key |
403 | Forbidden | Referenced accountIds or mediaIds not owned by you |
404 | Not Found | Resource doesn't exist or isn't owned by you |
500 | Server Error | Unexpected failure (post creation failed, etc.) |
Common errors
Authentication
| Status | error |
|---|---|
401 | Missing API key |
401 | Invalid API key |
401 | API key expired |
Posts
| Status | error |
|---|---|
400 | Invalid request (+ details) |
400 | (platform-limit message, e.g. "Instagram carousel allows 1–10 files") |
400 | Cannot delete published post |
403 | (ownership failure on accountIds/mediaIds) |
404 | Post not found |
System
| Status | error |
|---|---|
503 | Database not available / Auth not initialized |
Handling errors
- On
401, check that your API key is present, active, and unexpired. - On
400withdetails, thepathtells you exactly which field failed. - On
400withoutdetailsbut with a platform-limit message, adjust the offending media or text and retry. See Limits. - On
403, the account or media IDs you referenced don't belong to the authenticated user — verify them withGET /v1/accounts. - On
5xx, the failure is on our side; retry with backoff. These are rare.