Read a record and reveal contact details

Fetch one record, see what is masked, and reveal the contact details for one credit.

GuideDeveloperChecked 2026-10-10

GET /market/catalog/lead/{lead_id} returns one record. Contact details are null until you reveal it with POST /market/leads/{lead_id}/reveal.

Read a record

GET /market/catalog/lead/mkt_sample0001
Authorization: Bearer <sign-in token>

The reply holds the same fields as a search row, plus:

Field Meaning
contact null until revealed. After a reveal it holds the emails, phones, website and address
people Directors and other people, with masked contact until revealed
primary_contact The person most likely to be the main contact
proof The proof state the app draws as a label
provenance Per field, how settled it is and when it last changed. Never where it came from

A record in the book can always be viewed, even if it is thin. A missing id gives 404 {"detail":"Lead not found"}.

Reveal

POST /market/leads/mkt_sample0001/reveal
Authorization: Bearer <sign-in token>
{
  "ok": true,
  "credits_spent": 1,
  "credit_balance": 24,
  "contact": {"email": "hello@marshandkeel.example", "phone": "+44 114 496 0123", "website": "marshandkeel.example"}
}

Sample values, cut down: the real block also holds emails, phones, addresses, director_email, socials, company_number and more. A new reveal costs one credit. Revealing a record you already revealed returns credits_spent: 0. With no credit left the answer is 402 with {"detail":{"detail":"insufficient_credits","credit_balance":0,"needed":1}}. A person who has asked to be removed is blanked, and the reveal fails closed rather than showing them.

GET /market/reveals?page=1&page_size=50 lists what you have revealed (page size up to 200).

Route Returns
GET /market/catalog/organisation/{domain}/people People at a business
GET /market/catalog/organisation/{domain}/locations Other sites on the same website
POST /market/leads/{lead_id}/enrich Starts a fresh look at one record. Once per record every 30 minutes, 50 a day per person, three running at once for everyone
GET /market/leads/{lead_id}/enrich The state: never, running, done or failed, with how many fields changed