Summary
Place a call from the inbox phone number. say is spoken with text-to-speech and must be 1 to 1000 characters (HTTP 400 missing_say or say_too_long). mode is say or say_and_record. say_and_record speaks, then records the reply as a voicemail message. to is a US or Canada number (HTTP 400 international_not_allowed). Premium-rate numbers return HTTP 400 premium_rate_blocked. An inbox with no active number returns HTTP 409 phone_number_not_found. A paused inbox returns HTTP 403 inbox_paused. Free has no voice minutes. Starter includes 30 minutes per active number each month. Pro includes 300 minutes, plus 30 for each active number past the 3 included numbers. Outbound calls past that allowance return HTTP 402 plan_limit_exceeded with upgrade_url and resource voice_minutes. Each account can place at most 100 calls per UTC day (HTTP 409 daily_call_cap). The stored message has channel voice. Status callbacks set status to queued, ringing, completed, no-answer, or failed, and duration_seconds. An inbound caller hears the greeting, then a recording stored as a separate message with channel voicemail, type voicemail, the caller number, duration_seconds, transcript, and recording_url. client_id and Idempotency-Key follow the send rules. MCP tool cooper_place_call.
Request
{
"to": "+14155550100",
"say": "Tuesday works.",
"mode": "say"
}Response
HTTP 201. Sample values illustrate the schema.
{
"id": "msg_example",
"inbox_id": "inb_example",
"thread_id": "thr_example",
"direction": "outbound",
"channel": "voice",
"from": "+14155550123",
"to": [
"+14155550100"
],
"subject": "Call",
"text": "Tuesday works.",
"status": "queued",
"duration_seconds": null,
"created_at": "2026-10-18T12:00:00.000Z"
}Errors
- HTTP 400 missing_say
- HTTP 400 international_not_allowed
- HTTP 400 premium_rate_blocked
- HTTP 409 phone_number_not_found
- HTTP 403 inbox_paused
- HTTP 402 plan_limit_exceeded
- HTTP 409 daily_call_cap
- HTTP 404 not_found
- HTTP 400 say_too_long
- HTTP 400 invalid_e164
- HTTP 402 voice_minutes
- HTTP 404 inbox_not_found
Idempotency
Idempotency-Key is 1 to 256 characters of letters, digits, and - . _ ~. The same key and the same request within 24 hours returns the original response with HTTP 200 and Idempotent-Replayed: true. A different request is HTTP 409 idempotency_key_conflict. A second call while the first is running is HTTP 409 idempotency_request_in_progress. An empty or invalid key is HTTP 400 invalid_idempotency_key. client_id is checked first when both are set.