Skip to main content
Click to call

Authorizations

Authorization
string
header
required

Every request sends Authorization: Bearer <token>. The token is either a panel session (a JWT from /auth/login, 12 hours) or an API key ft_<id>_<secret>. An API key is accepted only from an address on its IP allowlist (403 ip_not_allowed otherwise; 403 ip_allowlist_required for an old key that has none), is limited to its rate per minute (429 rate_limited with Retry-After; X-RateLimit-Limit/Remaining/Reset on every response), and at most 60 call placements a minute.

Headers

Idempotency-Key
string

Any string up to 255 characters. A retry with the same key and the same body gets the first answer again (with Idempotent-Replayed: true) instead of doing it twice; the same key with a different body is 409 idempotency_mismatch; while the first is still running, 409 idempotency_in_progress. Kept 24 hours.

Maximum string length: 255

Query Parameters

dry_run
boolean

true: check everything, place nothing, and return the plan.

Body

application/json

Who rings first (extension, or from) and the number to call (destination, or to).

callback_url
string

Where this call's events are POSTed, signed with the organisation's callback secret (see /integration/callback-secret): call.started, call.answered, call.ended, recording.ready, and call.failed if it never connected.

destination
string
Example:

"0255551234"

extension
string
Example:

"1001"

from
object

Who rings first, by one of: extension number, agent id, or the login email of a person linked to an agent.

organisation_id
string<uuid>

Optional when your scope has exactly one organisation.

reference
string

Your own id for this call. On every event and callback for it, and on its CDR.

Maximum string length: 128
to
string

The number to call; the same as destination.

Response

Origination accepted

call_uuid
string<uuid>
reference
string
request_id
string

When a reference or callback_url was given: the request to follow (GET /call-requests/{id}).