Skip to main content

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​

  1. Log in to my.exotel.com
  2. Navigate to Reports > Call Logs in the left sidebar
  3. The default view shows the last 24 hours of call activity

Call Log Fields​

Each call log entry includes the following information:

FieldDescription
Call SIDUnique identifier for the call
Date/TimeWhen the call was initiated (IST/SGT)
FromCaller number (originating number)
ToDestination number
ExoPhoneThe virtual number used for the call
Directioninbound, outbound-api, or outbound-dial
StatusFinal call disposition
DurationTotal call duration in seconds
RecordingLink to call recording (if enabled)
PriceCall cost in your account currency

Call Status Values​

StatusMeaning
completedCall was answered and ended normally
busyCalled party returned a busy signal
no-answerCalled party did not pick up within the ring timeout
failedCall could not be connected (network error, invalid number)
canceledCall 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
warning

The maximum date range for a single query is 31 days. For longer periods, run multiple queries or use Scheduled Reports.

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:

DirectionDescription
inboundCalls received on your ExoPhone
outbound-apiCalls initiated via the API
outbound-dialCalls 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.

tip

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:

FieldTypeDescription
SidStringUnique call identifier
DateCreatedDateTimeCall initiation timestamp
DateUpdatedDateTimeLast status update timestamp
AccountSidStringYour account identifier
ToStringDestination number
FromStringOriginating number
PhoneNumberSidStringExoPhone used
StatusStringFinal call status
StartTimeDateTimeWhen the call was answered
EndTimeDateTimeWhen the call ended
DurationIntegerCall duration in seconds
PriceFloatCall cost
DirectionStringCall direction
RecordingUrlStringURL to the call recording (if enabled)

Exporting Call Logs​

From the Dashboard​

  1. Apply your desired filters
  2. Click the Export button in the top-right corner
  3. Select format: CSV or Excel
  4. 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 completed to total calls to measure reachability
  • Investigate failures -- Filter by failed status 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