Skip to main content

CDR (Call Detail Records)

Call Detail Records (CDRs) provide the most comprehensive view of each voice call processed through Exotel. CDRs contain every data point captured during a call's lifecycle, making them essential for billing reconciliation, compliance auditing, and deep call analytics.

CDR vs. Call Logs​

FeatureCall LogsCDR Reports
Detail levelSummary fields (status, duration, numbers)Full metadata including legs, recordings, cost breakdown
AccessDashboard list view, APIDownloadable CSV/Excel, API
Use caseQuick lookup, real-time monitoringBilling, compliance, analytics
Leg-level dataNoYes -- includes each call leg

CDR Fields​

Standard CDR Fields​

FieldDescriptionExample
CallSidUnique call identifierc5797dcbaaeed7678c406...
DateCreatedCall initiation timestamp2026-03-05 14:30:00
FromOriginating phone number+919876543210
ToDestination phone number+919123456789
PhoneNumberSidExoPhone used for the call0XXXXXX4890
DirectionCall directioninbound, outbound-api
StatusFinal call dispositioncompleted, no-answer
StartTimeWhen the call was answered2026-03-05 14:30:05
EndTimeWhen the call ended2026-03-05 14:32:19
DurationTotal call duration (seconds)134
RecordingUrlURL to call recordinghttps://s3-ap-...
PriceTotal call cost1.50
CurrencyBilling currencyINR

Extended CDR Fields​

FieldDescriptionExample
ConversationDurationActual talk time (seconds)120
LegsNumber of call legs2
Leg1StatusStatus of the first legcompleted
Leg2StatusStatus of the second legcompleted
Leg1DurationDuration of first leg (seconds)134
Leg2DurationDuration of second leg (seconds)120
Leg1FromFirst leg originating number0XXXXXX4890
Leg1ToFirst leg destination number+919876543210
Leg2FromSecond leg originating number0XXXXXX4890
Leg2ToSecond leg destination number+919123456789
FlowIdApp/flow used for the call12345
RecordingDurationRecording file duration (seconds)120

Downloading CDRs from the Dashboard​

Step-by-Step​

  1. Log in to my.exotel.com
  2. Navigate to Reports > CDR / Call Details
  3. Set your date range (maximum 31 days per export)
  4. Apply optional filters:
    • Direction: Inbound, Outbound, or All
    • Status: Completed, Failed, Busy, No-Answer
    • ExoPhone: Filter by specific virtual number
  5. Click Download CSV or Download Excel
info

CDR exports for large date ranges may take a few minutes to generate. You will receive an email with a download link when the export is ready.

Export File Format​

The exported CSV contains one row per call with all standard and extended CDR fields. The file uses UTF-8 encoding with comma-separated values.

Sample CSV header:

CallSid,DateCreated,From,To,PhoneNumberSid,Direction,Status,StartTime,EndTime,Duration,ConversationDuration,Price,Currency,RecordingUrl,FlowId

Accessing CDRs via API​

Single Call CDR​

Retrieve the full CDR for a specific call:

curl "https://$EXOTEL_API_KEY:$EXOTEL_API_TOKEN@$EXOTEL_SUBDOMAIN/v1/Accounts/$EXOTEL_ACCOUNT_SID/Calls/YOUR_CALL_SID.json"

Response:

{
"Call": {
"Sid": "c5797dcbaaeed7678c4062a4a3ed2f8a",
"DateCreated": "2026-03-05 14:30:00",
"DateUpdated": "2026-03-05 14:32:19",
"AccountSid": "your_account_sid",
"To": "+919123456789",
"From": "+919876543210",
"PhoneNumberSid": "0XXXXXX4890",
"Status": "completed",
"StartTime": "2026-03-05 14:30:05",
"EndTime": "2026-03-05 14:32:19",
"Duration": "134",
"Price": "1.50",
"Direction": "outbound-api",
"RecordingUrl": "https://s3-ap-southeast-1.amazonaws.com/recordings/abc123.mp3"
}
}

Bulk CDR Download​

Fetch CDRs for a date range with pagination:

curl "https://$EXOTEL_API_KEY:$EXOTEL_API_TOKEN@$EXOTEL_SUBDOMAIN/v1/Accounts/$EXOTEL_ACCOUNT_SID/Calls.json?DateCreated=gte:2026-03-01%2000:00:00;lte:2026-03-05%2023:59:59&PageSize=100"
warning

The bulk CDR API allows querying up to 6 months of historical data with a maximum 1-month range per request. For larger exports, break your query into monthly chunks.

Filtering CDR API Requests​

ParameterDescriptionExample
DateCreatedDate range filtergte:2026-03-01 00:00:00;lte:2026-03-05 23:59:59
StatusCall status filtercompleted
DirectionCall direction filterinbound
PhoneNumberExoPhone filter0XXXXXX4890
PageSizeResults per page (max 200)100

CDR Use Cases​

Billing Reconciliation​

Compare CDR Price fields against your invoices to verify billing accuracy:

  1. Export CDRs for the billing period
  2. Sum the Price column
  3. Match against your Exotel invoice total

Compliance Auditing​

CDRs provide the audit trail required by many regulatory frameworks:

  • Call timestamps for regulatory record-keeping
  • Recording URLs for call quality audits
  • Leg-level data for verifying call routing compliance

Performance Analytics​

Build performance metrics from CDR data:

MetricCalculation
Answer rateCOUNT(completed) / COUNT(total) * 100
Average handle timeAVG(Duration) WHERE Status = 'completed'
Average talk timeAVG(ConversationDuration) WHERE Status = 'completed'
Peak hourMODE(HOUR(DateCreated))
tip

For automated analytics, use the API to pull CDRs into your data warehouse (BigQuery, Redshift, Snowflake) on a scheduled basis. See Custom Reports for automation patterns.