---
title: "GET /v1/workers/{id}"
method: GET
path: "/v1/workers/{id}"
tags: ["Workers"]
---

# GET /v1/workers/{id}

`GET /v1/workers/{id}`

Get a specific worker by id.

## Path parameters

- `id` string, required — The id of the worker.

## Response `200`

Success

- object
  - `id` string, required — The id of the worker.
  - `position` string, required
  - `type` 'employee' | 'contractor', required
  - `status` 'draft' | 'invited' | 'onboarding' | 'active' | 'offboarding' | 'inactive', required
  - `startDate` string, required — A date string in the form YYYY-MM-DD
  - `endDate` string, nullable, required — A date string in the form YYYY-MM-DD
  - `isBusiness` boolean, nullable, required
  - `businessName` string, nullable, required
  - `firstName` string, required
  - `lastName` string, required
  - `email` string, required — An email with a reasonably valid regex (shamelessly taken from zod)
  - `workEmail` string, nullable, required — An email with a reasonably valid regex (shamelessly taken from zod)
  - `preferredName` string, nullable, required
  - `displayName` string, required — The "ui" name of a worker. If it's a business contractor business name is used. Otherwise we default to preferred name, then first-last.
  - `timeZone` string, nullable, required — The IANA timezone of the worker (e.g., America/New_York).
  - `department` object, nullable, required — The department the worker belongs to, or null if unassigned.
    - `id` string, required — The unique public id of the department
    - `name` string, required

## Other responses

- `400` — The request did not match the expected schema
- `401` — ApiKeyUnauthorized
- `403` — MissingRequiredPermissions
- `404` — The specified worker could not be found.
- `429` — RateLimitExceeded
- `500` — InternalServerError

## Changes

- **2026-03-19** `a896c17cf988` — 4 breaking, 2 warning, 1 info
  - the response's body type/format changed from `object`/`` to ``/`` for status `403`
  - removed the required property `_tag` from the response with the `403` status
  - removed the required property `message` from the response with the `403` status
  - removed the required property `requiredPermissions` from the response with the `403` status
  - …3 more
- **2026-03-13** `6cfbdf910b80` — 1 warning
  - added the new `company:workplaces` enum value to the `requiredPermissions/items/scope` response property for the response status `403`
- **2026-03-09** `768d9cb8d8d9` — 2 breaking, 3 info
  - the `requiredPermissions/items/` response property's minItems was decreased from `2` to `0` for the response status `403`
  - the `requiredPermissions/items/` response's property type/format changed from `array`/`` to `object`/`` for status `403`
  - removed `subschema #1, subschema #2` from the `requiredPermissions/items/` response property 'prefixItems' list for the response status `403`
  - added the required property `requiredPermissions/items/level` to the response with the `403` status
  - …1 more
- **2026-03-09** `787281d7e9a2` — 2 info
  - added the non-success response with the status `403`
  - added the required property `department` to the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/teamwarp/apis/warp-api/changes/v1/workers/:id/get.md)

---

[API](https://skmtc.dev/teamwarp/apis/warp-api.md) · [All operations](https://skmtc.dev/teamwarp/apis/warp-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/teamwarp/warp-api/revisions/f3df5d5ca575/schema)
