---
title: "People"
method: GET
path: "/employees"
tags: ["people"]
---

# People

`GET /employees`

## Request

- Base URL: `https://api.taktovka.com/v1`
- URL: `https://api.taktovka.com/v1/employees`
- Auth: HTTP bearer

Roster cards: name, contract, agreed weekly hours, home location and positions. `email` and `phone` are in the answer only for a key with people:contact. Hourly rates, birth dates and material liability are never sent. Paged by id: `next_cursor` is null on the last page, otherwise pass it back as `cursor`.

## Query parameters

- `limit` integer
- `cursor` string
- `active` 'true' | 'false' | 'all'

## Response `200`

OK

- object
  - `data` Employee[], required
    - `id` string, uuid, required
    - `first_name` string, required
    - `last_name` string, required
    - `active` boolean, required
    - `contract_type` 'TPP' | 'DoPC' | 'DoBPS' | 'DoVP' | 'HPP' | 'DPP' | 'DPC' | 'DoPCS', required: SK: TPP, DoPC, DoBPS, DoVP, DoPCS; CZ: HPP, DPP, DPC
    - `max_hours_week` integer, nullable, required: Agreed weekly hours
    - `home_location_id` string, uuid, nullable, required
    - `position_ids` string[], required
    - `email` string, nullable: Only with the people:contact scope
    - `phone` string, nullable: Only with the people:contact scope
    - `created_at` string, date-time, required: ISO 8601 instant
    - `updated_at` string, date-time, required: ISO 8601 instant
  - `next_cursor` string, nullable, required

## Other responses

- `400`: validation_failed, range_too_long or key_in_query
- `401`: unauthenticated, invalid_key, key_revoked or key_expired
- `403`: insufficient_scope (with required_scope)
- `429`: rate_limited (with retry_after and a Retry-After header)

---

[API](https://skmtc.dev/taktovka/apis/taktovka-api.md) · [All operations](https://skmtc.dev/taktovka/apis/taktovka-api/llms.txt) · [OpenAPI document](https://skmtc.dev/taktovka/apis/taktovka-api/revisions/612199b365e1?raw)
