Skip to navigation

Initiate carrier outreach

Initiate an outbound carrier outreach (call or email). Validates outreach limits and load data before initiating.

Authentication: Supports API key and bearer token authentication.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Headers

X-Organization-IDstring or nullOptional
Idempotency-KeystringOptional<=255 characters

A unique key (up to 255 printable ASCII characters, e.g. a UUID) that makes a retry of this request safe. Envoy stores the response for 24 hours; a retry with the same key and the same request returns it again with Idempotent-Replayed: true instead of running twice. The same key with a different request returns 422 idempotency_key_reused; while the first request is still running, 409 idempotency_key_in_progress. 5xx and 429 responses are not stored.

Request

This endpoint expects an object.
carrier_idstringRequiredformat: "uuid"
Carrier UUID to contact
load_idstringRequiredformat: "uuid"
Load UUID for the outreach
modalityenumOptionalDefaults to call

Outreach channel: ‘call’ to initiate a voice call, ‘email’ to start an email negotiation

Allowed values:
contact_idstring or nullOptionalformat: "uuid"
Specific contact UUID. If omitted, selects by priority.

Response

Successful Response
idstringformat: "^otr_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
carrierobject

v1 carrier response - wraps domain CarrierModel with prefixed IDs.

load_idstringformat: "^load_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
modalityenum

Communication channel: call, email, or whatsapp

Allowed values:
directionenum

Direction: inbound or outbound

Allowed values:
created_atdatetime
load_numberstring or nullOptional
statusenumOptionalDefaults to completed

Async-execution lifecycle. Outbound outreaches initiated via the async path move pending → active → completed|failed; inbound and legacy sync paths are written as completed.

Allowed values:
error_reasonstring or nullOptional

Terminal failure detail when status=‘failed’

delivery_failed_atdatetime or nullOptional

When this outreach’s email bounced back undelivered, if it did. Independent of status, which stays ‘completed’ on a bounce because the SEND succeeded — the failure happened afterwards, at the recipient’s mail server. A client showing outreach state must treat a non-null value here as a failure regardless of status, or it will report a delivered email that never arrived.

delivery_failure_reasonstring or nullOptional

Human-readable bounce reason paired with delivery_failed_at (e.g. ‘mailbox does not exist’). Distinct from error_reason, which describes a send that never left.

carrier_engagedboolean or nullOptional
is_automatedbooleanOptionalDefaults to false

True if initiated by the automated outreach worker (the AI agent), not a manual rep action.

call_idstring or nullOptionalformat: "^call_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
conversation_idstring or nullOptional

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
422
Unprocessable Entity Error
429
Too Many Requests Error
502
Bad Gateway Error