Skip to main content
A successful response has status: "success" and a data object. A failure has status: "error" and an error object.
string
required
Always error on failure.
string
required
Human-readable explanation. Safe to show a developer; do not parse it.
string
required
Stable machine-readable code. Branch on this.
array
Optional extra context — validation messages, and so on.
Every code is lower_snake_case.

HTTP status codes

Any endpoint

These come from the platform rather than a product, and can appear anywhere.

Identify

provider_unavailable and not_found mean different things, and it matters which one you act on. not_found is an answer: we looked, and no institution matches that code. provider_unavailable is the absence of an answer. Never treat it as a failed verification or mark an account unreachable on it — retry instead.

Extract

Files

Loom — threads and messages

Loom — outcomes and confirmations

Voice

See the Voice guide for how these surface through the React SDK — it swallows voice_empty_text deliberately.

OAuth and MCP

The OAuth endpoints behind MCP export return the codes RFC 6749 and RFC 7591 define — invalid_request, invalid_client, invalid_grant, unsupported_grant_type, access_denied, invalid_client_metadata — in the shapes those specs require, not this envelope. Your client’s OAuth library will expect exactly that.