---
title: "Get a lead"
method: GET
path: "/api/v1/leads/{id}"
tags: ["API Reference"]
---

# Get a lead

`GET /api/v1/leads/{id}`

## Request

- Base URL: `https://revnu.com`
- URL: `https://revnu.com/api/v1/leads/{id}`
- Auth: HTTP bearer

One lead with its contacts, the surfaced draft, and the research behind each column.

Requires the `leads:read` scope.

**Response.** `{ "lead": { …, fields, draft, research, contacts: [contact, …], contactsTruncated: false } }`. Contacts are capped at 50, with `contactsTruncated: true` when there were more. The lead and each contact carry `workflowRunId`, the workflow run that created it, or `null`. `404` for an unknown or another account's lead.

A contact is `{ id, workflowRunId, email, name, firstName, title, linkedinUrl, photoUrl, emailStatus, role, isPrimary, identityConfidence }`, with `null` for anything not known.

`draft` is the surfaced draft, `{ subject, body }` (each cut at 16,000 characters), or `null` when there is none. `research` is a list of entries, one per key the agent saved research under: `{ key, reasoning, sources: [{ url, title }], sourcesTruncated }`, the agent's reasoning (cut at 8,000 characters) and up to 20 sources behind that value. A source whose URL is longer than 2,048 characters is left out rather than cut, and `sourcesTruncated` says when anything was left out. Keys with no visible column appear here too.

## Path parameters

- `id` string, required

## Response `200`

{ "lead": { …, fields, draft, research, contacts: [contact, …], contactsTruncated: false } }. Contacts are capped at 50, with contactsTruncated: true when there were more. The lead and each contact carry workflowRunId, the workflow run that created it, or null. 404 for an unknown or another account'

- object
  - `lead` object, required
    - `draft` object, nullable, required
      - `subject` string, nullable, required
      - `body` string, nullable, required
    - `research` object[], required
      - `key` string, required
      - `reasoning` string, nullable, required
      - `sources` object[], required
        - `url` string, required
        - `title` string, nullable, required
      - `sourcesTruncated` boolean, required
    - `contacts` object[], required
      - `id` string, required
      - `workflowRunId` string, nullable, required
      - `email` string
      - `name` string, nullable, required
      - `firstName` string, nullable, required
      - `title` string, nullable, required
      - `linkedinUrl` string, nullable, required
      - `photoUrl` string, nullable, required
      - `emailStatus` string, nullable, required
      - `role` 'champion' | 'economic' | 'technical' | 'user' | 'null', nullable, required
      - `isPrimary` boolean, required
      - `identityConfidence` 'confirmed' | 'possible' | 'null', nullable, required
    - `contactsTruncated` boolean, required
    - `id` string, required
    - `domain` string, required
    - `companyName` string, nullable, required
    - `status` 'bounced' | 'declined' | 'drafted' | 'partially_sent' | 'qualified' | 'replied' | 'sent', required
    - `replyKind` 'automatic' | 'human' | 'null', nullable, required
    - `declineReason` string, nullable, required
    - `score` number, nullable, required
    - `scoreReasons` string[], nullable, required
    - `vertical` string, nullable, required
    - `archetype` string, nullable, required
    - `tags` string[], required
    - `fields` object[], required
      - `key` string, required
      - `value` string, required
    - `contact` object, nullable, required
      - `name` string, nullable, required
      - `firstName` string, nullable, required
      - `title` string, nullable, required
      - `email` string, nullable, required
      - `emailStatus` string, nullable, required
      - `linkedinUrl` string, nullable, required
      - `photoUrl` string, nullable, required
    - `createdAt` number, required
    - `workflowRunId` string, nullable, required

## Other responses

- `400`: The request is malformed; the error names the problem.
- `401`: Missing, malformed, unknown or revoked token.
- `402`: `setup_pending`: the account hasn't started its trial. Finish setup with `GET /setup`.
- `403`: The token lacks the scope in `requiredScope`.
- `404`: Unknown id, or another account's id.
- `429`: Rate limited.
- `503`: Temporarily unavailable; retry the same call.

---

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