> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unpod.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Call Detail Records (CDR)

> Fetch telephony call detail records with filtering and pagination

Fetch telephony call detail records (CDR) for your organization - inbound and
outbound SIP calls with status, timing, duration, and end reason.

<Note>
  **Prerequisites:** API Token + Org-Handle. See [Authentication](/api/get-started/authentication).
</Note>

### Headers

| Name          | Type   | Required | Description                |
| ------------- | ------ | -------- | -------------------------- |
| Authorization | string | Yes      | `Token <your-api-key>`     |
| Org-Handle    | string | Yes      | Organization domain handle |

### Query parameters

| Name         | Type    | Description                              |
| ------------ | ------- | ---------------------------------------- |
| page         | integer | Page number (default `1`)                |
| page\_size   | integer | Rows per page (default `20`)             |
| call\_type   | string  | `inbound` or `outbound`                  |
| call\_status | string  | `completed`, `notConnected`, or `failed` |

<ResponseExample>
  ```json 200 theme={null}
  {
    "count": 643,
    "status_code": 200,
    "message": "Call logs fetched successfully",
    "data": [
      {
        "id": 33364,
        "call_status": "completed",
        "end_reason": "call.in-progress.sip-completed-call",
        "call_type": "outbound",
        "bridge": { "id": 12, "name": "Acme Primary Bridge" },
        "creation_time": "2025-11-08T05:32:29Z",
        "start_time": "2025-11-08T05:29:43Z",
        "end_time": "2025-11-08T05:32:28.686639Z",
        "call_duration": 165.686639,
        "source_number": "+15551234567",
        "destination_number": "+15559876543",
        "failure_source": null,
        "sip_cause": null
      }
    ]
  }
  ```
</ResponseExample>

```bash cURL theme={null}
curl -s "https://unpod.ai/api/v2/platform/cdr/?page_size=5" \
  -H "Authorization: Token <your-api-key>" \
  -H "Org-Handle: <your-org-handle>"
```


## OpenAPI

````yaml GET /api/v2/platform/cdr/
openapi: 3.0.3
info:
  title: Unpod API
  description: REST API for Unpod Voice AI Platform
  version: 2.0.0
servers:
  - url: https://unpod.ai/
    description: QA
  - url: https://unpod.ai/
    description: Production
security: []
tags:
  - name: Organisation
  - name: Spaces
  - name: Agents
  - name: Tasks
  - name: Runs
  - name: Call Logs
  - name: Analytics
  - name: Providers
  - name: Bridges
  - name: Numbers
  - name: Trunks
  - name: Telephony
  - name: Billing
paths:
  /api/v2/platform/cdr/:
    get:
      tags:
        - Call Logs
      summary: Get Call Detail Records
      operationId: getCDRs
      parameters:
        - $ref: '#/components/parameters/OrgHandle'
        - name: page
          in: query
          schema:
            type: integer
            example: 1
        - name: page_size
          in: query
          schema:
            type: integer
            example: 20
        - name: call_type
          in: query
          schema:
            type: string
            enum:
              - inbound
              - outbound
            example: outbound
        - name: call_status
          in: query
          schema:
            type: string
            enum:
              - completed
              - notConnected
              - failed
            example: completed
      responses:
        '200':
          description: List of telephony CDRs
          content:
            application/json:
              example:
                count: 643
                status_code: 200
                message: Call logs fetched successfully
                data:
                  - id: 33364
                    call_status: completed
                    end_reason: call.in-progress.sip-completed-call
                    call_type: outbound
                    bridge:
                      id: 12
                      name: Acme Primary Bridge
                    creation_time: '2025-11-08T05:32:29Z'
                    start_time: '2025-11-08T05:29:43Z'
                    end_time: '2025-11-08T05:32:28.686639Z'
                    call_duration: 165.686639
                    source_number: '+15551234567'
                    destination_number: '+15559876543'
                    failure_source: null
                    sip_cause: null
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
        - TokenAuth: []
components:
  parameters:
    OrgHandle:
      name: Org-Handle
      in: header
      required: true
      schema:
        type: string
        example: unpod.tv
      description: Organization domain handle
  responses:
    Unauthorized:
      description: Unauthorized - Invalid or missing API token
      content:
        application/json:
          example:
            status_code: 401
            message: Authentication credentials were not provided.
  securitySchemes:
    TokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Format: Token <your-api-key>'

````