Skip to main content
POST
/
call
Trigger AI Phone Call
curl --request POST \
  --url https://www.callcow.ai/api/call \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "recipient_phone": "+14155552671",
  "workflow_id": "wf_abc123xyz",
  "recipient_name": "John Doe",
  "recipient_email": "john@example.com",
  "recipient_context": "Customer interested in premium plan",
  "idempotency_key": "order-12345-call"
}
'
{
  "success": true,
  "message": "Thanks! Our AI agent will call you shortly."
}

Idempotency

To prevent duplicate calls from retries, you can pass an optional idempotency_key in the request body. If the same key is sent within a 5-minute window, the API returns the cached response without creating a new call.
{
  "workflow_id": "wf_abc123xyz",
  "recipient_phone": "+14155552671",
  "idempotency_key": "order-12345-call"
}

Authorizations

Authorization
string
header
required

API key generated from Settings → API Keys. Format: ck_live_...

Body

application/json
recipient_phone
string
required

Phone number of the call recipient in E.164 format

Example:

"+14155552671"

workflow_id
string
required

ID of the workflow to execute. Get workflow IDs from the List Workflows endpoint or your dashboard.

Example:

"wf_abc123xyz"

recipient_name
string

Name of the call recipient

Example:

"John Doe"

recipient_email
string<email>

Email address of the call recipient. Recommended for meeting booking calls.

Example:

"john@example.com"

recipient_context
string

Additional context to provide to the AI agent during the call

Example:

"Customer interested in premium plan"

idempotency_key
string

Optional unique key to prevent duplicate calls on retries. Scoped to your organization with a 5-minute TTL.

Example:

"order-12345-call"

Response

Call successfully triggered

success
boolean
Example:

true

message
string
Example:

"Thanks! Our AI agent will call you shortly."