API Reference
Errors
Error shape and status codes
Every error response in the OpenPost API uses a simple JSON shape with the failing HTTP status code. Status codes follow standard HTTP semantics.
Error shape
json
{ "error": "content is required" }
| Field | Type | Description |
|---|---|---|
| error | string | Human-readable failure message. Safe to log; not intended for direct display to end users. |
Status codes
| Field | Type | Description |
|---|---|---|
| 400 | bad request | Malformed request — missing required field, invalid value, or failed validation (e.g. schedule_at more than 180 days in the future, editing a published post). |
| 401 | unauthorized | Missing or invalid API key. |
| 404 | not found | No resource with that ID in this workspace. |
| 413 | payload too large | Upload exceeds the 1 GB video or 30 MB image cap. |
| 415 | unsupported media type | Content type is not accepted by any platform. |
| 429 | rate limited | Too many requests. Back off and retry. |
| 500 | server error | Unexpected server failure. Retry with backoff. |
Retry policy
| Field | Type | Description |
|---|---|---|
| 4xx (except 429) | do not retry | The request is wrong. Fix it before retrying. |
| 429 | retry | Back off with jitter before retrying. |
| 5xx | retry with backoff | Exponential backoff + jitter. A few attempts over a minute or two is usually enough. |
| Network / timeout | retry carefully | If the request was a write (POST/PATCH/DELETE), first GET the resource to check whether the write succeeded before retrying. |
Never retry a 4xx mutation without fixing the request. The server will return the same error, and your backoff loop is just burning budget.
Getting help
If you hit an error you can’t explain, email contact@infina.so with the full request URL, body (minus secrets), and the response.
Last updated April 2026 Edit this page