Skip to main content
POST
/
campaign
/
make-call-async
Start Large Campaign Calls (Beta)
curl --request POST \
  --url https://prod-api.ringg.ai/ca/api/v0/campaign/make-call-async \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <x-api-key>' \
  --data '
{
  "bulk_list_id": "123e4567-e89b-12d3-a456-426614174000",
  "agent_id": "830f767a-397e-4b39-82ff-235cd344e2f9",
  "country_code": "+91",
  "campaign_start_time": "18/10/2026, 09:00",
  "campaign_end_time": "18/10/2026, 18:00",
  "from_numbers": [
    "from-number-id"
  ],
  "call_config": {
    "call_retry_config": {
      "retry_count": 1,
      "retry_busy": 30,
      "retry_not_picked": 30,
      "retry_failed": 30
    },
    "call_time": {
      "call_start_time": "09:00",
      "call_end_time": "18:00",
      "timezone": "Asia/Kolkata"
    }
  },
  "concurrency_percentage": 25,
  "callback_url": "https://api.example.com/ringg/campaign-callback",
  "email_completion_user_ids": [
    "<string>"
  ]
}
'
{
  "message": "Campaign calls scheduled",
  "bulk_list_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "scheduled"
}

Documentation Index

Fetch the complete documentation index at: https://docs.ringg.ai/llms.txt

Use this file to discover all available pages before exploring further.

This endpoint is beta. Use it only after Get large campaign upload status shows processing is complete and Check large campaign balance confirms sufficient balance.
POST /campaign/make-call-async queues outbound calls for a beta large campaign. Use it instead of POST /campaign/start for 5,000+ row campaigns created with POST /campaign/upload-csv.

Endpoint

POST /campaign/make-call-async

Request body

Send JSON.
FieldRequiredDescription
agent_idYesAssistant that will handle the campaign calls
bulk_list_idYesLarge campaign list ID returned by POST /campaign/upload-csv
from_numbersYesWorkspace caller numbers or number IDs to use for outbound calls
callback_urlNoURL that should receive post-call events, if configured
curl --request POST "https://prod-api.ringg.ai/ca/api/v0/campaign/make-call-async" \
  --header "X-API-KEY: $RINGG_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "agent_id": "your-agent-id",
    "bulk_list_id": "your-bulk-list-id",
    "from_numbers": ["your-from-number-id"],
    "callback_url": "https://api.example.com/ringg/campaign-callback"
  }'

Response guidance

A successful response means the large campaign was accepted for async scheduling.
{
  "bulk_list_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "scheduled",
  "message": "Large campaign calls queued"
}
Avoid submitting the same bulk_list_id more than once unless a previous attempt clearly failed.

Next step

Monitor progress with Get all campaigns and inspect call rows with Get call history filtered by the same bulk_list_id.

Headers

X-API-KEY
string
required

(Required) Your Ringg AI API key.

Example:

"7251cb4b-3373-43a4-844c-b27a1d45e0c9"

Body

application/json
bulk_list_id
string
required

Draft bulk list ID returned by /campaign/upload-csv.

Example:

"123e4567-e89b-12d3-a456-426614174000"

agent_id
string
required

Assistant ID used during upload.

Example:

"830f767a-397e-4b39-82ff-235cd344e2f9"

country_code
string
required

Phone number country code.

Example:

"+91"

campaign_start_time
string
required

Campaign start time in DD/MM/YYYY, HH:MM format.

Example:

"18/10/2026, 09:00"

campaign_end_time
string
required

Campaign end time in DD/MM/YYYY, HH:MM format.

Example:

"18/10/2026, 18:00"

from_numbers
string[]
required

Workspace number IDs to use for outbound calls.

Example:
["from-number-id"]
call_config
object
required
concurrency_percentage
integer
default:0
Required range: 0 <= x <= 100
Example:

25

callback_url
string | null
Example:

"https://api.example.com/ringg/campaign-callback"

email_completion_user_ids
string[] | null

Response

Large campaign call creation accepted.

message
string
bulk_list_id
string
status
string