Call Logs
Call logs provide a chronological record of every voice call processed through your Exotel account. Use them to track call activity, troubleshoot issues, and analyze communication patterns.
Viewing Call Logs in the Dashboard​
- Log in to my.exotel.com
- Navigate to Reports > Call Logs in the left sidebar
- The default view shows the last 24 hours of call activity
Call Log Fields​
Each call log entry includes the following information:
| Field | Description |
|---|---|
| Call SID | Unique identifier for the call |
| Date/Time | When the call was initiated (IST/SGT) |
| From | Caller number (originating number) |
| To | Destination number |
| ExoPhone | The virtual number used for the call |
| Direction | inbound, outbound-api, or outbound-dial |
| Status | Final call disposition |
| Duration | Total call duration in seconds |
| Recording | Link to call recording (if enabled) |
| Price | Call cost in your account currency |
Call Status Values​
| Status | Meaning |
|---|---|
completed | Call was answered and ended normally |
busy | Called party returned a busy signal |
no-answer | Called party did not pick up within the ring timeout |
failed | Call could not be connected (network error, invalid number) |
canceled | Call was canceled before being answered |
Filtering Call Logs​
Date Range Filter​
Select a predefined range or specify custom dates:
- Today -- Current day's calls
- Yesterday -- Previous day's calls
- Last 7 days -- Rolling week view
- Last 30 days -- Rolling month view
- Custom range -- Specify exact start and end dates
The maximum date range for a single query is 31 days. For longer periods, run multiple queries or use Scheduled Reports.
Phone Number Search​
Search by any phone number involved in the call:
- From number -- Filter by the originating number
- To number -- Filter by the destination number
- ExoPhone -- Filter by the virtual number used
Enter the number with country code (e.g., +919876543210) or without (e.g., 09876543210).
Status Filter​
Filter calls by their final status:
- Select one or more statuses:
completed,busy,no-answer,failed,canceled - Combine with date range for targeted analysis
Direction Filter​
Filter by call direction:
| Direction | Description |
|---|---|
inbound | Calls received on your ExoPhone |
outbound-api | Calls initiated via the API |
outbound-dial | Calls initiated from the dashboard |
Accessing Call Logs via API​
Retrieve call logs programmatically using the Call Details API.
List All Calls​
curl "https://$EXOTEL_API_KEY:$EXOTEL_API_TOKEN@$EXOTEL_SUBDOMAIN/v1/Accounts/$EXOTEL_ACCOUNT_SID/Calls.json?PageSize=50"
Filter by Date Range​
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"
Filter by Status​
curl "https://$EXOTEL_API_KEY:$EXOTEL_API_TOKEN@$EXOTEL_SUBDOMAIN/v1/Accounts/$EXOTEL_ACCOUNT_SID/Calls.json?Status=completed"
Filter by Direction​
curl "https://$EXOTEL_API_KEY:$EXOTEL_API_TOKEN@$EXOTEL_SUBDOMAIN/v1/Accounts/$EXOTEL_ACCOUNT_SID/Calls.json?Direction=inbound"
Pagination​
The API returns results in pages. Use PageSize and cursor-based pagination:
{
"Calls": [ ... ],
"Metadata": {
"PageSize": 50,
"Page": 0,
"NextPageUri": "/v1/Accounts/{sid}/Calls.json?PageSize=50&AfterSid=abc123",
"PrevPageUri": null
}
}
Follow the NextPageUri to fetch the next page of results. See Call Details API for full documentation.
For large data exports, use cursor-based pagination (NextPageUri) rather than offset-based pagination. This is more efficient and avoids duplicate records when new calls arrive during pagination.
API Response Fields​
Each call record in the API response includes:
| Field | Type | Description |
|---|---|---|
Sid | String | Unique call identifier |
DateCreated | DateTime | Call initiation timestamp |
DateUpdated | DateTime | Last status update timestamp |
AccountSid | String | Your account identifier |
To | String | Destination number |
From | String | Originating number |
PhoneNumberSid | String | ExoPhone used |
Status | String | Final call status |
StartTime | DateTime | When the call was answered |
EndTime | DateTime | When the call ended |
Duration | Integer | Call duration in seconds |
Price | Float | Call cost |
Direction | String | Call direction |
RecordingUrl | String | URL to the call recording (if enabled) |
Exporting Call Logs​
From the Dashboard​
- Apply your desired filters
- Click the Export button in the top-right corner
- Select format: CSV or Excel
- The export downloads to your browser
Via the API​
Fetch all records using pagination and write them to your preferred format. See Custom Reports for export automation patterns.
Best Practices​
- Set up daily exports -- Use Scheduled Reports to receive daily call logs via email
- Monitor answer rates -- Track the ratio of
completedto total calls to measure reachability - Investigate failures -- Filter by
failedstatus to identify number-level or network issues - Use webhooks for real-time -- Instead of polling call logs, configure StatusCallback webhooks for real-time status updates
Related Resources​
- CDR Reports -- Download comprehensive call detail records
- Call Details API -- Full API reference
- Business Monitoring Dashboard -- Build a monitoring dashboard using call logs