---
title: "Leads pushed to you: inventory, date window, both buildings' rules (COI, elevator booking, window, loading zone), floors, distance. On a pr_test_ key or before go-live, leads are redacted (no contact, no street address)."
method: GET
path: "/v1/leads"
tags: ["move_intake"]
---

# Leads pushed to you: inventory, date window, both buildings' rules (COI, elevator booking, window, loading zone), floors, distance. On a pr_test_ key or before go-live, leads are redacted (no contact, no street address).

`GET /v1/leads`

## Request

- Base URL: `https://www.putroots.com`
- URL: `https://www.putroots.com/v1/leads`
- Auth: HTTP bearer

Leads pushed to you: inventory, date window, both buildings' rules (COI, elevator booking, window, loading zone), floors, distance. On a pr_test_ key or before go-live, leads are redacted (no contact, no street address).

## Query parameters

- `since` string, date-time

## Response `200`

OK

- object
  - `source` unknown, required
  - `fetched_at` string, date-time, required
  - `leads` object[], required
    - `id` string, required
    - `kind` 'movers' | 'storage' | 'cleaning', required
    - `move_date_window` object, required
      - `from` string, date, required
      - `to` string, date, required
    - `from` object, required
      - `address` string, nullable
      - `floor` string, nullable
      - `elevator` boolean, nullable
      - `coi` boolean, nullable
      - `elevator_booking` boolean, nullable
      - `window` string, nullable
      - `loading_zone` string, nullable
    - `to` object, required
      - `address` string, nullable
      - `floor` string, nullable
      - `elevator` boolean, nullable
      - `coi` boolean, nullable
      - `elevator_booking` boolean, nullable
      - `window` string, nullable
      - `loading_zone` string, nullable
    - `inventory` object, required
      - `summary` string, nullable
      - `rooms` 'studio' | '1b' | '2b' | '3b+' | 'null', nullable
      - `big_items` integer, nullable
    - `distance_mi` number
    - `contact` object, required
      - `name` string
      - `email` string
      - `phone` string
    - `source` 'putroots', required
    - `created_at` string, date-time, required
    - `pushed_at` string, date-time
    - `quotes` integer
    - `booked` boolean
    - `redacted` boolean: true on pr_test_ keys and before go-live: contact is {} and addresses are null

## 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)
