Skip to main content
POST
Reveal Contact
Requires the Hiring Manager API add-on, the same one as the Hiring Manager Contacts API. Add it under Settings → Subscriptions; keys without it receive 403 with X-Billing-Code: feature_missing.
Pricing. Settled when the task finishes: $0.05** if a work email was found (`m_contact_email_reveals`), **$0.40 if a phone number was found (m_contact_phone_reveals). Nothing is charged when nothing is found. Charged at a usage threshold or at the end of your billing month, whichever comes first, on the same schedule as the Hiring Manager Contacts API. If your last Hiring Manager charge failed, new requests get 402 with "code": "payment_failed" until the payment goes through.
Turn a contact you already have (for example a row from a contacts result, or someone you found yourself) into a way to reach them. Submit the LinkedIn profile, then poll Task Status.

Request Body

string
required
The contact’s LinkedIn profile URL (linkedin.com/in/...), e.g. profile_url from a contacts result.
string
The contact’s name. Improves matching.
boolean
default:"true"
Return the work email when one is found.
boolean
default:"false"
Return a direct phone number (mobile preferred) when one is found. Typically adds one to three minutes. At least one of reveal_email / reveal_phone must be true.

Response

A task object (type: "enrich_contact"). When state is "finished", result holds:
string
string | null
string
string | null
string | null
Work email, when reveal_email was set and one was found.
string | null
e.g. verified, likely, unavailable.
string | null
E.164, mobile preferred, when reveal_phone was set and one was found.
object[] | null
Every number found: sanitized_number, type, status.
object
{ "email": 0 | 1, "phone": 0 | 1 } - what was found and billed.

Example

cURL
Result (task.result when finished)
A task that ends "failed" with a “not found” error means no matching business profile exists for that LinkedIn URL; it is not charged. Personal emails and numbers are never returned.