Resources API
Manage numbers, call flows, voicemails, SMS, and other resources via the API.
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. Each call flow defines a sequence of steps (greeting, forward, voicemail, webhook, etc.) that execute when a call comes in.
GET /api/v1/call-flows # List all call flows
GET /api/v1/call-flows/:id # Get call flow with step configuration
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 historyCall Flows: Example
Get a 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"
}
}
}Number Groups
Organize tracking numbers into groups for filtering and reporting.
GET /api/v1/number-groups # List groups
GET /api/v1/number-groups/bulk-stats # Stats for all groups
GET /api/v1/number-groups/:id/members # List numbers in a group
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 call 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 poolVoicemails
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/conversations # List conversations
GET /api/v1/texts # List text messages
GET /api/v1/sms # List SMS messages
POST /api/v1/texts # Send a text messageSMS: Send a Text
Send a text message from one of your tracking numbers:
curl -X POST -H "Authorization: Bearer cs_key_..." \
-H "Content-Type: application/json" \
-d '{"from_number_id": "uuid", "to": "+15735551234", "body": "Thanks for calling! How can we help?"}' \
https://callscaler.com/api/v1/textsForm Submissions
Access form submissions captured by the CallScaler tracking script on your website.
GET /api/v1/forms # List form submissions
GET /api/v1/forms/:id # Get submission detailsDashboard Stats
Get aggregate call statistics for your business. Supports date range filtering.
For more flexible aggregation with custom grouping and metrics, use the Analytics API instead.
curl -H "Authorization: Bearer cs_key_..." \
"https://callscaler.com/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
}
}Billing
Check your current balance and usage history.
GET /api/v1/billing/balance # Current balance in cents
GET /api/v1/billing/history # Transaction historyAPI Keys
Manage your API keys programmatically. Requires the admin or owner role. The full key is only returned on creation and cannot be retrieved later.
GET /api/v1/api-keys # List keys (prefix only)
POST /api/v1/api-keys # Create a new key
DELETE /api/v1/api-keys/:id # Revoke a keyAPI Keys: Create
Create a new API key. Save the key value immediately — it won't be shown again.
curl -X POST -H "Authorization: Bearer cs_key_..." \
-H "Content-Type: application/json" \
-d '{"name": "CRM Integration"}' \
https://callscaler.com/api/v1/api-keys
# Response (save the key!)
{
"data": {
"id": "uuid",
"name": "CRM Integration",
"key": "cs_key_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"prefix": "cs_key_a1b2c3d4",
"created_at": "2026-03-23T12:00:00Z"
}
}Webhook Deliveries
View the delivery log for post-call webhooks. Use this to debug delivery failures and check which webhooks fired successfully.
GET /api/v1/webhooks/deliveries
- •
limit— Results per page (default 50, max 100) - •
offset— Skip results for pagination - •
status— Filter by delivery status:delivered,failed,pending - •
call_flow_id— Filter by call flow UUID
curl -H "Authorization: Bearer cs_key_..." \
"https://callscaler.com/api/v1/webhooks/deliveries?status=failed&limit=10"
# Response
{
"data": {
"deliveries": [
{
"id": "uuid",
"call_id": "uuid",
"call_flow_id": "uuid",
"url": "https://hooks.zapier.com/...",
"status": "failed",
"http_status": 500,
"attempts": 3,
"last_error": "server returned 500",
"created_at": "2026-03-30T14:30:00Z",
"delivered_at": null
}
],
"total": 1
}
}On this page