Skip to main content
Structured responses from the CloudTalk REST API (v1.7) are JSON documents encoded in UTF-8 per RFC 8259. On the core API at my.cloudtalk.io/api, the top-level key is responseData. Understanding the three envelope shapes — single-item, collection, and error — lets you write one parsing layer that handles most core API responses your integration receives.
The responseData envelope is a core API convention, not a platform-wide contract. Call Flow Analytics, Conversation Intelligence, VoiceAgent, CueCard and Dialer each use their own top-level structure — see Envelope Exceptions. Endpoints that return binary content, such as Recording media (audio/x-wav), return no envelope at all.

Envelope Types

The CloudTalk API uses three distinct envelope shapes depending on the nature of the request. Each is described below with its full field reference and a representative JSON example.

Single-Item Envelope

When you request or mutate a single resource on the core API, the API commonly returns an HTTP 200 status and wraps the resource object directly inside responseData. There are no pagination fields — you receive only the object itself.
Single-item response
object
required
The root envelope object for single-item core API responses.
A 200 does not always carry a resource. Make a call returns {"responseData": {"status": 200}} and no call record. Core PUT create endpoints return 201; some newer endpoints return 204 with no body at all. Read the status codes and schema on the endpoint’s own reference page.

Collections Envelope

When you query a paginated core API list endpoint, the API returns an HTTP 200 status and wraps the result set inside responseData, together with four pagination metadata fields alongside the data array so you can determine how many pages remain. See the Pagination guide for iteration patterns.
Collection response
object
required
The root envelope object for collection responses.
Not every collection endpoint paginates. List countries puts a plain array directly in responseData, with no itemsCount, pageCount, pageNumber or limit. Treat the four pagination fields as present only where the endpoint documents them.

Error Envelope

When a request to the core API fails, it returns an appropriate HTTP error status code and wraps a short diagnostic payload inside responseData. The status field mirrors the HTTP status code, and message provides a human-readable description. The other surfaces use different error shapes — see the Error Codes reference.
Error response
object
required
The root envelope object for error responses.
For a complete list of status codes, their meanings, and remediation steps, see the Error Codes reference.

Dates and Timestamps

All date and time values are expressed in UTC, but the exact wire representation varies by endpoint — take it from the endpoint’s own reference page. Both of these forms appear in the API:
Timestamp formats in use
When you store or compare timestamps, ensure your application treats them as UTC to avoid off-by-one-hour bugs around daylight saving transitions.

Envelope Exceptions

The responseData envelope belongs to the core API. Every other surface has its own shape — use this matrix, then confirm against the endpoint’s reference page.

Dialer

Dialer endpoints do not follow the responseData envelope, and they do not share one shape either. What you get depends on the operation:
  • List endpoints return { "data": [...], "meta": { "nextCursor": "..." } }. Pass a returned meta.nextCursor back as the cursor query parameter to fetch the next page; a null cursor means there are no more pages.
  • Single-resource endpoints return the object directly — GET /dialer/campaigns/{campaignId} returns a campaign, not a wrapper.
  • Some sub-collections return a plain array — GET /dialer/campaigns/{campaignId}/disposition-buttons, for example.
  • Creates return 201 with the created object. Export requests return 202 with { "jobId", "status" }. Deletes return 204 with no body.

Conversation Intelligence

Conversation Intelligence is organized per call, not as a collection of calls. Each endpoint takes a call ID — /ai/calls/{callId}/summary, /overall-sentiment, /talk-listen-ratio, /topics, /transcription, /smart-notes, /details-link — and returns a direct JSON object at the top level with no responseData wrapper.
Most CI endpoints return their payload flat:
Overall sentiment
Topics and Transcription are the two that paginate — over the content of a single call, not over calls. They nest the payload under data and add a sibling pagination object:
Transcription (abridged)

Call Flow Analytics

Get call details is served by analytics-api.cloudtalk.io and returns its payload as a direct JSON object — { "cdr_id": 12345, "uuid": "...", "contact": {...}, ... } — with no responseData wrapper. Its errors use { "statusCode", "message", "error" }.

CueCard

The CueCard endpoint also bypasses the standard envelope format. On success it returns {"success": true} directly; on failure, {"success": false, "errors": ["..."]}.

Quick Reference

Single Item

Core API. Usually HTTP 200 with the resource object inside responseData, no pagination metadata — but check for 201, 204 and status-only bodies.

Collection

Core API, where the endpoint documents pagination. HTTP 200 with itemsCount, pageCount, pageNumber, limit, and a data array.

Error

Core API. HTTP 4xx / 5xx with status (mirrors HTTP code) and a human-readable message. Other surfaces differ — see the matrix above.