v1

latestOpenAPI 3.0.12026-07-243686491.1 MB
CDRs

List CDRs (cursor-paginated)

Returns a cursor-paginated page of Charge Detail Records (CDRs) for an operator. Use this endpoint to consume CDRs programmatically; for one-shot file delivery by email, use POST /cdr-exports instead.</br></br>Pagination:</br>- The response meta.after is an opaque token. Pass it as the cursor query parameter on the next request to fetch the next page.</br>- meta.after is null when there are no more pages.</br>- Page size defaults to 50 and is capped at 100.</br></br>Notes:</br>- The date range may not exceed 90 days.</br>- If operatorId is omitted, it is derived from the credentials. Consumers with access to multiple operators must specify it explicitly.</br></br>Required scope: cdrs:read </br>Organization authorization: supported

get/api/v1/cdrs

Query parameters

operatorIdinteger nullable

The ID of the operator whose CDRs will be returned. If omitted, it is derived from the credentials. Consumers with access to multiple operators must specify it explicitly.

Example:123
fromstring required

Start of the date range (inclusive), in yyyy-MM-dd format.

Example:2025-01-01
tostring required

End of the date range (inclusive), in yyyy-MM-dd format. Must be on or after from, and the range may not exceed 90 days.

Example:2025-03-31
cursorstring nullable

Opaque cursor for pagination. Pass the meta.after value from a previous response to fetch the next page. Omit on the first request.

Example:12345
limitinteger nullable

Maximum number of CDRs per page. Defaults to 50 if omitted, capped at 100.

Example:50

Response

A page of CDRs

Example response

{
  "data": [
    {
      "id": 12345,
      "operatorId": 456,
      "chargeId": 789,
      "chargeEndedAt": "2026-04-15T10:00:00Z"
    }
  ],
  "meta": {
    "itemCount": 10,
    "perPage": 50,
    "after": "1290",
    "before": "1200"
  }
}