Skip to content

List call history (CDRs)

GET
/api/v2/calls
curl --request GET \
--url 'https://api.sipstack.com/api/v2/calls?page=1&limit=50' \
--header 'x-api-key: <x-api-key>'

Returns your organization’s call detail records, newest first. Supports offset paging (page/limit) or keyset paging via next_cursor — see GET /api/v2/messages. This is the cross-product CDR list; for Nova-specific filtering (direction, number, date range) use GET /api/v2/nova/calls.

page
integer
default: 1 >= 1
limit
integer
default: 50 >= 1 <= 200
cursor
string

Opaque keyset cursor from a previous response’s next_cursor.

Paginated CDR list.

Media type application/json
object
success
boolean
data
Array<object>

A single call detail record (CDR) as returned by GET /api/v2/calls.

object
id
string format: uuid
call_id

Carrier/switch call identifier.

string
call_type
string
nullable
direction
string
Allowed values: inbound outbound
src

Calling party.

string
dst

Called party.

string
call_date
string format: date-time
duration

Total call duration in seconds (including ring time).

integer
billsec

Billable (answered) seconds.

integer
created_at
string format: date-time
pagination

Page metadata returned by the paginated Developer API list endpoints. Per-endpoint limit defaults and caps vary (see each endpoint’s limit parameter). In keyset (cursor) mode page, total, and totalPages are null — walk pages via next_cursor instead.

object
page
integer
nullable
limit

Items per page (the default and maximum vary by endpoint).

integer
total

Total matching records across all pages (null in cursor mode).

integer
nullable
totalPages
integer
nullable
next_cursor
string
nullable
Examples
Example page

First page of CDRs

{
"success": true,
"data": [
{
"id": "6b1d9f2a-4c7e-4a3b-8d5f-0e1c2b3a4d5e",
"call_id": "1765432100.4821",
"call_type": "pstn",
"direction": "inbound",
"src": "+14165550100",
"dst": "+16473001234",
"call_date": "2026-01-15T14:30:00.000Z",
"duration": 42,
"billsec": 35,
"created_at": "2026-01-15T14:30:42.000Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 87,
"totalPages": 2
},
"next_cursor": null
}

Missing or invalid API key.

Media type application/json

Inline error shape used by the messaging API and management endpoints.

object
success
boolean
error
string
Example
{
"success": false,
"error": "Recipient phone number (to) is required"
}

Internal error.

Media type application/json

Inline error shape used by the messaging API and management endpoints.

object
success
boolean
error
string
Example
{
"success": false,
"error": "Recipient phone number (to) is required"
}