Status codes
Responses from the API
Section titled “Responses from the API”| Status | Meaning | Where |
|---|---|---|
200 OK |
The request succeeded and the body is the object or list | Every GET, PATCH, POST .../publish, POST .../refresh, PUT /webhook, and POST /workspaces when the external_id already existed |
201 Created |
A new object was created; the body is the object | POST /workspaces (new), /keys, /connect-links, /media, /posts, /conversations/:id/messages, /private-reply, /embed-sessions |
204 No Content |
Done, empty body | Every DELETE |
302 Found |
Redirect to Meta’s consent screen | GET /connect/:token/meta/start, used by the hosted connect page only |
400 Bad Request |
validation_error or unsupported |
Any endpoint with a body or query |
401 Unauthorized |
unauthorized |
Any endpoint |
403 Forbidden |
forbidden |
Any endpoint |
404 Not Found |
not_found |
Any endpoint with an id in the path |
409 Conflict |
conflict or account_disconnected |
Posts, conversations, webhook |
429 Too Many Requests |
rate_limited, with Retry-After |
Any endpoint |
502 Bad Gateway |
network_error, with Meta’s error in details |
Anything that calls Meta synchronously: publish with wait, replies, stats, refresh, media by URL |
The error codes are described in Errors.
Responses the API expects from you
Section titled “Responses the API expects from you”Your webhook endpoint:
| You return | MissLess does |
|---|---|
Any 2xx |
Marks the delivery successful. Nothing else is read from the response |
| Anything else, a timeout, or a connection error | Schedules a retry on the retry schedule |
3xx |
Not followed. Counts as a failure; point url at the final address |
Return 200 with an empty body as soon as the signature verifies and the event is stored. Do the work afterwards.
The wait flag and long requests
Section titled “The wait flag and long requests”POST /v1/posts?wait=true and POST /v1/posts/:id/publish?wait=true can take up to 25 seconds before answering. Set your client timeout above that, 30 seconds is a good default, or drop wait and rely on webhooks. A 201 or 200 with status: "publishing" after the wait is a normal answer, not a timeout.