Retrieve employee stats
curl --request GET \
--url https://api.teambuilder.ge/v1/employees/{id}/stats \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.teambuilder.ge/v1/employees/{id}/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.teambuilder.ge/v1/employees/{id}/stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"level": 12,
"xp": 12450,
"xp_to_next_level": 1550,
"coins": 830,
"company_rank": 3,
"department_rank": 1,
"badges_count": 6
}{
"error": {
"code": "validation_failed",
"message": "Validation failed (uuid is expected)",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid API key",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}{
"error": {
"code": "forbidden",
"message": "This API key lacks the required scope: employees:read",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}{
"error": {
"code": "not_found",
"message": "Employee not found",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after 30 seconds.",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}Retrieve employee stats
Level, XP, XP to the next level, coin balance, company and department rank, and badge count.
GET
/
v1
/
employees
/
{id}
/
stats
Retrieve employee stats
curl --request GET \
--url https://api.teambuilder.ge/v1/employees/{id}/stats \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.teambuilder.ge/v1/employees/{id}/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.teambuilder.ge/v1/employees/{id}/stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"level": 12,
"xp": 12450,
"xp_to_next_level": 1550,
"coins": 830,
"company_rank": 3,
"department_rank": 1,
"badges_count": 6
}{
"error": {
"code": "validation_failed",
"message": "Validation failed (uuid is expected)",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid API key",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}{
"error": {
"code": "forbidden",
"message": "This API key lacks the required scope: employees:read",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}{
"error": {
"code": "not_found",
"message": "Employee not found",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after 30 seconds.",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}Coins appear only here, never on leaderboards. See Employee widgets for a complete profile card example.
Authorizations
API key — tb_live_… for production data, tb_test_… for the sandbox.
Path Parameters
The employee's employee_id, as returned by the employee and leaderboard endpoints.
Example:
"8d2f6b1e-4c3a-4f5e-b7d9-1a2c3e4f5a6b"
Response
The employee's stats.
Current level, earned through all-time XP.
Required range:
x >= 1Example:
12
XP earned since joining.
Example:
12450
XP still needed to reach the next level. 0 at the highest level.
Required range:
x >= 0Example:
1550
Coins available to spend in the shop.
Example:
830
Position among all your employees by all-time XP. 1 is the top.
Required range:
x >= 1Example:
3
Position within the employee's department by all-time XP. Null if they have no department.
Required range:
x >= 1Example:
1
Badges the employee holds. Revoked badges are not counted.
Required range:
x >= 0Example:
6
