API reference

Launch a voice campaign

Start an outbound voice broadcast — plain voice, smart voice, IVR or AI bot.

POSThttps://nextgenpanel.cloudshope.com/api/v1/voice/voiceCampaign

Launches an outbound voice campaign against a voice clip you have already uploaded (voice_file_id). call_type selects the kind of call:

obd_voice_call — a plain recorded message. obd_smartvoice — a message with dynamic, per-recipient variables. obd_ivr — an IVR menu with keypress routing. ai_bot — an AI voice agent.

Recipients come from number (comma-separated 10-digit numbers), an uploaded CSV, or a saved group — chosen with sendTo. max_retry (1–3) with retry_after minutes controls redialling of unanswered calls.

Authentication

Send Authorization: Bearer <token>. An agent token needs the voice create permission.

Body parameters

NameTypeRequiredDescription
campaign_namestringYesCampaign name, up to 191 characters.
voice_file_idintegerYesId of an uploaded voice clip.
call_typeenumYesobd_voice_call, obd_smartvoice, obd_ivr or ai_bot.
sendToenumYesNumbers, csv or Group.
numberstringNoComma-separated 10-digit numbers. Required when sendTo is Numbers.
groupIdstringNoSaved group id. Required when sendTo is Group.
csv_number_columnstringNoName of the number column in the CSV. Required when sendTo is csv.
max_retryinteger (1–3)NoHow many times to redial an unanswered number.
retry_afterinteger (minutes, ≤30)NoWait between retries. Required with max_retry.
schedulled_atstringNoWhen to start. Omit to start now.
callback_urlstringNoYour endpoint for call-event callbacks.
crm_workspace_idstringNoPush call outcomes to this CRM workspace.

Request

  • Send as application/json, or as multipart/form-data when sendTo is csv (file in a file field).
  • retry_after is required whenever max_retry is set.
curl -X POST https://nextgenpanel.cloudshope.com/api/v1/voice/voiceCampaign \
  -H "Authorization: Bearer cs_live_9f2c…" \
  -H "Content-Type: application/json" \
  -d '{
    "campaign_name": "Payment reminder",
    "voice_file_id": 3391,
    "call_type": "obd_voice_call",
    "sendTo": "Numbers",
    "number": "9876543210,9812345678",
    "max_retry": 2,
    "retry_after": 10
  }'

Response

{
  "success": true,
  "id": "cmp_48120",
  "campaignId": 48120
}
201 — example response

Errors

StatusTypeWhen
400malformed-bodyThe JSON body could not be parsed.
403permission-deniedThe agent has no role, or no permission to create voice campaigns.
422validation-failedA field failed validation. See errors.
401unauthorizedThe Authorization header is missing, malformed or the token is invalid or expired.
403forbiddenThe token is valid but the account is not allowed to perform this action.