Analytics API Export
Analytics API Export
The JustCall Analytics API lets you pull call and SMS data into external business intelligence tools like Looker, Tableau, Power BI, or a custom data warehouse. Automate data pipelines instead of downloading CSV files manually.
Authentication
All API requests require your JustCall API key and secret. Include them as headers in every request:
Authorization: Bearer {your_api_key}:{your_api_secret}
Find your API credentials under Settings > API > API Keys. Keep these credentials secure and never expose them in client-side code.
Available Endpoints
| Endpoint | Method | Description |
|---|---|---|
/v2/analytics/calls | GET | Returns call-level data including duration, direction, agent, disposition, and tags. |
/v2/analytics/sms | GET | Returns SMS message data including sender, recipient, status, and content. |
/v2/analytics/agents | GET | Returns per-agent performance metrics for a given date range. |
/v2/analytics/summary | GET | Returns aggregated metrics (total calls, avg duration, service level) for the account or a filtered subset. |
Query Parameters
All endpoints accept the following parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
start_date | String (YYYY-MM-DD) | Yes | Beginning of the date range. |
end_date | String (YYYY-MM-DD) | Yes | End of the date range (inclusive). |
agent_id | Integer | No | Filter by a specific agent. |
phone_number | String | No | Filter by a JustCall phone number. |
direction | String | No | inbound, outbound, or omit for both. |
page | Integer | No | Page number for paginated results (default: 1). |
per_page | Integer | No | Records per page, 1-250 (default: 100). |
Response Format
Responses are JSON objects with the following structure:
{
"status": "success",
"data": [ ... ],
"pagination": {
"current_page": 1,
"per_page": 100,
"total_records": 4523,
"total_pages": 46
}
}
The data array contains one object per record (call, message, or agent summary depending on the endpoint).
Handling Pagination for Large Datasets
For date ranges that return thousands of records:
- Make your initial request with
page=1. - Check the
total_pagesvalue in the response. - Loop through subsequent pages by incrementing the
pageparameter until you reachtotal_pages. - Respect the rate limit of 60 requests per minute per API key. Add a brief delay between page requests if needed.
Example Request
GET /v2/analytics/calls?start_date=2026-03-01&end_date=2026-03-07&direction=inbound&per_page=250&page=1
Authorization: Bearer abc123:secret456
This returns the first 250 inbound call records for March 1-7, 2026.
Rate Limits
| Limit | Value |
|---|---|
| Requests per minute | 60 |
| Max records per page | 250 |
| Max date range per request | 90 days |
If you exceed the rate limit, the API returns a 429 Too Many Requests status. Wait and retry after the reset window.
Connecting to BI Tools
- Looker / Tableau — Use a custom connector or scheduled script that calls the API, writes results to your data warehouse, and lets the BI tool query from there.
- Power BI — Use Power Query's Web connector to call the API endpoint directly. Set up a scheduled refresh.
- Google Sheets — Use Apps Script to fetch data from the API and populate a sheet on a schedule.
For detailed integration guides, see the JustCall API Documentation.