Get the Odoo installation status (pbx)
Returns the current install job status for the authenticated PBX's Odoo integration.
Requires an API key carrying the odoo-installer ability.
HTTP:
IntegrationApiKey
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
accept
header · string
example:
application/jsonResponses
Response schema
statusstring
Current install job status.
enum:
pending processing success failedresultsarray<object>
Per-step results of the install job. Empty until the job runs.
[]object
Free-form object
updated_atstring | null · date-time
Authorization Token Missing. This error is returned when the authorization token is missing.
Response schema
errorstring
Error message
example:
Authorization Token is missingNo Odoo integration exists for the authenticated PBX.
Response schema
errorstring
Server error. An unexpected condition was encountered on the server and the
request could not be completed. The body is a generic JSON envelope with a
`message` field. The response is logged on the server side; quote the
request URL + timestamp when reporting an issue.
Response schema
messagestring
exceptionstring
Only present in non-production environments.
filestring
Only present in non-production environments.
lineinteger
Only present in non-production environments.
get
https://cockpit.voxbi.com/api/v1/odoo-installer/install-status
Base URL
Request sample
curl -X GET 'https://cockpit.voxbi.com/api/v1/odoo-installer/install-status' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/odoo-installer/install-status', {
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/odoo-installer/install-status',
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/odoo-installer/install-status', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"status": "pending",
"results": [],
"updated_at": "2026-06-01T08:29:07+00:00"
}
{ … }
"error": "Authorization Token is missing"
}
Cache-Control
string
example:
private, must-revalidate
Connection
string
example:
keep-alive
Content-Type
string
example:
application/json
Vary
string
example:
Origin
X-RateLimit-Limit
integer
Max requests allowed in the current rate-limit window.
example:
60
X-RateLimit-Remaining
integer
Requests remaining in the current rate-limit window.
example:
57{ … }
"error": "not_found"
}
{ … }
"message": "Server Error"
}