---
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` '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).

## Other responses

- `400` — The request did not match the expected schema
- `401` — ApiKeyUnauthorized
- `404` — WorkerNotFoundError
- `429` — RateLimitExceeded
- `500` — InternalServerError

## Changes

- **2026-01-09** `dbd967a1591b` — 1 info
  - added the required property `timeZone` to the response with the `200` status

[Change 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/d256b456551d/schema)
