Create a call task
create_call_task (MCP) · POST /api/tasks (REST)
Fields
| Field | Type | Notes |
|---|---|---|
phone | string, required | US number in any format; normalized to E.164. |
goal | string, required | 3–300 chars. One sentence the caller can act on. |
brief | string, required | 10–4000 chars. See writing briefs. |
consent | enum, required | inquiry · express_written · existing_customer · b2b_main_line |
state or timezone | string, one required | 2-letter US state or IANA timezone; drives calling hours. |
business_name, lead_name | string | Shown to the caller. |
links | array | Up to 10 {label, url}. |
payout_cents | int, default 600 | 100–10000. |
bonus_cents | int, default 5000 | Paid when the outcome is booked. |
deadline_minutes | int | 5–10080. Unclaimed tasks expire after this. |
webhook_url | url | Receives task.completed. |
external_ref | string | Your ID, echoed back. |
What's checked
- The number is valid, US, and not on the do-not-call list.
- No other open task exists for the same number (across all clients).
- A timezone can be resolved for calling hours.
Response
{
"id": "task_9f2c1a…",
"status": "open", // "review" when free calls are used up and no plan is active
"business_name": "Bright Smile Dental",
"phone": "+15125550142",
"timezone": "America/Chicago",
"state": "TX",
"lead_local_time": "10:04 AM CDT",
"callable_now": true,
"goal": "Book a 15-minute call to walk through their site grade",
"consent": "inquiry",
"payout_cents": 600,
"bonus_cents": 5000,
"outcome": null,
"created_at": "2026-10-06T15:04:12.000Z",
"deadline_at": "2026-10-06T16:04:12.000Z"
}