Solutions API Platform About Compliance Client Login Contact Sales

API Documentation

Integrate EchoComm's number provisioning and call tracking into your marketing stack with our RESTful API.

Base URL
https://api.echotext.net/v1
Authentication
Bearer Token (API Key)
Rate Limit
100 requests/second (default tier)
GET /v1/numbers/search

Search available DID numbers by area code, region, or capabilities. Use this endpoint to explore our real-time number inventory before provisioning.

Python Example

python search_numbers.py
import requests

# Authentication
API_KEY = "your_api_key_here"
BASE_URL = "https://api.echotext.net/v1"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# Search for available numbers in area code 415 (San Francisco)
params = {
    "area_code": "415",
    "capabilities": ["sms", "voice"],
    "limit": 10
}

response = requests.get(
    f"{BASE_URL}/numbers/search",
    headers=headers,
    params=params
)
print(response.json())

Response

json 200 OK
{
  "status": "success",
  "data": {
    "available_numbers": [
      {
        "number": "+14155551234",
        "area_code": "415",
        "region": "California",
        "capabilities": ["sms", "voice"],
        "monthly_cost": "1.50",
        "setup_fee": "0.00"
      }
    ],
    "total_available": 847
  }
}
POST /v1/numbers/provision

Provision (activate) one or more numbers from your search results. Assign them to campaigns with custom tags and webhook URLs for real-time event notification.

Python Example

python provision_numbers.py
# Provision numbers for a new marketing campaign
payload = {
    "numbers": ["+14155551234", "+14155555678"],
    "campaign_id": "camp_2026_q1_google_ads",
    "webhook_url": "https://your-crm.com/webhooks/echocomm",
    "auto_renew": True,
    "tags": ["google_ads", "san_francisco", "q1_2026"]
}

response = requests.post(
    f"{BASE_URL}/numbers/provision",
    headers=headers,
    json=payload
)
print(response.json())

Response

json 201 Created
{
  "status": "success",
  "data": {
    "provisioned": 2,
    "numbers": [
      {
        "number": "+14155551234",
        "sid": "num_abc123def456",
        "status": "active",
        "campaign_id": "camp_2026_q1_google_ads",
        "provisioned_at": "2026-03-06T10:30:00Z"
      },
      {
        "number": "+14155555678",
        "sid": "num_xyz789ghi012",
        "status": "active",
        "campaign_id": "camp_2026_q1_google_ads",
        "provisioned_at": "2026-03-06T10:30:01Z"
      }
    ]
  }
}
POST /v1/webhooks/sms/configure

Configure a webhook endpoint to receive inbound SMS messages in real-time. Support for automatic retries and delivery confirmation ensures no message is lost.

Python Example

python configure_webhook.py
# Configure SMS webhook for inbound message routing
payload = {
    "url": "https://your-crm.com/api/inbound-sms",
    "method": "POST",
    "events": ["sms.received", "sms.delivery_report"],
    "headers": {
        "X-Webhook-Secret": "whsk_your_secret_key"
    },
    "retry_policy": {
        "max_retries": 3,
        "backoff_seconds": 30
    }
}

response = requests.post(
    f"{BASE_URL}/webhooks/sms/configure",
    headers=headers,
    json=payload
)
print(response.json())

Response

json 200 OK
{
  "status": "success",
  "data": {
    "webhook_id": "whk_789xyz456abc",
    "url": "https://your-crm.com/api/inbound-sms",
    "events": ["sms.received", "sms.delivery_report"],
    "status": "active",
    "created_at": "2026-03-06T11:00:00Z"
  }
}

Need Full API Reference?

Contact your Account Executive for complete SDK documentation, sandbox access, and dedicated integration support.

Request API Access