Resources API

Manage numbers, call flows, voicemails, SMS, and other resources via the API.

Before you call these endpoints

1. Create an API key in Settings → API Keys.
2. Send it as Authorization: Bearer cs_key_....
3. Use your app role to determine access: viewer = read endpoints, manager = most write endpoints, admin or owner = billing and API key management.

There is no GET /api/v1/numbers/:id endpoint. Fetch your numbers from GET /api/v1/numbers and look up the ID client-side.

Numbers endpoints

Use these endpoints to read and manage tracking numbers.

GET    /api/v1/numbers                 # List numbers (owned + assigned)
GET    /api/v1/numbers/export          # Export CSV
GET    /api/v1/numbers/bulk-stats      # Summary metrics
GET    /api/v1/numbers/{id}/stats      # Number stats
POST   /api/v1/numbers/search          # Search available numbers
POST   /api/v1/numbers/purchase        # Buy a number
PATCH  /api/v1/numbers/{id}            # Rename, reassign call flow, update status
DELETE /api/v1/numbers/{id}            # Release a number

Numbers response shape

A successful API-key request is wrapped in a data envelope:

curl -H "Authorization: Bearer cs_key_..." \
  https://callscaler.com/api/v1/numbers

{
  "data": {
    "numbers": [
      {
        "id": "uuid",
        "phone_number": "+15735551234",
        "name": "Google Ads Tampa",
        "status": "active",
        "call_flow_id": "uuid",
        "call_flow_name": "Main Sales Flow",
        "type": "local",
        "number_source": "owned",
        "total_calls": 42,
        "sms_enabled": true,
        "tcr_sw_state": "approved"
      }
    ],
    "total": 1
  }
}

Call flow endpoints

Call flows return the full config_json payload used by the editor.

GET    /api/v1/call-flows                                   # List call flows
GET    /api/v1/call-flows/{id}                              # Get one flow
GET    /api/v1/call-flows/{id}/numbers                      # List attached numbers
GET    /api/v1/call-flows/{id}/versions                     # Version history
POST   /api/v1/call-flows                                   # Create
PUT    /api/v1/call-flows/{id}                              # Update
DELETE /api/v1/call-flows/{id}                              # Delete
POST   /api/v1/call-flows/{id}/duplicate                    # Duplicate
POST   /api/v1/call-flows/{id}/versions/{version}/restore   # Restore version

Call flow example

Get a call flow and inspect its routing config:

curl -H "Authorization: Bearer cs_key_..." \
  https://callscaler.com/api/v1/call-flows/UUID

{
  "data": {
    "id": "uuid",
    "name": "Google Ads - Plumbing",
    "config_json": {
      "steps": [
        { "type": "greeting" },
        { "type": "forward", "destination": "+18135551234" }
      ]
    },
    "config_version": 7
  }
}

Messaging and conversations

Messaging endpoints are business-scoped. The sender must be one of your numbers.

GET  /api/v1/conversations             # Conversation list
GET  /api/v1/texts?contact={phone}    # Thread messages
GET  /api/v1/sms                       # SMS events
POST /api/v1/texts                     # Send outbound SMS

SMS send example

Use from_number, to_number, and body in the request JSON:

curl -X POST -H "Authorization: Bearer cs_key_..." \
  -H "Content-Type: application/json" \
  -d '{"from_number":"+15735550001","to_number":"+18135551234","body":"Thanks for calling us today."}' \
  https://callscaler.com/api/v1/texts

Other resource endpoints

These endpoints are commonly used with Resources API workflows:

  • GET /api/v1/number-groups, POST /api/v1/number-groups, and member management endpoints
  • GET /api/v1/number-pools, POST /api/v1/number-pools, and pool membership endpoints
  • GET /api/v1/voicemails, GET /api/v1/voicemails/{id}, GET /api/v1/voicemails/{id}/recording
  • GET /api/v1/forms, GET /api/v1/forms/{id}
  • GET /api/v1/dashboard/stats for dashboard summary metrics
  • GET /api/v1/webhooks/deliveries for post-call webhook delivery logs