Resource
Calls
Inbound and outbound voice. Reading is fully shipped today; the outbound dial trigger ships in Phase 1.5.
Two outbound paths
For one-off dials (post-form, post-event), use
POST /v1/calls with an outbound voice agent id. For volume dialing (lapsed-customer reactivation, lead lists), use SDR Campaigns — the dialer cron works the queue with concurrency, retries, and calling windows baked in.List calls#
List phone calls
GET
/v1/callsCursor-paginated. Filter by direction, status, contact phone, since timestamp.
Query parameters
limitintegerdefault: 50page_tokenstringdirection"inbound" | "outbound"statusstringe.g. completed, missed, voicemail.
phonestringSubstring on contact_phone.
sincedatetimeISO-8601. Only calls created at-or-after this timestamp.
Request
curl "https://agency.gary.club/api/public/v1/calls?direction=inbound&limit=20" \
-H "Authorization: Bearer gc_live_EXAMPLE_AbCdEfGhIj0123456789"Read one#
Full call detail
GET
/v1/calls/{id}Returns the full
phone_calls row plus hydrated transcript turns from phone_transcripts. Recording URLs are time-bound; cache the bytes if you need long-term storage.Path parameters
iduuidrequiredRequest
curl https://agency.gary.club/api/public/v1/calls/call_EXAMPLE_aaaa \
-H "Authorization: Bearer gc_live_EXAMPLE_AbCdEfGhIj0123456789"List agent templates#
List AI phone agent templates
GET
/v1/agentsEach row is a configured ElevenLabs / Telnyx agent — name, voice, phone number, status. Use the
id on POST /v1/calls when triggering a dial.Request
curl https://agency.gary.club/api/public/v1/agents \
-H "Authorization: Bearer gc_live_EXAMPLE_AbCdEfGhIj0123456789"Initiate an outbound call#
Trigger an outbound dial
POST
/v1/callsFires a single outbound call from an
outbound_voice agent. Requires the org's ai_sdr_outbound_enabled flag to be on and the supplied agent_id to resolve to a launched outbound voice agent in the same tenancy.Body parameters
tostringrequiredE.164 phone to dial.
agent_iduuidrequiredWhich agent template to use. Discover via
GET /v1/agents.prompt_overridestringPer-call system-prompt override. Leave null to use the agent template's default.
contextobjectFree-form key/value context the agent can reference (e.g. customer name, last meeting summary).
callback_urlstringOptional one-shot webhook URL for events on this specific call (in addition to org-level subscriptions).
metadataobjectRound-tripped on every
call.* event for this call. Use it to correlate the trigger with downstream events.Request
curl -X POST https://agency.gary.club/api/public/v1/calls \
-H "Authorization: Bearer gc_live_EXAMPLE_AbCdEfGhIj0123456789" \
-H "Content-Type: application/json" \
-d '{
"to": "+15551234567",
"agent_id": "ag_EXAMPLE_outbound",
"context": { "first_name": "Jane", "last_meeting_topic": "pricing" },
"metadata": { "n8n_run_id": "run_abc123" }
}'Webhooks for calls#
call.received— inbound ringing.call.answered— pickup confirmed.call.completed— full transcript + recording + outcome + cost.call.voicemail_left— outbound only.call.failed— couldn't connect.
See Webhooks for the payload shape and signature verification.

