Skip to main content
Load contacts into a campaign

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

Path Parameters

id
string<uuid>
required

Body

application/json

Send one of items, contact_ids or segment_id.

contact_ids
string<uuid>[]
Maximum array length: 10000
items
object[]

People one by one, each with your reference and variables. A number with no contact creates one (contact.created). variables are the call's own ({{name}} in the message or workflow, and an AI agent's brief) and come back with the result.

Maximum array length: 10000
segment_id
string<uuid>

Load everyone in this segment. A COPY, not a reference: the campaign's list is a state machine recording whether each person has been dialled, so a list that read a segment live would change under a running campaign and could re-offer somebody already called. There is no size limit on this form, because the work happens in the database.

Response

OK

added
integer
offered
integer

How many ids were sent. Zero when loading from a segment.

suppressed
integer

How many on the list will never be dialled -- do-not-call or blacklisted. Reported here rather than left to be found on the call sheet: it is the difference between the list somebody chose and the calls that will happen.