Skip to main content

Welcome to the SmartAlex API

The SmartAlex API allows you to programmatically manage AI voice agents, campaigns, contacts, and call data. Build custom integrations, automate workflows, and embed SmartAlex into your applications.

Agents

Create, update, and manage AI voice agents

Campaigns

Launch and control outbound calling campaigns

Calls

Initiate calls and access call data

Contacts

Import and manage your contact database

Base URL

All API requests should be made to:
https://api.getsmartalex.com/v1

Authentication

All API endpoints require authentication using a Bearer token in the Authorization header.
curl -X GET "https://api.getsmartalex.com/v1/agents" \
  -H "Authorization: Bearer YOUR_API_KEY"

Getting Your API Key

  1. Log in to your SmartAlex dashboard
  2. Navigate to SettingsAPI
  3. Click Generate New Key
  4. Copy and securely store the key
API keys are shown only once when created. Store them securely - if lost, you’ll need to generate a new key.

Request Format

Headers

All requests must include:
HeaderValue
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json (for POST/PUT requests)

Request Body

POST and PUT requests accept JSON bodies:
curl -X POST "https://api.getsmartalex.com/v1/agents" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Alex",
    "voice": "nova",
    "prompt": "You are a friendly receptionist..."
  }'

Response Format

All responses are JSON with a consistent structure:

Success Response

{
  "data": {
    "id": "agent_abc123",
    "name": "Alex",
    "status": "ready"
  }
}

List Response

{
  "data": [
    { "id": "agent_abc123", "name": "Alex" },
    { "id": "agent_def456", "name": "Sarah" }
  ],
  "meta": {
    "total": 2,
    "page": 1,
    "per_page": 20
  }
}

Error Response

{
  "error": {
    "code": "invalid_request",
    "message": "The 'name' field is required",
    "status": 400
  }
}

Error Codes

StatusCodeDescription
400invalid_requestMalformed request or missing required fields
401unauthorizedInvalid or missing API key
403forbiddenAPI key doesn’t have permission
404not_foundResource doesn’t exist
429rate_limitedToo many requests
500server_errorInternal server error

Rate Limits

API requests are rate limited based on your plan:
PlanRequests/minuteRequests/day
Professional6010,000
Dental30050,000
Real Estate600100,000
Rate limit headers are included in every response:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1640000000
When rate limited, you’ll receive a 429 response:
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded. Retry after 60 seconds.",
    "retry_after": 60
  }
}

Pagination

List endpoints support pagination:
ParameterDescriptionDefault
pagePage number1
per_pageItems per page20
Example:
curl "https://api.getsmartalex.com/v1/contacts?page=2&per_page=50" \
  -H "Authorization: Bearer YOUR_API_KEY"

Webhooks

Receive real-time notifications for events in your account. See Webhooks for setup and event types.

SDKs & Libraries

Official client libraries are coming soon. In the meantime, use any HTTP client to interact with the API.
Need help with the API? Contact us at support@getsmartalex.com