---
title: "Get Project Inbox Lead"
method: GET
path: "/api/app-auto-gtm/projects/{project_id}/inbox/lead/{person_id}"
tags: ["AppAutoGtm"]
---

# Get Project Inbox Lead

`GET /api/app-auto-gtm/projects/{project_id}/inbox/lead/{person_id}`

Lead dossier for the inbox right pane (T-446): the lead's person +
company snapshot (from ``agent_lead.raw_person`` / ``raw_company``)
plus a cached one-line "why this lead fits" verdict.

Response shape is a FROZEN contract the frontend codes against —
coordinate any change with it. 404 when the lead doesn't exist or
doesn't belong to one of this project's campaigns (segments).

``why_fits`` is generated on first read (bounded LLM call; see
``lead_dossier.ensure_why_fits``) and cached on the row — this endpoint
never 500s on an LLM failure, it just returns ``why_fits: null``.

## Path parameters

- `project_id` integer, required
- `person_id` string, required

## Cookies

- `ex_access` string, nullable
- `ex_org` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

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