Get your own Tempus profile (user)
The caller's own Tempus profile: their active contract, balances, home office settings, preferences, and what they validate.
Same payload as GET /tempus/api/v1/{pbx_id}/user/{employee_id}/profile with one
difference, which is why it is versioned: the validator block is the v2 shape. It
always has the same keys (is_validator, permissions, pending) instead of being
an object or null, and it drops the companies, departments and employees lists,
which approval chains cannot produce cheaply. That roster is on
GET /tempus/api/v1/{pbx_id}/validator/employees.
The path says employee, not v1's user: the subject is a Tempus employee record,
and v1 passed an employee id to a segment named user.
422 when the employee has no active contract, since almost every figure in the payload is derived from one.
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>
application/jsonResponses
employee*object
Jane Smithjane.smith@example.comcompany*object
550e8400-e29b-41d4-a716-446655440001Acme Corpcontract*object
2024-01-01550e8400-e29b-41d4-a716-446655440042absence*object
200:00:0080:00:00120:00:00home_office*object
120515overtime*object
1112:30:0045000decision_preferenceobject | null
employee companyemployeepay_up_to increment_up_to nullincrement_up_toskip_if_manual_decision force_auto_decision force_zero_overtime nullskip_if_manual_decision36000add_to_balance drop nulladd_to_balancePer HR overtime policy.current_periodobject
550e8400-e29b-41d4-a716-4466554400002026-01-012026-12-312026-12-242026-12-31current_accrualobject
720002:00:00360001:00:001080003:00:00travel_time*object
1301011preferences*object
d/m/Y m/d/Y Y-m-d d.m.Yd.m.Yvalidator*object | null
permissions*object
pending*object
3100companies*array<object>
departments*array<object>
employees*array<object>
validators*array<object>
550e8400-e29b-41d4-a716-446655440010550e8400-e29b-41d4-a716-446655440011Jane Smithscopes*array<string>
holiday_requests home_office_requests time_point_corrections_requests schedules_managementvalidatorobject
1permissions*object
11pending*object
3100Authorization Token is missingYou do not have access to this PBX.User not found.No active contract found for this employee.https://cockpit.voxbi.com/api/v1/v2/{pbx}/employee/{employee}/profile
curl -X GET 'https://cockpit.voxbi.com/api/v1/v2/{pbx}/employee/{employee}/profile' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/v2/{pbx}/employee/{employee}/profile', {
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/v2/{pbx}/employee/{employee}/profile',
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/v2/{pbx}/employee/{employee}/profile', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
private, must-revalidatekeep-aliveapplication/jsonOrigin6057