Create an IVR (user)
Create an IVR menu. announcement is the SoundFile of type announcement
played when entering the menu; musicOnHold is an optional SoundFile of
type music. default_action controls what happens on caller timeout.
User token only. This route sits behind the token.user guard and is NOT
reachable with an Integrations API key: the ivrs scope grants read access
only. An API key presented here responds 403 whatever its scopes. IVR menus
are normally created and edited in the cockpit UI.
User bearer token. Default authentication for customer-facing endpoints.
Obtain a token by calling POST /login with your credentials, then send it
on every subsequent request as Authorization: Bearer <token>. The token
inherits the permissions and PBX scope of the authenticated user.
- HTTP Authorization Scheme
bearer- Bearer format
Bearer <token>
application/jsonRequest body · required · application/json
hangup repeat default_stepResponses
Authorization Token is missingThe given data was invalid.errorsobject
filterarray<string>
sortarray<string>
pagearray<string>
per_pagearray<string>
https://cockpit.voxbi.com/api/v1/ivrs
curl -X POST 'https://cockpit.voxbi.com/api/v1/ivrs' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
--data '{"pbx_id":"550e8400-e29b-41d4-a716-446655440001","name":"Support IVR","comment":"Routes calls to sales or technical support","announcement":"550e8400-e29b-41d4-a716-446655440010","musicOnHold":"550e8400-e29b-41d4-a716-446655440011","default_action":"repeat"}'
const response = await fetch('https://cockpit.voxbi.com/api/v1/ivrs', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${YOUR_TOKEN}`,
},
body: JSON.stringify({
"pbx_id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Support IVR",
"comment": "Routes calls to sales or technical support",
"announcement": "550e8400-e29b-41d4-a716-446655440010",
"musicOnHold": "550e8400-e29b-41d4-a716-446655440011",
"default_action": "repeat"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post('https://cockpit.voxbi.com/api/v1/ivrs',
headers={'Authorization': f'Bearer {YOUR_TOKEN}'},
json={
"pbx_id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Support IVR",
"comment": "Routes calls to sales or technical support",
"announcement": "550e8400-e29b-41d4-a716-446655440010",
"musicOnHold": "550e8400-e29b-41d4-a716-446655440011",
"default_action": "repeat"
}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
'content' => '{
\"pbx_id\": \"550e8400-e29b-41d4-a716-446655440001\",
\"name\": \"Support IVR\",
\"comment\": \"Routes calls to sales or technical support\",
\"announcement\": \"550e8400-e29b-41d4-a716-446655440010\",
\"musicOnHold\": \"550e8400-e29b-41d4-a716-446655440011\",
\"default_action\": \"repeat\"
}',
],
]);
$response = file_get_contents('https://cockpit.voxbi.com/api/v1/ivrs', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
{ … }
"data": { … }
{ … }
private, must-revalidatekeep-aliveapplication/jsonOrigin6057{ … }
application/json{ … }
"errors": { … }
"filter": [ … ],
"sort": [ … ],
"page": [ … ],
"per_page": [ … ]
private, must-revalidatekeep-aliveapplication/jsonOrigin6057