People and company tools
People and companies, and finding and verifying work emails. Every reveal is charged.
Companies and people from Apollo, and work emails found and checked. A domain's addresses come from Hunter. One person's email comes from a waterfall of Findymail, Hunter and Icypeas, and Icypeas verifies it.
Person records never carry an email. There are two ways to get one: leads_get_email for one person, and leads_get_domain_emails for a domain. An email search that finds nothing costs 1 credit, not the full price.
For a target list: leads_search_companies, then leads_search_people by title, then leads_get_email for each person worth contacting.
| Tool | What it does | Cost |
|---|---|---|
leads_search_companies | Search companies | From 10 credits |
leads_get_company | Get a company profile | From 10 credits |
leads_search_people | Search people | From 1 credit |
leads_get_person | Get a person profile | From 10 credits |
leads_get_email | Find a person's work email | From 6 credits |
leads_get_email_status | Verify an email address | From 1 credit |
leads_get_domain_emails | Get a domain's email addresses | From 2 credits |
#Search companies
leads_search_companies
Companies matching a name, keywords, location or headcount, as stubs.
Use when: "find fintech companies in London with 50 to 200 staff", "companies that do X", building an account list by firmographics.
Not for: one known company, use leads_get_company (by domain). People at companies, use leads_search_people. A site's traffic, use seo_get_domain_overview.
Returns: List. rows[]: id, name, domain, website, linkedin_url, founded_year; industry, employees and location are null on a search and filled by leads_get_company. rows_available is the provider's total.
Cost: 10 credits per page of 100. Default 10 credits. Cached 30 days.
| Parameter | Default and notes |
|---|---|
name | Optional |
keywords[] | Optional |
industries[] | Optional |
locations[] | Optional |
employee_ranges[] | "min,max" |
limit | 100 |
Note: At least one of them.
Also takes cursor, provider, max_credits, dry_run: see common parameters.
{
"keywords": [
"payments"
],
"locations": [
"London"
],
"employee_ranges": [
"51,200"
]
}#Get a company profile
leads_get_company
The full firmographic record of one company, by domain.
Use when: "tell me about acme.com", sizing a company, the industry, revenue and funding stage behind a domain, filling in a search stub.
Not for: search traffic and rankings, use seo_get_domain_overview. Who works there, use leads_search_people. Email addresses, use leads_get_domain_emails.
Returns: Record. id, name, domain, website, linkedin_url, industry, industries[], employees, location, founded_year, description, keywords[], revenue (USD), total_funding (USD), funding_stage, technologies[], phone, ticker. null = the provider does not hold it. NoData when the provider does not know the domain.
Cost: 10 credits, 1 on NoData. Cached 30 days.
| Parameter | Default and notes |
|---|---|
domain | Required |
Also takes provider, max_credits, dry_run: see common parameters.
{
"domain": "acme.com"
}#Search people
leads_search_people
People matching title, seniority and company filters, as stubs. No email.
Use when: "find heads of marketing at fintech startups", building a target list by role, prospecting by ICP.
Not for: someone to email at a specific website about a link, use leads_get_domain_emails (keyed by domain). One person's full record, use leads_get_person. An email for a named person, use leads_get_email.
Returns: List. rows[]: id, first_name, last_name (masked on a search; leads_get_person reveals it), title, company, has_email (leads_get_email can reveal it). seniority, company_domain, location and linkedin_url are null on a search and filled by leads_get_person. rows_available is the provider's total.
Cost: 1 credit per page of 100. Default 1 credit. Cached 7 days.
| Parameter | Default and notes |
|---|---|
titles[] | Optional |
seniority[] | Junior | senior | executive |
company_domains[] | Optional |
industries[] | Optional |
locations[] | Optional |
keywords | Optional |
limit | 100 |
Note: At least one of them.
Also takes cursor, provider, max_credits, dry_run: see common parameters.
{
"titles": [
"head of marketing"
],
"industries": [
"fintech"
],
"locations": [
"London"
],
"limit": 50
}#Get a person profile
leads_get_person
The full record of one person: real name, title, seniority, company, location, LinkedIn and employment history. No email.
Use when: filling in a search stub by id, "who is the head of growth at acme.com", checking a person's current role before outreach.
Not for: the email, use leads_get_email (the paid reveal). Many people at once, use leads_search_people.
Returns: Record. id, first_name, last_name, title, seniority, company, company_domain, company_id, company_linkedin_url, location, linkedin_url, headline, has_email, employment_history[] (company, title, start, end, current). NoData when nobody matches.
Cost: 10 credits when matched, 1 on NoData. Cached 30 days.
| Parameter | Default and notes |
|---|---|
id or first_name + last_name + domain or linkedin_url | id: from leads_search_people |
Also takes provider, max_credits, dry_run: see common parameters.
{
"first_name": "Jordan",
"last_name": "Blake",
"domain": "northstaranalytics.io"
}#Find a person's work email
leads_get_email
Find and verify the work email of one named person. The only paid reveal keyed by a person; it runs a waterfall of sources and stops at the first verified hit.
Use when: you have a person and their company and need an address to send to, "get me the email of Jordan Blake at acme.com", after leads_search_people showed has_email.
Not for: anyone at a website (no name), use leads_get_domain_emails. Checking an address you already hold, use leads_get_email_status. The person's role and history, use leads_get_person.
Returns: Record. first_name, last_name, domain, email, confidence (0 to 100 or null), verification_status (valid | accept_all | invalid | unknown), found_by (the source that hit). NoData when no source finds one; do not retry.
Cost: 6 credits on a hit, 1 on NoData. Cached 90 days.
| Parameter | Default and notes |
|---|---|
id or first_name + last_name + domain | id: a person id, which also fills the name and domain |
Also takes provider, max_credits, dry_run: see common parameters.
{
"first_name": "Jordan",
"last_name": "Blake",
"domain": "acme.com"
}#Verify an email address
leads_get_email_status
Whether an email address the user already has will deliver.
Use when: "is jane@acme.com still valid", cleaning a list before a send, checking a shortlist from leads_get_domain_emails.
Not for: finding an address, use leads_get_email or leads_get_domain_emails.
Returns: Record. email, status (valid | invalid | accept_all | unknown; accept_all means the server takes anything, so the address is unproven), result (deliverable | undeliverable | risky | unknown), score (0 to 100), disposable, webmail, mx_records, smtp_check. null = the verifier does not report it.
Cost: 1 credit. Cached 30 days.
| Parameter | Default and notes |
|---|---|
email | Required |
Also takes provider, max_credits, dry_run: see common parameters.
{
"email": "jane@acme.com"
}#Get a domain's email addresses
leads_get_domain_emails
Email addresses known for a website's domain, with name, role, confidence and where each was seen. The contact-finding tool for link outreach.
Use when: "find someone to email at these sites about a backlink", "who runs content at example.com", "get contacts for the referring domains of X".
Not for: one named person, use leads_get_email. People by title across many companies, use leads_search_people. Checking an address works, use leads_get_email_status. Choosing which sites to contact, use seo_get_referring_domains, seo_get_backlinks, seo_get_domain_ratings.
Returns: List, highest confidence first. rows[]: domain, email, first_name, last_name, position, department, seniority, type (personal | generic), confidence (0 to 100), verification_status, sources[] (url, last_seen_at; empty = inferred from the domain's pattern), linkedin_url. domains[]: domain, pattern (the address format, for example {first}.{last}), organization, rows_available. errors[] lists domains that failed. Addresses come back unverified for the most part; verify the shortlist with leads_get_email_status, not the whole list.
Cost: 2 credits per domain + 6 per 10 addresses returned. Default one domain with 30 addresses = 20 credits. Cached 30 days.
| Parameter | Default and notes |
|---|---|
domains[] | Required, max 20 |
department[] | All; outreach usually wants editorial, marketing, communication |
seniority[] | All |
type | "all"; generic means role addresses such as press@, often the only working one on a small site |
limit | 30 per domain, cap 100 |
Also takes cursor, provider, max_credits, dry_run: see common parameters.
{
"domains": [
"example.com"
],
"department": [
"marketing",
"communication"
],
"type": "all"
}