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. The screenshot below shows the in-app Numbers table — each row is one entry in the GET /api/v1/numbers response, and the columns map directly to fields like name, total_calls, call_flow_name, created_at, status, and sms_enabled.

Numbers page table spotlighted, listing three tracking numbers (Houston Organic, Dallas FB Leads, Austin Google Ads) with columns for Number, Calls, Qualified, Call Flow, Groups, Created, Status, and SMS. The same shape is returned by GET /api/v1/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