API REFERENCE

Campaigns

Campaigns are the core of Call Camp Studio. They allow you to group contacts, assign AI assistants, and manage bulk call operations with granular control over schedules and routing.

List all campaigns

GEThttp://localhost:3000/api/campaigns

Returns a paginated list of all campaigns in your account. You can filter the results by status or search by name using the search parameter, additionally, you can set the page and limit parameters for pagination. A simple query could be ?search=Summer+time&status=active&page=1&limit=10.

Query Parameters

ParameterTypeDescription
search stringSearch campaigns by name or description. Case-insensitive partial match.
status stringFilter by status: draft, active, paused, completed, archived.
page numberThe page number for pagination (default: 1).
limit numberNumber of items per page (default: 10, max: 100).

Responses

JSON
{
  "campaigns": [
    {
      "uuid": "8f3a91b2-c4d5-4e6f-a8b9-c0d1e2f3a4b5",
      "name": "Summer Promotion 2026",
      "description": "Direct outreach for new property listings",
      "status": "active",
      "type": "outbound",
      "timezone": "Europe/London",
      "recordTypeUuid": "7d4f10a2-b91c-4d5e-6f7a-8b9c0d1e2f3a",
      "channelUuid": "2b91c27d-4f10-4d5e-6f7a-8b9c0d1e2f3a",
      "outboundAssistantUuid": "1a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d",
      "outboundPhoneUuid": "9z8y7x6w-5v4u-3t2s-1r0q-9p8o7n6m5l4k",
      "recordsCount": 1250,
      "callsCount": 482,
      "createdAt": "2026-04-10T09:24:11Z",
      "updatedAt": "2026-04-22T13:58:02Z"
    },
    {
      "uuid": "1a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d",
      "name": "Inbound Support Line",
      "description": "General customer service routing",
      "status": "paused",
      "type": "inbound",
      "timezone": "UTC",
      "recordsCount": 0,
      "callsCount": 1520,
      "createdAt": "2026-03-15T10:00:00Z",
      "updatedAt": "2026-04-20T11:30:00Z"
    }
  ],
  "total": 2,
  "page": 1,
  "limit": 10,
  "totalPages": 1
}

Create a new campaign

POSThttp://localhost:3000/api/campaigns

Creates a new campaign. You must provide a name. Other parameters like inboundAssistantUuid or outboundPhoneUuid can be configured now or updated later.

Body Parameters

FieldTypeDescription
name *stringDescriptive name of the campaign.
description stringOptional description for internal reference.
type *stringCampaign type: "inbound" or "outbound".
outboundAssistantUuid stringUUID of the AI assistant for outbound calls.
outboundPhoneUuid stringUUID of the phone number used for dialing out.
timezone stringOperational timezone (e.g., "America/New_York").
status stringInitial status (default: "draft").

Responses

JSON
{
  "uuid": "8f3a91b2-c4d5-4e6f-a8b9-c0d1e2f3a4b5",
  "name": "Summer Promotion 2026",
  "description": "Direct outreach for new property listings",
  "status": "active",
  "type": "outbound",
  "timezone": "Europe/London",
  "recordTypeUuid": "7d4f10a2-b91c-4d5e-6f7a-8b9c0d1e2f3a",
  "channelUuid": "2b91c27d-4f10-4d5e-6f7a-8b9c0d1e2f3a",
  "outboundAssistantUuid": "1a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d",
  "outboundPhoneUuid": "9z8y7x6w-5v4u-3t2s-1r0q-9p8o7n6m5l4k",
  "recordsCount": 1250,
  "callsCount": 482,
  "createdAt": "2026-04-10T09:24:11Z",
  "updatedAt": "2026-04-22T13:58:02Z"
}

Get a campaign

GEThttp://localhost:3000/api/campaigns/{uuid}

Retrieves the full details of a specific campaign, including its current configuration, associated AI assistants, and aggregated performance stats.

Responses

JSON
{
  "uuid": "8f3a91b2-c4d5-4e6f-a8b9-c0d1e2f3a4b5",
  "name": "Summer Promotion 2026",
  "description": "Direct outreach for new property listings",
  "status": "active",
  "type": "outbound",
  "timezone": "Europe/London",
  "recordTypeUuid": "7d4f10a2-b91c-4d5e-6f7a-8b9c0d1e2f3a",
  "channelUuid": "2b91c27d-4f10-4d5e-6f7a-8b9c0d1e2f3a",
  "outboundAssistantUuid": "1a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d",
  "outboundPhoneUuid": "9z8y7x6w-5v4u-3t2s-1r0q-9p8o7n6m5l4k",
  "recordsCount": 1250,
  "callsCount": 482,
  "createdAt": "2026-04-10T09:24:11Z",
  "updatedAt": "2026-04-22T13:58:02Z"
}

Update a campaign

PUThttp://localhost:3000/api/campaigns/{uuid}

Updates the configuration of an existing campaign. You can pause a campaign by setting its status to paused, or update the AI assistant associated with it.

Responses

JSON
{
  "uuid": "8f3a91b2-c4d5-4e6f-a8b9-c0d1e2f3a4b5",
  "name": "Summer Promotion 2026",
  "description": "Direct outreach for new property listings",
  "status": "active",
  "type": "outbound",
  "timezone": "Europe/London",
  "recordTypeUuid": "7d4f10a2-b91c-4d5e-6f7a-8b9c0d1e2f3a",
  "channelUuid": "2b91c27d-4f10-4d5e-6f7a-8b9c0d1e2f3a",
  "outboundAssistantUuid": "1a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d",
  "outboundPhoneUuid": "9z8y7x6w-5v4u-3t2s-1r0q-9p8o7n6m5l4k",
  "recordsCount": 1250,
  "callsCount": 482,
  "createdAt": "2026-04-10T09:24:11Z",
  "updatedAt": "2026-04-22T13:58:02Z"
}

Delete a campaign

DELETEhttp://localhost:3000/api/campaigns/{uuid}

Permanently deletes a campaign and cancels all pending call operations. This action cannot be undone.

Responses

// 204 No Content