---
title: "Stage status (not_started / in_progress / done / exception) for the person behind a hand-off id. No profile data, only task progress."
method: GET
path: "/v1/handoffs/{id}"
tags: ["core"]
---

# Stage status (not_started / in_progress / done / exception) for the person behind a hand-off id. No profile data, only task progress.

`GET /v1/handoffs/{id}`

## Request

- Base URL: `https://www.putroots.com`
- URL: `https://www.putroots.com/v1/handoffs/{id}`
- Auth: HTTP bearer

For a hand-off id from POST /v1/handoffs: whether the person has signed up, and for each of the seven journey stages whether it is not started, in progress, done, or has an exception. Nothing from their profile is returned.

## Path parameters

- `id` string, required

## Response `200`

OK

- object
  - `source` unknown, required
  - `fetched_at` string, date-time, required
  - `id` string, required
  - `partner` string, required
  - `joined` boolean, required
  - `users` object[], required
    - `user` string, required: An opaque reference, stable per person. Never an email.
    - `move` object, nullable
      - `kind` string
      - `d0` string
    - `stages` object, required
      - `pre_arrival` 'not_started' | 'in_progress' | 'done' | 'exception', required
      - `housing` 'not_started' | 'in_progress' | 'done' | 'exception', required
      - `move_planning` 'not_started' | 'in_progress' | 'done' | 'exception', required
      - `move_logistics` 'not_started' | 'in_progress' | 'done' | 'exception', required
      - `activate` 'not_started' | 'in_progress' | 'done' | 'exception', required
      - `settle` 'not_started' | 'in_progress' | 'done' | 'exception', required
      - `stabilize` 'not_started' | 'in_progress' | 'done' | 'exception', required

## Other responses

- `400`: Bad input — error says which field.
- `401`: No key / bad token.
- `403`: Key is fine but not for this: pending approval, revoked, scope missing, or an operation only the renter's own account may call.
- `404`: No such lead / hand-off / listing under this key.
- `409`: Conflict: the code is already registered.
- `429`: Rate limited; Retry-After in seconds.

---

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