List IVR steps (user, pbx)
Returns a paginated list of the calling PBX's IVR steps, the keypad buttons of its IVR menus.
Auth. Either a user bearer token (abilities ['*']) or an Integrations
API key carrying the ivrs scope. One scope covers the menu and its
buttons: there is deliberately NO separate ivr-steps scope. A key without
ivrs responds 403.
Tenancy. The PBX is resolved from the token, never from the request. Only the caller's own steps are ever returned and no query parameter can widen that.
Shape. Read-only projection: the legacy voip_ivr_btn_id platform
mapping is not exposed. Results are sorted by name ascending unless sort
says otherwise. The parent menu is opt-in through ?include=ivr; the ivr
key is absent from the payload otherwise, and the embedded menu never carries
its own steps, so the two resources cannot recurse into each other.
Searching. ?search= runs a case-insensitive partial match over
ivr_id, name and option, and combines with filter[...], sort and
pagination. The whole disjunction stays inside the tenant fence, so search
can never reach another PBX's steps.
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>
API key created on the Cockpit Integrations page (an "API key" integration).
It is a bearer token owned by the customer's PBX and limited to the scopes
selected when the key was created (e.g. phone-numbers, push-configuration).
Send it in the Authorization header:
Authorization: Bearer <api_key>
Manage keys (create / reveal / revoke) from Integrations → New integration → API key.
- HTTP Authorization Scheme
bearer
ivr application/jsonResponses
dataarray<object>
550e8400-e29b-41d4-a716-446655440000550e8400-e29b-41d4-a716-446655440001550e8400-e29b-41d4-a716-446655440002App\Models\CallFlow App\Models\IvrApp\Models\CallFlow550e8400-e29b-41d4-a716-446655440003Sales departmentdefault 0 1 2 3 4 5 6 7 8 9 * # null1en de fr lb es it pt nl pl ru tr sv da no fi cs sk el hu ro bg hr uk ar he hi ja ko zh id ms th vi nullfr2024-03-01T08:29:07.000000Z2024-03-01T08:29:07.000000Zlinksobject
http://localhost/api/v1/resources?page=1http://localhost/api/v1/resources?page=1metaobject
111linksarray<object>
http://localhost/api/v1/resources?page=1first1http://localhost/api/v1/resources1511Authorization Token is missingerrorsobject
https://cockpit.voxbi.com/api/v1/ivr-steps
curl -X GET 'https://cockpit.voxbi.com/api/v1/ivr-steps' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/ivr-steps', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${YOUR_TOKEN}`,
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.get('https://cockpit.voxbi.com/api/v1/ivr-steps',
headers={'Authorization': f'Bearer {YOUR_TOKEN}'}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
'http' => [
'method' => 'GET',
'header' => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
],
]);
$response = file_get_contents('https://cockpit.voxbi.com/api/v1/ivr-steps', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"data": [ … ],
{ … },
{ … }
"links": { … },
"meta": { … }
cockpit.voxbi.comMon, 16 Oct 2023 14:08:48 GMTcloseno-cache, privateapplication/json6059Origin{ … }
private, must-revalidatekeep-aliveapplication/jsonOrigin6057{ … }
application/json{ … }
"errors": { … }
"per_page": [ … ],
"sort": [ … ]
application/json