Gary Club
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/calls
Cursor-paginated. Filter by direction, status, contact phone, since timestamp.

Query parameters

limitintegerdefault: 50
page_tokenstring
direction"inbound" | "outbound"
statusstring
e.g. completed, missed, voicemail.
phonestring
Substring on contact_phone.
sincedatetime
ISO-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

iduuidrequired
Request
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/agents
Each 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/calls
Fires 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

tostringrequired
E.164 phone to dial.
agent_iduuidrequired
Which agent template to use. Discover via GET /v1/agents.
prompt_overridestring
Per-call system-prompt override. Leave null to use the agent template's default.
contextobject
Free-form key/value context the agent can reference (e.g. customer name, last meeting summary).
callback_urlstring
Optional one-shot webhook URL for events on this specific call (in addition to org-level subscriptions).
metadataobject
Round-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.