Tools

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.

ToolWhat it doesCost
leads_search_companiesSearch companiesFrom 10 credits
leads_get_companyGet a company profileFrom 10 credits
leads_search_peopleSearch peopleFrom 1 credit
leads_get_personGet a person profileFrom 10 credits
leads_get_emailFind a person's work emailFrom 6 credits
leads_get_email_statusVerify an email addressFrom 1 credit
leads_get_domain_emailsGet a domain's email addressesFrom 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.

ParameterDefault and notes
nameOptional
keywords[]Optional
industries[]Optional
locations[]Optional
employee_ranges[]"min,max"
limit100

Note: At least one of them.

Also takes cursor, provider, max_credits, dry_run: see common parameters.

JSON
{
  "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.

ParameterDefault and notes
domainRequired

Also takes provider, max_credits, dry_run: see common parameters.

JSON
{
  "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.

ParameterDefault and notes
titles[]Optional
seniority[]Junior | senior | executive
company_domains[]Optional
industries[]Optional
locations[]Optional
keywordsOptional
limit100

Note: At least one of them.

Also takes cursor, provider, max_credits, dry_run: see common parameters.

JSON
{
  "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.

ParameterDefault and notes
id or first_name + last_name + domain or linkedin_urlid: from leads_search_people

Also takes provider, max_credits, dry_run: see common parameters.

JSON
{
  "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.

ParameterDefault and notes
id or first_name + last_name + domainid: a person id, which also fills the name and domain

Also takes provider, max_credits, dry_run: see common parameters.

JSON
{
  "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.

ParameterDefault and notes
emailRequired

Also takes provider, max_credits, dry_run: see common parameters.

JSON
{
  "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.

ParameterDefault 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
limit30 per domain, cap 100

Also takes cursor, provider, max_credits, dry_run: see common parameters.

JSON
{
  "domains": [
    "example.com"
  ],
  "department": [
    "marketing",
    "communication"
  ],
  "type": "all"
}