List schedules
Returns a paginated list of the calling PBX's schedules. Requires the
schedules scope on an Integrations API key (a user bearer token also
passes). Multi-tenant scoping is enforced: only the caller's own schedules
are ever returned, and no query parameter can widen that.
Results are sorted by name ascending unless sort says otherwise. Page
size is per_page, which defaults to 100 and is capped at 5000. Each
schedule embeds its steps (the time rules), in the same shape the write
endpoints accept.
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
name -name created_at -created_at application/jsonResponses
dataarray<object>
550e8400-e29b-41d4-a716-446655440000550e8400-e29b-41d4-a716-446655440001Business hoursMonday to Friday, 09:00 to 18:00steps*array<object>
7c9e6679-7425-40de-944b-e07fc1f90ae7days_of_the_week fixed_dates recurring_dates specific_perioddays_of_the_weekenabled disabledenabled09:0018:00days_of_the_week*object | null
fixed_dates*array<string>
recurring_dates*array<string>
specific_period*object | null
2026-08-03 08:002026-08-17 18:002024-03-01T08:29:07.000000Z2024-03-01T08:29:07.000000Z2024-03-01T08:29:07Z2024-03-01T08:29:07Zlinksobject
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/resources1511The given data was invalid.errorsobject
filterarray<string>
sortarray<string>
pagearray<string>
per_pagearray<string>
https://cockpit.voxbi.com/api/v1/schedules
curl -X GET 'https://cockpit.voxbi.com/api/v1/schedules' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/schedules', {
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/schedules',
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/schedules', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"data": [ … ],
{ … },
"steps": [ … ],
{ … },
"days_of_the_week": { … },
{ … }
"fixed_dates": [ … ],
{ … }
"links": { … },
"meta": { … }
cockpit.voxbi.comMon, 16 Oct 2023 14:08:48 GMTcloseno-cache, privateapplication/json6059Origin{ … }
application/json{ … }
application/json{ … }
application/json{ … }
"errors": { … }
"filter": [ … ],
"sort": [ … ],
"page": [ … ],
"per_page": [ … ]
private, must-revalidatekeep-aliveapplication/jsonOrigin6057{ … }
60application/json