Error codes

Stable error codes you can branch on.

Errors return a stable code you can branch on:

CodeMeaning
API_KEY_MISSING / API_KEY_INVALIDno / bad x-api-key
API_KEY_EXPIREDkey past its expiry (e.g. after a rotation overlap)
API_KEY_TENANT_INACTIVEthe tenant is suspended
API_KEY_IP_BLOCKED / API_KEY_ORIGIN_BLOCKEDrequest IP/Origin not on the key's allowlist
PROVIDER_KEY_MISSING / _INVALID / _EXPIRED / _IP_BLOCKED / PROVIDER_INACTIVEprovider-key problems
PARTICIPANT_TOKEN_MISSING / _INVALIDno / bad participant bearer token
PARTICIPANT_ROOM_NOT_FOUND / PARTICIPANT_NOT_IN_ROOMtoken doesn't map to a joinable room
PUBLIC_JOIN_DISABLEDpublic join is not enabled for that room
PLAN_FEATURE_REQUIREDthe feature is not included in the tenant's plan
TEST_MODE_MEDIA_DISABLEDbillable media attempted on a test-mode tenant

Rate limiting returns plain HTTP 429 — see Plans, limits & rate limiting.