List Campaigns
Get a paginated list of all campaigns in your workspace.
/api/v1/campaignsAuthorization
| Parameter | Type | Description |
|---|---|---|
x-api-keyrequired | string | Your API key Example: |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | number | Page number for pagination Default: |
pageSize | number | Number of items per page Default: |
status | string | Filter by campaign status (draft, active, paused, completed) |
direction | string | Filter by direction (outbound, inbound) |
search | string | Search campaigns by name |
workspaceId | string | Filter by workspace ID |
Responses
{"data": {"campaigns": [{"id": "357b188c-c618-4f95-84b1-cbe26b8ce3e0","name": "Q1 Provider Outreach","description": "Quarterly outreach campaign","status": "active","direction": "outbound","contactListId": "cl_abc123","contactListName": "Healthcare Providers","totalContacts": 500,"createdAt": "2024-01-15T10:30:00Z","updatedAt": "2024-01-20T14:15:00Z"}],"pagination": {"page": 1,"pageSize": 20,"total": 5,"totalPages": 1}}}
curl -X GET "https://voice.evryhealth.com/api/v1/campaigns" \-H "x-api-key: YOUR_API_KEY"
{"data": {"campaigns": [{"id": "357b188c-c618-4f95-84b1-cbe26b8ce3e0","name": "Q1 Provider Outreach","description": "Quarterly outreach campaign","status": "active","direction": "outbound","contactListId": "cl_abc123","contactListName": "Healthcare Providers","totalContacts": 500,"createdAt": "2024-01-15T10:30:00Z","updatedAt": "2024-01-20T14:15:00Z"}],"pagination": {"page": 1,"pageSize": 20,"total": 5,"totalPages": 1}}}
Additional Endpoints
Create Campaign
/api/v1/campaignsCreate a new campaign with the specified configuration.
// Request body{"name": "Q1 Provider Outreach","description": "Quarterly outreach campaign","direction": "outbound","contactListId": "cl_abc123","agent": {"type": "Provider outreach"},"agentId": "agent_abc123","workspaceId": "ws_xyz789"}
Agent configuration
agentId field links the campaign to an AI agent. The agent contains the voice configuration, prompt, and tools. Configure your agent first, then reference it when creating campaigns.Inbound campaigns
provisionedPhoneNumberId field to specify which phone number will receive calls.API campaigns
type: "api" to create a lightweight campaign for programmatic call triggering. API campaigns don't need a contact list — trigger calls individually via POST /campaigns/:id/trigger. See the Trigger Calls docs.Campaign Statuses
| Status | Description |
|---|---|
draft | Campaign is being configured |
active | Campaign is running and making/receiving calls |
paused | Campaign is temporarily stopped |
completed | Campaign has finished |
Get Campaign
/api/v1/campaigns/{id}Get detailed information about a specific campaign including its configuration and current status.
Update Campaign
/api/v1/campaigns/{id}Update campaign settings. Only provided fields will be modified.
// Request body{"name": "Q1 Provider Outreach - Updated","description": "Updated description"}
Delete Campaign
/api/v1/campaigns/{id}Delete a campaign. This action cannot be undone.
Start Campaign
/api/v1/campaigns/{id}/startStart a campaign. The campaign must be in draft or paused status.
Pause Campaign
/api/v1/campaigns/{id}/pausePause an active campaign. Calls in progress will complete, but no new calls will be initiated.
List Campaign Contacts
/api/v1/campaigns/{id}/contactsGet a paginated list of contacts associated with a campaign.
Add Contacts to Campaign
/api/v1/campaigns/{id}/contactsAdd contacts to a campaign from the associated contact list.
// Request body{"contactIds": ["contact_abc123","contact_def456"]}
Remove Contact from Campaign
/api/v1/campaigns/{id}/contacts/{contactId}Remove a specific contact from a campaign.