Caller-ID pool
Add caller pool numbers
Add one or more caller-ID numbers to a pool campaign so calls rotate across them under the campaign’s rotation strategy and limits.
POST
/
api
/
v1
/
account
/
{account_id}
/
campaigns
/
{campaign_id}
/
pool
Add caller pool numbers
curl --request POST \
--url https://api.vobiz.ai/api/v1/account/{account_id}/campaigns/{campaign_id}/pool \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <x-auth-id>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"numbers": [
{}
]
}
'import requests
url = "https://api.vobiz.ai/api/v1/account/{account_id}/campaigns/{campaign_id}/pool"
payload = { "numbers": [{}] }
headers = {
"X-Auth-ID": "<x-auth-id>",
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<x-auth-id>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({numbers: [{}]})
};
fetch('https://api.vobiz.ai/api/v1/account/{account_id}/campaigns/{campaign_id}/pool', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));POST https://api.vobiz.ai/api/v1/account/{account_id}/campaigns/{campaign_id}/pool
caller_id_strategy is pool. The pool rotates calls across eligible numbers and applies per-number limits.
Authentication required
X-Auth-ID— your Vobiz account IDX-Auth-Token— your Vobiz auth token
string
required
Your Vobiz account ID. Use the same value in
X-Auth-ID.string
required
Your Vobiz account ID, for example
MA_XXXXXXXX.string
required
The pool campaign to add numbers to.
array
required
Array of number objects. Each requires
from_number in E.164 format; label is optional with a maximum of 100 characters.The pool can be edited only while the campaign is
draft or ready. Add, update, and delete return 409 while it is running, paused, or queued.Example
cURL
curl -X POST \
"https://api.vobiz.ai/api/v1/account/{account_id}/campaigns/{campaign_id}/pool" \
-H "X-Auth-ID: {account_id}" \
-H "X-Auth-Token: {auth_token}" \
-H "Content-Type: application/json" \
-d '{
"numbers": [
{ "from_number": "+919000000001", "label": "DID-North-1" },
{ "from_number": "+919000000002", "label": "DID-North-2" }
]
}'
Response
201 Created
{
"added": [
{
"id": "4b3890ea-e773-4cef-9442-58f644fddca7",
"from_number": "+919000000001",
"label": "DID-North-1",
"total_calls": 0
}
]
}
id as number_id for updates or deletion.
Rotation and limits
These fields are configured on the campaign, not on individual numbers:| Field | Description |
|---|---|
pool_rotation_strategy | round_robin, least_used, or random. |
pool_max_calls_per_number | Lifetime cap per number. null means unlimited. |
pool_max_calls_per_day | Daily cap per number. Resets at midnight in the campaign timezone. |
pool_cooldown_seconds | Minimum time between consecutive calls from the same number. 0 disables it. |
caller_pool_exhausted and needs a manual resume once you add capacity. When every number reaches its daily cap it pauses with caller_pool_daily_limit_reached and resumes automatically at midnight.Was this page helpful?
⌘I
Add caller pool numbers
curl --request POST \
--url https://api.vobiz.ai/api/v1/account/{account_id}/campaigns/{campaign_id}/pool \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <x-auth-id>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"numbers": [
{}
]
}
'import requests
url = "https://api.vobiz.ai/api/v1/account/{account_id}/campaigns/{campaign_id}/pool"
payload = { "numbers": [{}] }
headers = {
"X-Auth-ID": "<x-auth-id>",
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<x-auth-id>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({numbers: [{}]})
};
fetch('https://api.vobiz.ai/api/v1/account/{account_id}/campaigns/{campaign_id}/pool', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));