Prerequisites
Before you start, make sure you have:- A CloudTalk account with at least one agent. Outbound calls are placed from the agent, so that agent needs an outbound number configured.
- An API Access Key ID and API Access Key Secret. If you haven’t generated these yet, follow the Authentication guide first.
curlinstalled, or an HTTP client of your choice (Python, Node.js, Postman, etc.).
1
Confirm Your API Keys
You need your API Access Key ID and Secret before any request can succeed. Retrieve them from the CloudTalk Dashboard:
- Go to Account → Settings → API Keys — or open https://dashboard.cloudtalk.io/menu/account/settings/API-keys directly.
- Copy your API Access Key ID (username) and API Access Key Secret (password).
YOUR_KEY_ID and YOUR_KEY_SECRET in every example with your actual values. To keep things tidy, you can export them as environment variables:2
List Your Calls
Send a A successful response returns HTTP
GET request to the calls index endpoint. This returns a paginated list of call records from your account:200 with a JSON body.3
Understand the Response Envelope
Paginated collection endpoints wrap their result set in a The envelope fields mean:
responseData envelope. Here’s an abridged response for the calls list — each element of data groups its fields into nested objects rather than one flat record:To fetch the next page, append
?page=2 to your request URL. To set the page size, append ?limit=50 — valid values are 1 to 1000. Omitting limit lets the server apply its own default; the limit field in the envelope tells you what was actually applied.Not every collection endpoint paginates. List countries, for example, returns a plain array inside
responseData with no pagination metadata. Check the endpoint’s reference page.Date and time values are UTC, but the exact representation varies by endpoint — call records use
2017-10-04T06:33:37.000Z, while the date_from / date_to filters take 2017-12-24 12:22:00. Take the format from the endpoint’s reference page.4
Make an Outbound Call
Once you’ve confirmed your credentials work, you can trigger a live outbound call. Send a Replace To find the resulting call afterwards, poll Call history filtered by
POST request to the calls create endpoint, passing the agent ID that should place the call and the phone number to dial:1234 with a real agent ID from your account and +442012345678 with the number you want to dial. CloudTalk rings the agent first — they have 20 seconds to pick up — and dials the callee once the agent answers.A successful response returns HTTP 200 with a status-only body. It does not return a call record, so there is no call ID to read here:user_id and date_from.The core API maps HTTP verbs differently from many REST APIs:
PUT creates resources, POST updates them, and DELETE removes them. The /calls/create.json endpoint is an exception — it uses POST because it triggers an action rather than persisting a new data record. The newer surfaces (Dialer, VoiceAgent, Conversation Intelligence, CueCard) use the conventional mapping instead, though most expose only part of it — PATCH, PUT and DELETE appear on Dialer alone. Always check an endpoint’s reference page for the correct HTTP method.5
Explore More
You’ve made your first two API calls. Here’s where to go next depending on what you’re building:
API Reference
Browse every endpoint — contacts, agents, SMS, campaigns, AI insights, and more — with full parameter docs and a live request playground.
Conversation Intelligence
Pull AI transcriptions, sentiment scores, smart notes, and call topics from completed calls.