GET/campaigns/:campaignId/leads/:leadId
Return one lead. 0 credits. Rate class: global.
Same fields as the list item (including excluded, repliedAt, lastInboundMessageAt, taggedAt), plus detail-only:
| Field | Type |
|---|---|
phone | string | null |
messageSent | boolean |
headline | string | null |
companyLinkedin | string | null |
companySize | string | null |
companyCountry | string | null |
companyCity | string | null |
personalization | string | null |
custom | string | null |
custom1 … custom10 | string | null |
List responses omit these CRM/profile slots — only GET-by-id returns them. Prefer lastInboundMessageAt or GET /activity?type=reply_received for “last reply”. Message bodies are never returned.
Request
GET /campaigns/search-xyz/leads/lead_abc
X-API-Key: sk_live_...
Response
{
"id": "lead_abc",
"fullName": "Jane Doe",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@acme.com",
"companyName": "Acme Dental",
"website": "https://acme.com",
"jobTitle": null,
"location": "Austin, TX",
"tag": null,
"replied": false,
"needsReply": false,
"excluded": false,
"stage": "new",
"repliedAt": null,
"lastInboundMessageAt": null,
"taggedAt": null,
"phone": null,
"messageSent": false,
"headline": null,
"companyLinkedin": null,
"companySize": null,
"companyCountry": null,
"companyCity": null,
"personalization": null,
"custom": null,
"custom1": "VIP",
"custom2": null,
"custom3": null,
"custom4": null,
"custom5": null,
"custom6": null,
"custom7": null,
"custom8": null,
"custom9": null,
"custom10": "Q4"
}
Errors
| Error code | When |
|---|---|
not_found | Unknown campaign or lead |
Related
- List + filters/sort: GET …/leads
- Update tag / exclude / CRM: PATCH …/leads/:id
- Bulk tag/exclude/CRM: POST …/leads/batch-update
MCP
Tool: get_lead.