List the partner's plans (partner-api)
Lists the plans your partner can see: its own plans and the global Voxbi plans, ordered by sort_order then name (the same plans as the Plans page in the partner portal). Plans of other partners are never returned. Each plan carries its countries; an empty list means the plan is offered in every country.
Pass country to get only the plans a visitor from that country can choose from: plans linked to the country plus plans linked to no country. To get every country with its plans in one call, use GET /plans/countries.
Required scopes: partner-api and partner-plans.
Query parameters: country, active, search (matches name and description), per_page (1 to 5000, default 100) and page. Returned as a Laravel paginator: data, links and meta.
Partner API key. A bearer token that a Reseller Admin generates in the partner
portal under Settings, API keys. It belongs to the reseller partner, not to a
person, and carries the scopes ticked at creation time. Send it on every request as
Authorization: Bearer <partner_api_key>.
Every response is confined to the partner the key belongs to. Keep the key secret and call the API from your server only, never from a browser app.
- HTTP Authorization Scheme
bearer- Bearer format
Bearer <partner_api_key>
application/jsonResponses
dataarray<object>
550e8400-e29b-41d4-a716-446655440201BusinessFor growing teams9.9000EUR10.00251011Unlimited extensions
Call recordingfeatures_listarray<string>
11400172block_services downgrade staystay310countriesarray<string>
https://cockpit.voxbi.com/acme/signup/550e8400-e29b-41d4-a716-4466554402014manual12026-10-01T08:00:00+00:002026-10-29T14:05:00+00:00linksobject
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/resources1511This API key is missing a required scope.required_scopesarray<string>
errorsobject
https://cockpit.voxbi.com/api/v1/api/v1/plans
curl -X GET 'https://cockpit.voxbi.com/api/v1/api/v1/plans' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/api/v1/plans', {
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/api/v1/plans',
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/api/v1/plans', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"data": [ … ],
{ … },
"features_list": [ … ],
"countries": [ … ],
{ … },
"features_list": [ … ],
"countries": [ … ],
{ … }
"links": { … },
"meta": { … }
"links": [ … ],
{ … },
{ … },
{ … }
{ … }
application/json{ … }
application/json{ … }
"errors": { … }
"name": [ … ]
application/json{ … }
30application/json