Skip to main content
This guide gets you from zero to a working API integration in under five minutes. You’ll retrieve a list of calls from your CloudTalk account and trigger a live outbound call — two of the most common operations in any CloudTalk integration. By the end, you’ll understand the request format, the response envelope, and where to go next.

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.
  • curl installed, or an HTTP client of your choice (Python, Node.js, Postman, etc.).
All examples use curl for brevity. The same requests work identically in any language — just swap the tooling. Python and Node.js equivalents are shown where helpful.

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:
  1. Go to Account → Settings → API Keys — or open https://dashboard.cloudtalk.io/menu/account/settings/API-keys directly.
  2. Copy your API Access Key ID (username) and API Access Key Secret (password).
For the rest of this guide, replace 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:
Never paste real credentials directly into a terminal that logs history, and never commit them to source control. Use environment variables or a secrets manager.
2

List Your Calls

Send a GET request to the calls index endpoint. This returns a paginated list of call records from your account:
A successful response returns HTTP 200 with a JSON body.
3

Understand the Response Envelope

Paginated collection endpoints wrap their result set in a 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:
Read call fields from the nested objects, not from the top of the record. The call’s own ID, direction and timings live under Cdr; the external number is Cdr.public_external; the agent who handled it is Cdr.user_id and the Agent object. See Call history for the complete field list.
The envelope fields mean: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 POST request to the calls create endpoint, passing the agent ID that should place the call and the phone number to dial:
Replace 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:
To find the resulting call afterwards, poll Call history filtered by 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.
The CloudTalk API enforces a rate limit of 60 operations per minute per company. The quota is shared across every API key in your account. If you exceed this limit, you’ll receive an HTTP 429 Too Many Requests response. Build in exponential back-off retry logic for any production integration to handle occasional limit hits gracefully.