List employees
curl --request GET \
--url https://api.teambuilder.ge/v1/employees \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.teambuilder.ge/v1/employees', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.teambuilder.ge/v1/employees"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"employee_id": "8d2f6b1e-4c3a-4f5e-b7d9-1a2c3e4f5a6b",
"external_id": "EMP-00042",
"name": "Nino Beridze",
"email": "nino.beridze@example.com",
"department": {
"id": "b3e1f7a2-6c4d-4e8f-9a1b-2c3d4e5f6a7b",
"external_id": "D-ENG",
"name": "Engineering"
}
}
],
"pagination": {
"next_cursor": "djEuQ2hhY2hhMjAuZXhhbXBsZS1jdXJzb3I"
}
}{
"error": {
"code": "validation_failed",
"message": "limit must not be greater than 100",
"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": "Department not found",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after 30 seconds.",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}List employees
List active employees, oldest first, or find one by email, external ID or department.
GET
/
v1
/
employees
List employees
curl --request GET \
--url https://api.teambuilder.ge/v1/employees \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.teambuilder.ge/v1/employees', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.teambuilder.ge/v1/employees"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"employee_id": "8d2f6b1e-4c3a-4f5e-b7d9-1a2c3e4f5a6b",
"external_id": "EMP-00042",
"name": "Nino Beridze",
"email": "nino.beridze@example.com",
"department": {
"id": "b3e1f7a2-6c4d-4e8f-9a1b-2c3d4e5f6a7b",
"external_id": "D-ENG",
"name": "Engineering"
}
}
],
"pagination": {
"next_cursor": "djEuQ2hhY2hhMjAuZXhhbXBsZS1jdXJzb3I"
}
}{
"error": {
"code": "validation_failed",
"message": "limit must not be greater than 100",
"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": "Department not found",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after 30 seconds.",
"request_id": "req_7Hq2LmX9vT4kPz1RbN8sWc"
}
}Building profile widgets? See Employee widgets for lookup patterns and how to treat employees who have not signed in yet.
Authorizations
API key — tb_live_… for production data, tb_test_… for the sandbox.
Query Parameters
The pagination.next_cursor of the previous page. Omit it, or send it empty, for the first page. A cursor is opaque and works only on the endpoint that returned it, for the same company.
Maximum string length:
512Example:
"djEuQ2hhY2hhMjAuZXhhbXBsZS1jdXJzb3I"
How many items to return per page, from 1 to 100.
Required range:
1 <= x <= 100Example:
25
Only the employee with this email address. Matching ignores case.
Maximum string length:
256Example:
"nino.beridze@example.com"
Only the employee with this key from your HR system. Matching is exact.
Maximum string length:
255Example:
"EMP-00042"
Only members of this department. Members of its sub-departments are not included.
Example:
"b3e1f7a2-6c4d-4e8f-9a1b-2c3d4e5f6a7b"
