Errors
Pre-release v1, published 2026-09-14. This page commits to the shape of the API, not to a
date. We will build exactly what is documented here. The shape can still change until
2026-10-14; after that, changes follow Versioning and stability.
The banner comes off one page at a time as each route goes live. While it is here, build against the contract and assume the route is not callable yet.
Shape
Always log request_id. It is what lets us find your exact request when you contact support.
Codes
400 and 422 are different failures
400 means the request never got as far as validation: a required parameter is missing, a
timestamp will not parse, a limit is out of range. 422 means the request was well formed and
its contents were rejected, such as a comment rule with no reply and no DM.
404, not 403, for someone else’s resources
If you request a resource that exists but belongs to another partner, you receive 404, not
403. A 403 would confirm the id exists, which is information you should not be able to probe
for.
details
Some errors carry a details object where a number helps you act:
It is never present on 401 or 404, where extra detail would confirm something you should
not learn.
Which errors are worth retrying
We never name an internal host or service in an error. If you need to know why something
upstream failed, send your request_id to your account manager.