Errors
The canonical error envelope
Every error response shares one envelope:
error — a stable, machine-readable code. Branch on this, not the message.message — human-readable; wording may change between releases.request_id — also returned as the X-Request-Id header. Quote it in
support tickets so we can pull the matching server log line.docs_url — deep link to the per-code documentation page.Validation failures add an errors array of individual messages.
Cross-workspace access returns 404, not 403, so the API never leaks the
existence of records you can’t see.