API Documentation

Integrate AI Calls into your application using our REST API

Authentication
All API requests require authentication via API key

Include your API key in the X-API-Key header with every request. API keys start with kate_.

X-API-Key: kate_your_api_key_here

Contact support to get your API key, or find it in your account settings.

Code Examples
Quick start examples in popular languages
curl -X POST "https://calls.thescrollstudio.com/api/v1/calls/initiate" \
  -H "X-API-Key: kate_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"phone_number": "+14155551234"}'

Calls

POST/api/v1/calls/initiateAuth Required
Initiate an outbound call

Request Body

{
  "phone_number": "+14155551234",
  "profile_id": "uuid (optional)",
  "custom_data": {}
}

Response

{
  "id": "uuid",
  "phone_number": "+14155551234",
  "status": "pending",
  "direction": "outbound",
  "profile_id": "uuid",
  "created_at": "2024-01-15T10:30:00Z"
}
GET/api/v1/calls/{call_id}Auth Required
Get details of a specific call

Response

{
  "id": "uuid",
  "phone_number": "+14155551234",
  "status": "completed",
  "direction": "outbound",
  "profile_id": "uuid",
  "duration_seconds": 180,
  "cost_total": 0.25,
  "outcome": "sale",
  "started_at": "2024-01-15T10:30:00Z",
  "ended_at": "2024-01-15T10:33:00Z"
}
GET/api/v1/callsAuth Required
List calls with optional filtering

Response

{
  "items": [...],
  "total": 100,
  "skip": 0,
  "limit": 50
}

Profiles

GET/api/v1/profilesAuth Required
List all profiles

Response

{
  "items": [
    {
      "id": "uuid",
      "name": "Kate - Sales",
      "persona_name": "Kate",
      "persona_role": "Sales Representative",
      "is_active": true
    }
  ],
  "total": 5
}

Campaigns

GET/api/v1/campaignsAuth Required
List all campaigns

Response

{
  "items": [
    {
      "id": "uuid",
      "name": "Q1 Outreach",
      "status": "active",
      "profile_id": "uuid",
      "total_contacts": 500,
      "completed_contacts": 150,
      "successful_contacts": 45
    }
  ],
  "total": 10,
  "skip": 0,
  "limit": 50
}
POST/api/v1/campaigns/{campaign_id}/contactsAuth Required
Add contacts to a campaign

Request Body

[
  {
    "phone_number": "+14155551234",
    "name": "John Smith",
    "email": "john@example.com",
    "company": "Acme Corp",
    "timezone": "America/New_York",
    "custom_data": {}
  }
]

Response

{
  "message": "Added 1 contacts",
  "added": 1
}