Skip to main content

Call Campaigns

Call campaigns let you launch outbound calling operations at scale. Create a campaign, add phone numbers with per-contact variables, and retrieve results programmatically.
All call campaign endpoints require API Key authentication via the x-cybernet-api-key header.

Create Campaign

Create a new outbound calling campaign.

Request

POST /api/v1/call-campaign
x-cybernet-api-key: <API_KEY>
Content-Type: application/json

Body

{
  "call_campaign_name": "January Outreach",
  "start_at": "2026-01-15T09:00:00.000Z",
  "end_at": "2026-01-15T18:00:00.000Z",
  "retry": 2,
  "speed": 5,
  "retry_interval": 30,
  "day_unique": "delete",
  "transfer_next_day": false,
  "allow_dynamic_call_appending": false,
  "call_records": [
    {
      "phone_number": "77012345678",
      "language": "RU",
      "gender_voice": "male",
      "agent_name": "sales_agent_v2",
      "variables": {
        "client_name": "John Doe",
        "debt_amount": 15000,
        "contract_type": "auto_loan",
        "foreign_id": "CRM-12345"
      }
    }
  ]
}
call_campaign_name
string
required
Campaign display name.
start_at
string
required
Campaign start time (ISO 8601 UTC).
end_at
string
required
Campaign end time (ISO 8601 UTC).
retry
integer
Number of retry attempts for unanswered calls.
speed
integer
Concurrent call speed (number of simultaneous calls).
retry_interval
integer
Minutes between retry attempts.
day_unique
string
Deduplication mode. "delete" removes duplicate phone numbers within the same day.
transfer_next_day
boolean
default:false
Whether to carry over unfinished calls to the next day.
allow_dynamic_call_appending
boolean
default:false
Allow adding new phone numbers while the campaign is running.
call_records
array
required
Array of call records. Each record contains:
  • phone_number — Customer phone number
  • language — Conversation language code
  • gender_voice"male" or "female"
  • agent_name — Name of the agent to use
  • variables — Custom key-value pairs for conversation personalization

Response 201 Created

{
  "call_campaign_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "call_campaign_status": "DRAFT",
  "call_records_count": 1,
  "message": "Campaign created successfully"
}

Add Phone Numbers

Add additional call records to an existing campaign. The campaign status changes to PROCESSING after this operation.

Request

PUT /api/v1/call-campaign/{call_campaign_uuid}/phone-number
x-cybernet-api-key: <API_KEY>
Content-Type: application/json
call_campaign_uuid
string
required
UUID of the campaign to add phone numbers to.

Body

{
  "call_records": [
    {
      "phone_number": "77019876543",
      "language": "KZ",
      "gender_voice": "female",
      "agent_name": "support_agent",
      "variables": {
        "client_name": "Jane Smith",
        "debt_amount": 25000
      }
    }
  ]
}

Response 200 OK

Confirmation of the added records.

Errors

CodeDescription
400 Bad RequestCampaign status is COMPLETED, FAILED, or CANCELED

List Campaign Calls

Retrieve paginated list of calls in a campaign.

Request

GET /api/v1/call-campaign/{call_campaign_uuid}/calls?page=1&size=50
x-cybernet-api-key: <API_KEY>
call_campaign_uuid
string
required
Campaign UUID.
page
integer
default:"1"
Page number.
size
integer
default:"50"
Items per page (max 100).

Response 200 OK

{
  "call_campaign_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "calls": [
    {
      "uuid": "call-uuid-here",
      "phone_number": "77012345678",
      "status": "COMPLETED",
      "agent_name": "sales_agent_v2",
      "language": "RU",
      "created_at": "2026-01-15T09:05:00.000Z"
    }
  ],
  "total": 150
}

Errors

CodeDescription
401No/invalid API key
403Key inactive or wrong firm
404Campaign not found

Delete Call by UUID

Remove a specific call from a campaign. Only calls with PENDING status can be deleted. If the call is already in progress, a 409 is returned but future retry attempts are cancelled.

Request

DELETE /api/v1/call-campaign/{call_campaign_uuid}/call/{call_uuid}
x-cybernet-api-key: <API_KEY>
call_campaign_uuid
string
required
Campaign UUID.
call_uuid
string
required
UUID of the call to delete.

Response 200 OK

{
  "deleted": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Errors

CodeDescription
401No/invalid API key
403Key inactive or wrong firm
404Call or campaign not found
409Call already in progress (retries cancelled)

Delete Calls by Phone Number

Remove all calls for a specific phone number from a campaign. All calls must be in PENDING status; if any call is in progress, a 409 is returned.

Request

DELETE /api/v1/call-campaign/{call_campaign_uuid}/phone-number/{phone_number}
x-cybernet-api-key: <API_KEY>
call_campaign_uuid
string
required
Campaign UUID.
phone_number
string
required
Phone number to remove (all associated calls).

Response 200 OK

Returns a list of deleted call UUIDs.

Errors

CodeDescription
401No/invalid API key
403Key inactive or wrong firm
404Phone number or campaign not found
409Call already in progress
422Invalid phone number format

Get Campaign Details

Retrieve detailed information about a campaign with optional filters for date, status, call UUID, and phone number.

Request

GET /api/v1/call-campaign/{call_campaign_uuid}/details?page=1&size=10
x-cybernet-api-key: <API_KEY>
call_campaign_uuid
string
required
Campaign UUID.
page
integer
default:"1"
Page number (min: 1).
size
integer
default:"10"
Items per page (min: 1, max: 100).
date
string
Filter by date (ISO 8601 datetime).
call_status
string
Filter by call status.
call_uuid
string
Filter by specific call UUID.
phone_number
string
Filter by phone number.

Response 200 OK

{
  "call_campaign_name": "January Outreach",
  "start_at": "2026-01-15T09:00:00.000Z",
  "end_at": "2026-01-15T18:00:00.000Z",
  "retry": 2,
  "retry_interval": 30,
  "speed": 5,
  "items": [
    {
      "call_event_uuid": "event-uuid",
      "phone_number": "77012345678",
      "agent_name": "sales_agent_v2",
      "language": "RU",
      "variables": {"client_name": "John Doe"},
      "started_at": "2026-01-15T09:05:00.000Z",
      "duration_sec": 95,
      "status": "COMPLETED",
      "fresult": "CALL_ANSWERED_INFORMATION_TRANSFERRED",
      "transcript": "assistant: Hello...\nuser: Hi...",
      "summary": "Customer was informed about the loan terms...",
      "user_sentiment": "neutral",
      "call_uuid": "call-uuid"
    }
  ],
  "page": 1,
  "size": 10,
  "total": 150
}