Errors & limits
Everything you need to handle a failed call.
Error shape
Failures drop data and return meta instead. Check for data and you're covered. Quote the requestId if you report a problem.
{
"meta": {
"status": 404,
"errors": [{ "code": 404, "message": "Post not found.", "reason": "Not Found" }],
"requestId": "75380ae5-4ce8-4119-8f6e-cc1b9129f24c"
}
}Status codes
- 200
- OK
- Body is { "data": … }.
- 404
- Not found
- Missing, deleted, or not public. Deliberately indistinguishable.
- 429
- Too many requests
- Back off and retry.
- 500
- Server error
- On us. Safe to retry.
Rate limits
Per IP, per minute.
- /public/posts/:id
- 600 req/min
- /public/users/:usernameOrId
- 300 req/min
Caching
Both endpoints send a public Cache-Control header — 60s for posts, 5m for profiles. Respect it and you'll rarely hit a limit.