Prerequisites
- A CallingBox account. Sign up for free. No credit card required, and you get $5 in credits.
- A purchased phone number in your organization (see Numbers)
- A phone number to call
Create an API key
Go to API Keys in the dashboard and click Create key. Name it whatever you want and copy the value. It starts with
sk_ and you’ll only see it once.Create an outbound agent
The agent is where you define persona, instructions, structured returns, and which phone numbers can be used as caller ID. Swap in a The response includes the agent’s
number_id from GET /v1/numbers.id. Save it. You’ll reference it on every call dispatch.Dispatch a call
Pass the agent id, the destination number, and any per-call overrides. Everything else comes from the agent.You’ll get back a call object with
status: "queued". The phone starts ringing within seconds.Check the result
Poll the call to see where it’s at. Once it’s done, the structured result is in the response.Status goes
queued → initiated → ringing → in_progress → completed. If nobody picks up, you’ll see no_answer or busy instead.Using Python? The full SDK guide covers environment-based auth,
from_, number purchase, and error handling: Python SDK.(Optional) Add a webhook
Don’t want to poll? Attach a CallingBox POSTs the full call object to your URL when the call finishes. See Webhooks for the full event catalog and signature verification.
webhook_url to the agent once and it applies to every call that agent handles, or pass webhook_url on the call itself to override for a single call:Next steps
Agents
The reusable primitive. Where persona, returns, tools, and numbers live.
Outbound calls
Every dispatch field and per-call override.
Inbound calls
Let an inbound agent answer your numbers.
Webhooks
Polling vs webhooks for getting results.