---
title: "Retrieve a lead"
method: GET
path: "/leads/{lead}"
tags: ["Leads"]
---

# Retrieve a lead

`GET /leads/{lead}`

## Request

- Base URL: `https://api.ekho.com`
- URL: `https://api.ekho.com/leads/{lead}`
- Auth: HTTP bearer

Returns a single caller-owned lead by its id.

## Path parameters

- `lead` string, required

## Response `200`

The requested lead.

- object
  - `data` Lead, required
    - `id` string, required
    - `created_at` integer, required: Epoch ms the lead was created.
    - `updated_at` integer, required: Epoch ms of the last change.
    - `stage` 'new' | 'to_reach_out' | 'engaged' | 'needs_attention' | 'booked' | 'on_hold' | 'closed_won' | 'closed_lost', required
    - `type` 'partial_order' | 'partial_preorder' | 'rejected_financing' | 'buy_in_person' | 'inquiry' | 'conversation' | 'pre_qual' | 'external_crm' | 'adf', required
    - `buyer` LeadBuyer, required: Captured contact info, always present; carries PII.
      - `id` string, nullable, required: Resolved customer id; null until the lead matches a customer.
      - `full_name` string, nullable, required
      - `email` string, nullable, required
      - `phone` string, nullable, required: As captured; no formatting guarantee.
      - `address` object, nullable, required: Buyer address from the linked profile; null when none is on file.
        - `line1` string, required
        - `line2` string, nullable, required
        - `city` string, required
        - `state` string, required: Two-letter state code.
        - `zip` string, required
        - `country` string, nullable, required: ISO 3166-1 alpha-2; null implies US.
    - `estimated_value` number, required: USD value of the attached cart or deal; 0 when none.
    - `assigned_account_id` string, nullable, required: The account the lead is routed to; null when unrouted.

## Other responses

- `400`: The request was malformed or failed validation. `errors` itemizes every field at fault, so one response names them all; the fields in the example stand in for this request's own.
- `401`: Authentication is missing or invalid.
- `403`: The token lacks `leads:read`.
- `404`: No lead matches that id.
- `429`: The rate limit has been exceeded.
- `500`: An unexpected error occurred.

## Changes

- **2026-09-18** `78c545d96a34`: 19 warning
  - added the new `adf` enum value to the `data/type` response property for the response status `200`
  - added the new `external_id_in_use` enum value to the `code` response property for the response status `400`
  - added the new `external_id_in_use` enum value to the `code` response property for the response status `401`
  - added the new `external_id_in_use` enum value to the `code` response property for the response status `403`
  - …15 more

[Operation history](https://skmtc.dev/ekho/apis/ekho-api/changes/leads/:lead/get.md)

---

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