API Overview
The Crew API provides programmatic access to all platform features. Use it to manage agents, initiate calls, configure settings, and retrieve data.Base URL
Authentication
All API requests require authentication via API key:Request Format
Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer YOUR_API_KEY |
Content-Type | For POST/PUT | application/json |
X-Crew-Version | No | API version (defaults to latest) |
Request Body
Send JSON for POST and PUT requests:Response Format
All responses are JSON:Error Responses
HTTP Status Codes
| Code | Description |
|---|---|
200 | Success |
201 | Created |
400 | Bad request (invalid parameters) |
401 | Unauthorized (invalid API key) |
403 | Forbidden (insufficient permissions) |
404 | Not found |
429 | Rate limit exceeded |
500 | Server error |
Core Endpoints
Agents
| Method | Endpoint | Description |
|---|---|---|
GET | /agents | List all agents |
POST | /agents | Create agent |
GET | /agents/{id} | Get agent details |
PUT | /agents/{id} | Update agent |
DELETE | /agents/{id} | Delete agent |
Calls
| Method | Endpoint | Description |
|---|---|---|
GET | /calls | List calls |
POST | /calls/outbound | Place outbound call |
GET | /calls/{id} | Get call details |
GET | /calls/{id}/transcript | Get call transcript |
GET | /calls/{id}/recording | Get call recording |
SMS
| Method | Endpoint | Description |
|---|---|---|
GET | /sms | List SMS messages |
POST | /sms | Send SMS |
GET | /sms/{id} | Get message details |
Knowledge Base
| Method | Endpoint | Description |
|---|---|---|
GET | /knowledge-base | List entries |
POST | /knowledge-base | Add entries |
PUT | /knowledge-base/{id} | Update entry |
DELETE | /knowledge-base/{id} | Delete entry |
Campaigns
| Method | Endpoint | Description |
|---|---|---|
GET | /campaigns | List campaigns |
POST | /campaigns | Create campaign |
GET | /campaigns/{id} | Get campaign details |
POST | /campaigns/{id}/start | Start campaign |
POST | /campaigns/{id}/pause | Pause campaign |
POST | /campaigns/{id}/cancel | Cancel campaign |
Webhooks
| Method | Endpoint | Description |
|---|---|---|
GET | /webhooks | List webhooks |
POST | /webhooks | Create webhook |
PUT | /webhooks/{id} | Update webhook |
DELETE | /webhooks/{id} | Delete webhook |
Pagination
List endpoints support pagination:Parameters
| Parameter | Default | Description |
|---|---|---|
limit | 20 | Items per page (max 100) |
offset | 0 | Skip this many items |
Response
Filtering
Most list endpoints support filtering:Rate Limits
| Plan | Requests/Minute |
|---|---|
| Starter | 60 |
| Professional | 300 |
| Enterprise | Custom |
SDKs
Node.js
Python
Idempotency
For operations that shouldn’t be duplicated, use idempotency keys:Versioning
The API is versioned. Specify a version for stability:Webhooks
Receive real-time updates via webhooks. See Webhooks for details.Testing
Sandbox Mode
Use sandbox mode for testing without real calls:Test Phone Numbers
Use these numbers for testing:| Number | Behavior |
|---|---|
+15551234567 | Always answers |
+15551234568 | Always busy |
+15551234569 | No answer |
+15551234560 | Voicemail |
Next Steps
- Authentication — API keys and JWT
- Events & Webhooks — Real-time events
- Rate Limits — Understanding limits