Skip to main content
GET
/
api
/
v2
/
platform
/
cdr
/
Get Call Detail Records
curl --request GET \
  --url https://unpod.ai/api/v2/platform/cdr/ \
  --header 'Authorization: <api-key>' \
  --header 'Org-Handle: <org-handle>'
import requests

url = "https://unpod.ai/api/v2/platform/cdr/"

headers = {
"Org-Handle": "<org-handle>",
"Authorization": "<api-key>"
}

response = requests.get(url, headers=headers)

print(response.text)
const options = {
method: 'GET',
headers: {'Org-Handle': '<org-handle>', Authorization: '<api-key>'}
};

fetch('https://unpod.ai/api/v2/platform/cdr/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://unpod.ai/api/v2/platform/cdr/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Org-Handle: <org-handle>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://unpod.ai/api/v2/platform/cdr/"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Org-Handle", "<org-handle>")
req.Header.Add("Authorization", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://unpod.ai/api/v2/platform/cdr/")
.header("Org-Handle", "<org-handle>")
.header("Authorization", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://unpod.ai/api/v2/platform/cdr/")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Org-Handle"] = '<org-handle>'
request["Authorization"] = '<api-key>'

response = http.request(request)
puts response.read_body
{
  "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
    }
  ]
}
Fetch telephony call detail records (CDR) for your organization - inbound and outbound SIP calls with status, timing, duration, and end reason.
Prerequisites: API Token + Org-Handle. See Authentication.

Headers

NameTypeRequiredDescription
AuthorizationstringYesToken <your-api-key>
Org-HandlestringYesOrganization domain handle

Query parameters

NameTypeDescription
pageintegerPage number (default 1)
page_sizeintegerRows per page (default 20)
call_typestringinbound or outbound
call_statusstringcompleted, notConnected, or failed
{
  "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
    }
  ]
}
cURL
curl -s "https://unpod.ai/api/v2/platform/cdr/?page_size=5" \
  -H "Authorization: Token <your-api-key>" \
  -H "Org-Handle: <your-org-handle>"

Authorizations

Authorization
string
header
required

Format: Token

Headers

Org-Handle
string
required

Organization domain handle

Example:

"unpod.tv"

Query Parameters

page
integer
Example:

1

page_size
integer
Example:

20

call_type
enum<string>
Available options:
inbound,
outbound
Example:

"outbound"

call_status
enum<string>
Available options:
completed,
notConnected,
failed
Example:

"completed"

Response

List of telephony CDRs