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://callcamp.ai/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",
      "schedule": {
        "mon": {
          "start": "09:00",
          "end": "17:00"
        },
        "tue": {
          "start": "09:00",
          "end": "17:00"
        }
      },
      "recordTypeUuid": "7d4f10a2-b91c-4d5e-6f7a-8b9c0d1e2f3a",
      "outboundAssistantUuid": "1a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d",
      "inboundAssistantUuid": null,
      "outboundPhoneUuid": "9z8y7x6w-5v4u-3t2s-1r0q-9p8o7n6m5l4k",
      "inboundPhoneUuid": null,
      "createdAt": "2026-04-10T09:24:11Z",
      "updatedAt": "2026-04-22T13:58:02Z"
    },
    {
      "uuid": "1a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d",
      "name": "Customer Support Inbound",
      "description": "General support line handling",
      "status": "active",
      "type": "inbound",
      "timezone": "UTC",
      "schedule": null,
      "recordTypeUuid": null,
      "outboundAssistantUuid": null,
      "inboundAssistantUuid": "3c4d5e6f-1a2b-4a8b-9c0d-1e2f3a4b5c6d",
      "outboundPhoneUuid": null,
      "inboundPhoneUuid": "5v4u3t2s-9z8y-7x6w-1r0q-9p8o7n6m5l4k",
      "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://callcamp.ai/api/campaigns

Creates a new campaign. You must provide a name, status, and type. All other configuration fields are optional and can be updated later.

Body Parameters

FieldTypeDescription
name *stringDescriptive name of the campaign.
description stringInternal description of the campaign.
status *enumInitial status: draft, active, closed.
type *enumCampaign type: inbound, outbound.
timezone stringOperational timezone (e.g., "Europe/London").
schedule objectWeekly operational schedule configuration.
recordTypeUuid uuidUUID of the record type to use for this campaign.
outboundAssistantUuid uuidUUID of the AI assistant for outbound dialing.
inboundAssistantUuid uuidUUID of the AI assistant for incoming calls.
outboundPhoneUuid uuidUUID of the phone number used for outbound calls.
inboundPhoneUuid uuidUUID of the phone number used for inbound calls.

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",
  "schedule": {
    "mon": {
      "start": "09:00",
      "end": "17:00"
    },
    "tue": {
      "start": "09:00",
      "end": "17:00"
    }
  },
  "recordTypeUuid": "7d4f10a2-b91c-4d5e-6f7a-8b9c0d1e2f3a",
  "outboundAssistantUuid": "1a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d",
  "inboundAssistantUuid": null,
  "outboundPhoneUuid": "9z8y7x6w-5v4u-3t2s-1r0q-9p8o7n6m5l4k",
  "inboundPhoneUuid": null,
  "createdAt": "2026-04-10T09:24:11Z",
  "updatedAt": "2026-04-22T13:58:02Z"
}

Get a campaign

GEThttp://callcamp.ai/api/campaigns/{uuid}

Retrieves the full public configuration of a specific campaign by its unique identifier.

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",
  "schedule": {
    "mon": {
      "start": "09:00",
      "end": "17:00"
    },
    "tue": {
      "start": "09:00",
      "end": "17:00"
    }
  },
  "recordTypeUuid": "7d4f10a2-b91c-4d5e-6f7a-8b9c0d1e2f3a",
  "outboundAssistantUuid": "1a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d",
  "inboundAssistantUuid": null,
  "outboundPhoneUuid": "9z8y7x6w-5v4u-3t2s-1r0q-9p8o7n6m5l4k",
  "inboundPhoneUuid": null,
  "createdAt": "2026-04-10T09:24:11Z",
  "updatedAt": "2026-04-22T13:58:02Z"
}

Update a campaign

PATCHhttp://callcamp.ai/api/campaigns/{uuid}

Updates the configuration of an existing campaign. All body parameters are optional for partial updates.

Schedule Structure

The schedule object defines when the campaign is operational. It is a dictionary where keys are three-letter day abbreviations (mon, tue, wed, thu, fri, sat, sun) and values are objects containing start and end times in 24-hour format.

JSON
{
  "mon": {
    "start": "09:00",
    "end": "17:00"
  },
  "tue": {
    "start": "09:00",
    "end": "17:00"
  },
  "wed": {
    "start": "09:00",
    "end": "17:00"
  }
}

Body Parameters

FieldTypeDescription
name stringDescriptive name of the campaign.
description stringInternal description of the campaign.
status enumInitial status: draft, active, closed.
type enumCampaign type: inbound, outbound.
timezone stringOperational timezone (e.g., "Europe/London").
schedule objectWeekly operational schedule configuration.
recordTypeUuid uuidUUID of the record type to use for this campaign.
outboundAssistantUuid uuidUUID of the AI assistant for outbound dialing.
inboundAssistantUuid uuidUUID of the AI assistant for incoming calls.
outboundPhoneUuid uuidUUID of the phone number used for outbound calls.
inboundPhoneUuid uuidUUID of the phone number used for inbound calls.

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",
  "schedule": {
    "mon": {
      "start": "09:00",
      "end": "17:00"
    },
    "tue": {
      "start": "09:00",
      "end": "17:00"
    }
  },
  "recordTypeUuid": "7d4f10a2-b91c-4d5e-6f7a-8b9c0d1e2f3a",
  "outboundAssistantUuid": "1a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d",
  "inboundAssistantUuid": null,
  "outboundPhoneUuid": "9z8y7x6w-5v4u-3t2s-1r0q-9p8o7n6m5l4k",
  "inboundPhoneUuid": null,
  "createdAt": "2026-04-10T09:24:11Z",
  "updatedAt": "2026-04-22T13:58:02Z"
}

Delete a campaign

DELETEhttp://callcamp.ai/api/campaigns/{uuid}

Permanently deletes a campaign. This will stop all associated call operations.

Responses

JSON
{
  "success": true
}