API docs

Errors

Every non-2xx response is:

{"error":{"code":"<machine_code>","message":"<human description>"}}
StatusCodeMeaning / fix
401invalid_api_keyMissing, malformed, revoked, or unknown key.
402insufficient_creditsWallet can’t cover the call — top up.
403missing_scopeRead-only key on a write endpoint.
403api_not_enabled / webhooks_not_enabledPlan lacks the feature — upgrade.
404not_foundNo such resource in your workspace.
404transcript_not_available / recording_not_availableNot available for this call.
409contact_existsDuplicate phone; response includes existing_id.
409subscription_limit_reachedMax 5 active webhook subscriptions.
409subscription_not_activeTest events need an Active subscription.
409not_cancelableOnly queued call requests can be canceled.
422validation_errorMissing/invalid fields (message says which).
422invalid_phoneto (POST /calls) or phone_e164 (opt-outs) must be E.164, e.g. +9198xxxxxxxx. A malformed phone_e164 on POST /contacts returns validation_error instead.
422invalid_agent / invalid_contact / contact_phone_mismatchBad references in POST /calls.
422recipient_dnd / consent_withdrawnThe number is opted out / consent withdrawn.
422outside_calling_hoursOutside the permitted calling window — pass schedule_if_outside_hours: true to queue for the next window.
422invalid_url / no_events / invalid_event_typeWebhook subscription validation.
422invalid_status / invalid_actionPATCH /webhook-subscriptions/{id}status may only be active or paused.
429rate_limitedToo many requests — honor Retry-After.