Get the active Status Changer layout (user)
Resolve and return the active Tempus Status Changer layout for the authenticated user. The PBX is derived server-side from the bearer token and cannot be supplied by the client.
Resolution rules:
- The user's PBX must be set on the token. If it is not, the request fails
with
400. - The active layout (
is_active = true) for the user's PBX is selected. If the user belongs to a group and an active layout targets that group, the most recently created group-targeted layout wins; otherwise the first active layout for the PBX is returned. - If no active layout exists for the PBX, the request fails with
404.
The response is returned in the legacy tempus representation, wrapped in a
data envelope, and includes a filters echo of any filter query values.
HTTP:
bearerAuth
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>
accept
header · string
example:
application/jsonResponses
Response schema
dataobject
optionsobject
Client behaviour options for the layout.
geoEnableboolean
geoForceboolean
postActionboolean
updateTimerinteger
Status refresh interval in milliseconds.
layoutobject
idstring · uuid
mxvp_user_idstring · uuid
The PBX identifier the layout belongs to.
namestring
displayflagsstring
typestring
delete_datestring | null
tl_layouts_statusesarray<object>
The statuses placed on the layout grid, in the legacy
Tempus shape.
tllayout_idstring · uuid
status_idobject
idstring · uuid
mxvp_user_idstring · uuid
namestring
iconstring | null
fontcolorstring
backgroundcolorstring
cssstring
commentstring
payableboolean
actionstring | null
migration_idstring | null
mapping_idinteger
delete_datestring | null
sub_status_layoutsarray<object>
[]object
Free-form object
meta_dataobject
Free-form object
allow_multiselectboolean
sub_status_selection_mandatoryboolean
sub_statusesarray<object>
idstring · uuid
namestring
descriptionstring | null
styleobject
Free-form object
positioninteger
sizeinteger
toggle_status_idstring | null
preview_urlstring · uri
Absolute URL to a preview render of the layout.
filtersobject
Echo of any `filter` query parameters supplied.
Free-form object
The authenticated user has no PBX associated with their token, so no
layout can be resolved.
Response schema
No response body.
Authorization Token Missing. This error is returned when the authorization token is missing.
Response schema
errorstring
Error message
example:
Authorization Token is missingData Not Found. This error is returned when the requested data is not found.
Response schema
messagearray<string>
[]string
get
https://cockpit.voxbi.com/api/v1/layout
Base URL
Request sample
curl -X GET 'https://cockpit.voxbi.com/api/v1/layout' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/layout', {
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/layout',
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/layout', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"data": { … },
"options": { … },
"geoEnable": true,
"geoForce": false,
"postAction": false,
"updateTimer": 5000
},
"layout": { … },
"id": "550e8400-e29b-41d4-a716-446655440000",
"mxvp_user_id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Customer Support",
"displayflags": "DWML",
"type": "default",
"delete_date": null,
"tl_layouts_statuses": [ … ]
{ … }
"tllayout_id": "550e8400-e29b-41d4-a716-446655440000",
"status_id": { … },
"id": "550e8400-e29b-41d4-a716-446655440010",
"mxvp_user_id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Working",
"icon": "briefcase",
"fontcolor": "#FFFFFF",
"backgroundcolor": "#1F8F4E",
"css": "",
"comment": "",
"payable": false,
"action": null,
"migration_id": null,
"mapping_id": 0,
"delete_date": null,
"sub_status_layouts": [],
"meta_data": [],
"allow_multiselect": false,
"sub_status_selection_mandatory": false,
"sub_statuses": [ … ]
{ … }
"id": "550e8400-e29b-41d4-a716-446655440020",
"name": "Customer Support",
"description": "Handling inbound support calls",
"style": { … }
"icon_class": "headset"
}
}
]
},
"position": 0,
"size": 3,
"toggle_status_id": null
}
]
},
"preview_url": "https://cockpit.voxbi.com/layout-preview/550e8400-e29b-41d4-a716-446655440000"
},
"filters": []
}
No example for this status.
{ … }
"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{ … }
"message": [ … ]
"Data not found"
]
}
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