Read a lead
Returns one lead with everything held against it: its fields, including enrichment output and AI columns, plus where it sits in the pipeline. Field values are redacted on workspaces without access to lead contact data.
/campaigns.leads.getByIdAuthorization
bearerAuth Enter your MailMoo API key (format: sk_live_...)
In: header
Query Parameters
The lead to read.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$uuidResponse Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/campaigns.leads.getById?leadId=497f6eca-6276-4993-bfeb-53cbbbba6f08&input=%7B%22leadId%22%3A%223c6e2b8e-0e8f-48db-8791-27271df10113%22%7D"{}Search leads GET
Finds leads already in the workspace. Omit campaignId for the whole CRM; pass campaignId to list or search that campaign's leads. Same query, pagination, and payload either way. By default each row is identity fields, job title, Oracle score, lead-fit score, sequence status, the assigned sender on leadSequence, stage, and timestamps. Pass includeVariables for every custom and built-in variable. This does not find new people and does not enrich them.
Preview a lead selection POST
What a selection of leads contains before acting on it: the total, and breakdowns by campaign, pipeline stage, sequence status and sender. Select by explicit lead ids, or by filter: scope (one campaign, or the whole CRM) plus the same search and conditions as lead search. Changes nothing; it is a POST only so a long id list fits in the body.

