List Campaigns

Get a paginated list of all campaigns in your workspace.

GET/api/v1/campaigns
Campaigns organize your calling activities. Outbound campaigns make calls to contacts, while inbound campaigns receive calls on a provisioned phone number.

Authorization

ParameterTypeDescription
x-api-keyrequired
string

Your API key

Example: dk_...

Query Parameters

ParameterTypeDescription
page
number

Page number for pagination

Default: 1

pageSize
number

Number of items per page

Default: 20

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
}
}
}
GET /api/v1/campaigns
curl -X GET "https://voice.evryhealth.com/api/v1/campaigns" \
-H "x-api-key: YOUR_API_KEY"
Response200
{
"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

POST/api/v1/campaigns

Create 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
The 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
Inbound campaigns require a provisionedPhoneNumberId field to specify which phone number will receive calls.
API campaigns
Set 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

StatusDescription
draftCampaign is being configured
activeCampaign is running and making/receiving calls
pausedCampaign is temporarily stopped
completedCampaign has finished

Get Campaign

GET/api/v1/campaigns/{id}

Get detailed information about a specific campaign including its configuration and current status.

Update Campaign

PATCH/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

DELETE/api/v1/campaigns/{id}

Delete a campaign. This action cannot be undone.

Active campaigns must be paused before they can be deleted.

Start Campaign

POST/api/v1/campaigns/{id}/start

Start a campaign. The campaign must be in draft or paused status.

Pause Campaign

POST/api/v1/campaigns/{id}/pause

Pause an active campaign. Calls in progress will complete, but no new calls will be initiated.

List Campaign Contacts

GET/api/v1/campaigns/{id}/contacts

Get a paginated list of contacts associated with a campaign.

Add Contacts to Campaign

POST/api/v1/campaigns/{id}/contacts

Add contacts to a campaign from the associated contact list.

// Request body
{
"contactIds": [
"contact_abc123",
"contact_def456"
]
}

Remove Contact from Campaign

DELETE/api/v1/campaigns/{id}/contacts/{contactId}

Remove a specific contact from a campaign.