Delete a schedule
Soft-deletes the schedule identified by the path parameter, together with its
steps. Requires the schedules scope on an Integrations API key (a user
bearer token also passes). There is no response body.
A schedule that is still wired into a live call flow is NOT deleted: the request fails with 409 and lists the call flows that still route through it, because removing the schedule would silently change inbound routing. Unwire it from those call-flow steps first, then retry. A schedule referenced only by trashed steps or trashed call flows deletes normally.
On success the schedule disappears from this API immediately (list and get both stop returning it) but an administrator can still restore it, with its steps, from the cockpit trash.
Multi-tenant scoping is enforced: a schedule belonging to another PBX responds 404 and is left untouched, and another tenant's call flows never affect the usage check nor appear in the 409 body.
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
application/jsonResponses
call_flowsarray<object>
https://cockpit.voxbi.com/api/v1/schedules/{id}
curl -X DELETE 'https://cockpit.voxbi.com/api/v1/schedules/{id}' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/schedules/{id}', {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${YOUR_TOKEN}`,
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.delete('https://cockpit.voxbi.com/api/v1/schedules/{id}',
headers={'Authorization': f'Bearer {YOUR_TOKEN}'}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
'http' => [
'method' => 'DELETE',
'header' => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
],
]);
$response = file_get_contents('https://cockpit.voxbi.com/api/v1/schedules/{id}', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
application/json{ … }
application/json{ … }
application/json{ … }
"call_flows": [ … ]
{ … },
{ … }
application/json{ … }
60application/json