API Endpoints
Complete reference for all available REST API endpoints with examples.
Numbers
List, search, purchase, update, and release tracking numbers.
GET /api/v1/numbers # List all numbers
GET /api/v1/numbers/:id # Get a single number
POST /api/v1/numbers/search # Search available numbers by area code
POST /api/v1/numbers/purchase # Purchase a number
PATCH /api/v1/numbers/:id # Update a number (rename, assign call flow)
DELETE /api/v1/numbers/:id # Release a numberNumbers: Example
List all tracking numbers for your business:
curl -H "Authorization: Bearer cs_key_..." \
https://callscaler.com/api/v1/numbers
# Response
{
"data": {
"numbers": [
{
"id": "uuid",
"phone_number": "+15735551234",
"friendly_name": "Google Ads",
"type": "local",
"call_flow_id": "uuid",
"call_flow_name": "Main Flow",
"group_id": "uuid",
"group_name": "Paid Search",
"status": "active",
"created_at": "2026-01-15T08:00:00Z"
}
],
"total": 1
}
}Call Flows
Create and manage call routing flows.
GET /api/v1/call-flows # List all call flows
GET /api/v1/call-flows/:id # Get call flow details + steps
POST /api/v1/call-flows # Create a call flow
PUT /api/v1/call-flows/:id # Update a call flow
DELETE /api/v1/call-flows/:id # Delete a call flow
GET /api/v1/call-flows/:id/versions # List version historyCalls
Access call logs with full attribution data, recordings, and AI transcriptions.
GET /api/v1/calls # List calls
GET /api/v1/calls/:id # Get call details
GET /api/v1/calls/:id/recording # Download call recording (audio)
GET /api/v1/calls/:id/transcription # Get AI transcription
GET /api/v1/calls/export # Export calls as CSVCalls: Filters
The calls list endpoint supports query parameters to filter results:
- •`page` and `per_page` for pagination
- •`date_from` and `date_to` (ISO 8601 format)
- •`status` (answered, missed, voicemail)
- •`number_id` to filter by tracking number
- •`call_flow_id` to filter by call flow
- •`qualified=true` for qualified calls only
Calls: Example
Get the last 5 answered calls:
curl -H "Authorization: Bearer cs_key_..." \
"https://callscaler.com/api/v1/calls?per_page=5&status=answered"
# Response
{
"data": {
"calls": [
{
"id": "uuid",
"caller_number": "+13055551234",
"tracking_number": "+15735559876",
"destination_number": "+13055554567",
"call_flow_name": "Google Ads",
"status": "answered",
"duration_seconds": 145,
"qualified": true,
"ai_score": 85,
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "plumbing",
"gclid": "abc123",
"landing_page": "https://yoursite.com/plumbing",
"has_transcription": true,
"created_at": "2026-03-23T14:30:00Z"
}
],
"total": 1
}
}Dashboard Stats
Get aggregate call statistics for your business. Supports date range filtering with `date_from` and `date_to` query parameters.
GET /api/v1/dashboard/stats
GET /api/v1/dashboard/stats?date_from=2026-03-01&date_to=2026-03-31
# Response
{
"data": {
"total_calls": 342,
"answered_calls": 285,
"missed_calls": 41,
"voicemail_calls": 16,
"qualified_calls": 198,
"unique_callers": 267,
"total_minutes": 1240,
"average_duration": 217,
"active_numbers": 12,
"balance_cents": 4500
}
}Call Flows: Example
Get a single call flow with its full step configuration:
curl -H "Authorization: Bearer cs_key_..." \
https://callscaler.com/api/v1/call-flows/UUID
# Response
{
"data": {
"call_flow": {
"id": "uuid",
"name": "Google Ads",
"steps": [
{"type": "greeting", "message": "Thanks for calling"},
{"type": "forward", "number": "+15735554567"}
],
"settings": {
"recording": true,
"whisper": true,
"press1": false
},
"version": 3,
"assigned_numbers": 4,
"created_at": "2026-01-10T08:00:00Z"
}
}
}Voicemails
List voicemails and download recordings. The recording endpoint returns the audio file directly (not JSON).
GET /api/v1/voicemails # List voicemails
GET /api/v1/voicemails/:id # Get voicemail details
GET /api/v1/voicemails/:id/recording # Download audio (returns audio/mpeg)SMS Conversations
List SMS messages and send texts through your tracking numbers.
GET /api/v1/sms # List all SMS messages
POST /api/v1/texts # Send a text message
# Send a text
curl -X POST -H "Authorization: Bearer cs_key_..." \
-H "Content-Type: application/json" \
-d '{"from_number_id": "uuid", "to": "+15735551234", "body": "Hello!"}' \
https://callscaler.com/api/v1/textsNumber Groups
Organize tracking numbers into groups for reporting and bulk management.
GET /api/v1/number-groups # List groups
GET /api/v1/number-groups/bulk-stats # Stats for all groups
POST /api/v1/number-groups # Create a group
PUT /api/v1/number-groups/:id # Update a group
DELETE /api/v1/number-groups/:id # Delete a group
POST /api/v1/number-groups/:id/members # Add numbers to group
DELETE /api/v1/number-groups/:id/members/:numId # Remove number from groupNumber Pools (DNI)
Manage dynamic number insertion pools for website visitor-level tracking.
GET /api/v1/number-pools # List pools
POST /api/v1/number-pools # Create a pool
GET /api/v1/number-pools/:id # Get pool details
PUT /api/v1/number-pools/:id # Update a pool
DELETE /api/v1/number-pools/:id # Delete a poolForm Submissions
Access form tracking submissions captured by the CallScaler tracking script on your website.
GET /api/v1/forms # List form submissions
GET /api/v1/forms/:id # Get submission detailsAPI Keys
Manage your API keys programmatically. Requires admin role. The full key is only returned on creation and cannot be retrieved later.
GET /api/v1/api-keys # List your API keys (prefix only)
POST /api/v1/api-keys # Create a new key (returns full key once)
DELETE /api/v1/api-keys/:id # Revoke a key
# Create a key
curl -X POST -H "Authorization: Bearer cs_key_..." \
-H "Content-Type: application/json" \
-d '{"name": "My CRM Integration"}' \
https://callscaler.com/api/v1/api-keys
# Response (save the key immediately)
{
"data": {
"id": "uuid",
"name": "My CRM Integration",
"key": "cs_key_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"prefix": "cs_key_a1b2c3d4",
"created_at": "2026-03-23T12:00:00Z"
}
}Related
On this page