Hunter Discover API
Returns companies matching a set of criteria using natural language queries or robust filters to find companies aligned with your ideal customer profile.
Returns companies matching a set of criteria using natural language queries or robust filters to find companies aligned with your ideal customer profile.
openapi: 3.1.0
info:
title: Hunter API
description: >-
Hunter is an email finding and verification service that helps find
professional email addresses associated with a domain and verify email
deliverability. The API provides domain search, email finder, email
verifier, email count, account information, leads management, leads
lists, campaigns, discover, enrichment, and logo retrieval capabilities.
version: 2.0.0
termsOfService: https://hunter.io/terms
contact:
name: Hunter Support
url: https://hunter.io/contact
email: [email protected]
license:
name: Proprietary
url: https://hunter.io/terms
servers:
- url: https://api.hunter.io/v2
description: Hunter API v2 Production
security:
- apiKeyQuery: []
- apiKeyHeader: []
- bearerAuth: []
tags:
- name: Account
description: Retrieve account information and usage statistics.
- name: Campaigns
description: Manage email sequences and recipients.
- name: Combined Enrichment
description: Merge person and company enrichment for a single email address.
- name: Company Enrichment
description: Enrich company information linked to a domain name.
- name: Discover
description: Find companies matching criteria using natural language or filters.
- name: Domain Search
description: Search for email addresses associated with a domain.
- name: Email Count
description: Count email addresses found for a domain.
- name: Email Enrichment
description: Enrich personal information linked to an email or LinkedIn profile.
- name: Email Finder
description: Find the most likely email address for a person at a company.
- name: Email Verifier
description: Verify the deliverability of an email address.
- name: Leads
description: Manage leads stored in Hunter.
- name: Leads Lists
description: Manage leads list collections in Hunter.
paths:
/domain-search:
get:
operationId: domainSearch
summary: Hunter Domain Search
description: >-
Returns all the email addresses found using a given domain name,
with sources. You must provide either a domain or a company name.
tags:
- Domain Search
parameters:
- name: domain
in: query
description: >-
Domain name from which you want to find the email addresses.
Required if company is not provided.
schema:
type: string
example: stripe.com
- name: company
in: query
description: >-
Company name from which you want to find the email addresses.
Required if domain is not provided.
schema:
type: string
example: Stripe
- name: limit
in: query
description: Maximum number of email addresses to return. Default is 10.
schema:
type: integer
default: 10
- name: offset
in: query
description: Number of email addresses to skip for pagination. Default is 0.
schema:
type: integer
default: 0
- name: type
in: query
description: Filter by email address type.
schema:
type: string
enum:
- personal
- generic
- name: seniority
in: query
description: Filter by seniority level.
schema:
type: string
enum:
- junior
- senior
- executive
- name: department
in: query
description: Filter by department.
schema:
type: string
- name: verification_status
in: query
description: Filter by verification status.
schema:
type: string
enum:
- valid
- accept_all
- unknown
responses:
'200':
description: Successful domain search response.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/DomainSearchResult'
meta:
$ref: '#/components/schemas/PaginationMeta'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/email-finder:
get:
operationId: emailFinder
summary: Hunter Email Finder
description: >-
Finds the most likely email address from a domain name, a first
name and a last name. You must provide a domain or company, and
a name (first/last or full) or LinkedIn handle.
tags:
- Email Finder
parameters:
- name: domain
in: query
description: Domain name of the company. Required if company is not provided.
schema:
type: string
example: stripe.com
- name: company
in: query
description: Company name. Required if domain is not provided.
schema:
type: string
- name: first_name
in: query
description: First name of the person. Required with last_name if full_name not provided.
schema:
type: string
example: John
- name: last_name
in: query
description: Last name of the person. Required with first_name if full_name not provided.
schema:
type: string
example: Collison
- name: full_name
in: query
description: Full name of the person. Required if first_name and last_name not provided.
schema:
type: string
- name: linkedin_handle
in: query
description: LinkedIn profile handle for the person.
schema:
type: string
- name: max_duration
in: query
description: Maximum duration for the request in seconds. Between 3 and 20, default is 10.
schema:
type: integer
minimum: 3
maximum: 20
default: 10
responses:
'200':
description: Successful email finder response.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/EmailFinderResult'
meta:
$ref: '#/components/schemas/Meta'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/email-verifier:
get:
operationId: emailVerifier
summary: Hunter Email Verifier
description: Verifies the deliverability of a given email address.
tags:
- Email Verifier
parameters:
- name: email
in: query
required: true
description: The email address to verify.
schema:
type: string
format: email
example: [email protected]
responses:
'200':
description: Successful email verification response.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/EmailVerifierResult'
meta:
$ref: '#/components/schemas/Meta'
'202':
description: Verification in progress. Retry the request later.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/EmailVerifierResult'
meta:
$ref: '#/components/schemas/Meta'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/email-count:
get:
operationId: emailCount
summary: Hunter Email Count
description: >-
Returns the number of email addresses found for a given domain
or company, broken down by type, department, and seniority.
tags:
- Email Count
parameters:
- name: domain
in: query
description: Domain name to count emails for. Required if company is not provided.
schema:
type: string
example: stripe.com
- name: company
in: query
description: Company name to count emails for. Required if domain is not provided.
schema:
type: string
- name: type
in: query
description: Filter count by email type.
schema:
type: string
enum:
- personal
- generic
responses:
'200':
description: Successful email count response.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/EmailCountResult'
meta:
$ref: '#/components/schemas/Meta'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/account:
get:
operationId: getAccount
summary: Hunter Account Information
description: >-
Returns information about the Hunter account associated with the
API key, including usage statistics and plan details. This call
is free and does not count toward usage limits.
tags:
- Account
responses:
'200':
description: Successful account information response.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/AccountResult'
'401':
$ref: '#/components/responses/Unauthorized'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/leads:
get:
operationId: listLeads
summary: Hunter List Leads
description: Returns all the leads saved in your account.
tags:
- Leads
parameters:
- name: limit
in: query
description: Maximum number of leads to return. Default is 20, max is 100.
schema:
type: integer
default: 20
maximum: 100
- name: offset
in: query
description: Number of leads to skip for pagination.
schema:
type: integer
default: 0
- name: leads_list_id
in: query
description: Filter leads by list identifier.
schema:
type: integer
- name: first_name
in: query
description: Filter by first name.
schema:
type: string
- name: last_name
in: query
description: Filter by last name.
schema:
type: string
- name: email
in: query
description: Filter by email address.
schema:
type: string
- name: company
in: query
description: Filter by company name.
schema:
type: string
- name: phone_number
in: query
description: Filter by phone number.
schema:
type: string
- name: twitter
in: query
description: Filter by Twitter handle.
schema:
type: string
responses:
'200':
description: Successful leads list response.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
leads:
type: array
items:
$ref: '#/components/schemas/Lead'
meta:
$ref: '#/components/schemas/PaginationMeta'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createLead
summary: Hunter Create Lead
description: Creates a new lead in your Hunter account.
tags:
- Leads
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LeadInput'
responses:
'201':
description: Lead created successfully.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Lead'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
operationId: upsertLead
summary: Hunter Create or Update Lead
description: >-
Creates a new lead or updates an existing one if a lead with the
same email address already exists in the specified list.
tags:
- Leads
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LeadInput'
responses:
'200':
description: Lead updated successfully.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Lead'
'201':
description: Lead created successfully.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Lead'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/leads/{id}:
get:
operationId: getLead
summary: Hunter Get Lead
description: Retrieves a single lead by its identifier.
tags:
- Leads
parameters:
- $ref: '#/components/parameters/LeadId'
responses:
'200':
description: Successful lead retrieval.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Lead'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
operationId: updateLead
summary: Hunter Update Lead
description: Updates an existing lead by its identifier.
tags:
- Leads
parameters:
- $ref: '#/components/parameters/LeadId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LeadInput'
responses:
'200':
description: Lead updated successfully.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Lead'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteLead
summary: Hunter Delete Lead
description: Deletes a lead by its identifier.
tags:
- Leads
parameters:
- $ref: '#/components/parameters/LeadId'
responses:
'204':
description: Lead deleted successfully.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/leads_lists:
get:
operationId: listLeadsLists
summary: Hunter List Leads Lists
description: Returns all the leads lists saved in your account.
tags:
- Leads Lists
parameters:
- name: limit
in: query
description: Maximum number of lists to return. Default is 20, max is 100.
schema:
type: integer
default: 20
maximum: 100
- name: offset
in: query
description: Number of lists to skip for pagination.
schema:
type: integer
default: 0
responses:
'200':
description: Successful leads lists response.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
leads_lists:
type: array
items:
$ref: '#/components/schemas/LeadsList'
meta:
$ref: '#/components/schemas/PaginationMeta'
'401':
$ref: '#/components/responses/Unauthorized'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createLeadsList
summary: Hunter Create Leads List
description: Creates a new leads list.
tags:
- Leads Lists
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
description: The name of the leads list.
responses:
'201':
description: Leads list created successfully.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/LeadsList'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/leads_lists/{id}:
get:
operationId: getLeadsList
summary: Hunter Get Leads List
description: Retrieves a single leads list by its identifier.
tags:
- Leads Lists
parameters:
- $ref: '#/components/parameters/LeadsListId'
responses:
'200':
description: Successful leads list retrieval.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/LeadsList'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
operationId: updateLeadsList
summary: Hunter Update Leads List
description: Updates an existing leads list by its identifier.
tags:
- Leads Lists
parameters:
- $ref: '#/components/parameters/LeadsListId'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
description: The new name for the leads list.
responses:
'200':
description: Leads list updated successfully.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/LeadsList'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteLeadsList
summary: Hunter Delete Leads List
description: Deletes a leads list by its identifier.
tags:
- Leads Lists
parameters:
- $ref: '#/components/parameters/LeadsListId'
responses:
'204':
description: Leads list deleted successfully.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/campaigns:
get:
operationId: listCampaigns
summary: Hunter List Campaigns
description: Returns all the email sequences (campaigns) in your account.
tags:
- Campaigns
parameters:
- name: limit
in: query
description: Maximum number of campaigns to return. Default is 20, max is 100.
schema:
type: integer
default: 20
maximum: 100
- name: offset
in: query
description: Number of campaigns to skip for pagination.
schema:
type: integer
default: 0
- name: started
in: query
description: Filter by whether the campaign has been started.
schema:
type: boolean
- name: archived
in: query
description: Filter by whether the campaign has been archived.
schema:
type: boolean
responses:
'200':
description: Successful campaigns list response.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
campaigns:
type: array
items:
$ref: '#/components/schemas/Campaign'
meta:
$ref: '#/components/schemas/PaginationMeta'
'401':
$ref: '#/components/responses/Unauthorized'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/campaigns/{id}/recipients:
get:
operationId: listCampaignRecipients
summary: Hunter List Campaign Recipients
description: Returns the recipients for a given campaign.
tags:
- Campaigns
parameters:
- $ref: '#/components/parameters/CampaignId'
- name: limit
in: query
description: Maximum number of recipients to return.
schema:
type: integer
default: 20
maximum: 100
- name: offset
in: query
description: Number of recipients to skip for pagination.
schema:
type: integer
default: 0
responses:
'200':
description: Successful campaign recipients response.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
recipients:
type: array
items:
$ref: '#/components/schemas/CampaignRecipient'
meta:
$ref: '#/components/schemas/PaginationMeta'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: addCampaignRecipients
summary: Hunter Add Campaign Recipients
description: Adds recipients to a campaign using email addresses or lead identifiers.
tags:
- Campaigns
parameters:
- $ref: '#/components/parameters/CampaignId'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
emails:
oneOf:
- type: string
- type: array
items:
type: string
description: Email address or array of email addresses to add.
lead_ids:
type: array
items:
type: integer
description: Array of lead identifiers to add as recipients.
responses:
'201':
description: Recipients added successfully.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: cancelCampaignRecipients
summary: Hunter Cancel Campaign Recipients
description: Cancels all scheduled emails for the specified recipients.
tags:
- Campaigns
parameters:
- $ref: '#/components/parameters/CampaignId'
requestBody:
content:
application/json:
schema:
type: object
properties:
emails:
oneOf:
- type: string
- type: array
items:
type: string
description: Email address or array of email addresses to cancel.
responses:
'204':
description: Scheduled emails cancelled successfully.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/campaigns/{id}/start:
post:
operationId: startCampaign
summary: Hunter Start Campaign
description: Starts an email sequence for the campaign.
tags:
- Campaigns
parameters:
- $ref: '#/components/parameters/CampaignId'
responses:
'200':
description: Campaign started successfully.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/discover:
post:
operationId: discover
summary: Hunter Discover Companies
description: >-
Returns companies matching a set of criteria using natural language
queries or robust filters to find companies aligned with your ideal
customer profile.
tags:
- Discover
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DiscoverRequest'
responses:
'200':
description: Successful discover response.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/DiscoverResult'
filters:
type: object
description: Applied filters for pagination context.
meta:
$ref: '#/components/schemas/PaginationMeta'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/people/find:
get:
operationId: emailEnrichment
summary: Hunter Email Enrichment
description: >-
Returns comprehensive personal information linked to an email
address or LinkedIn profile. Provides enriched data points about
the person including employment, social profiles, and location.
tags:
- Email Enrichment
parameters:
- name: email
in: query
description: Email address to enrich. Required if linkedin_handle is not provided.
schema:
type: string
format: email
- name: linkedin_handle
in: query
description: LinkedIn profile handle. Required if email is not provided.
schema:
type: string
- name: clearbit_format
in: query
description: Format response to match the Clearbit schema.
schema:
type: boolean
responses:
'200':
description: Successful email enrichment response.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PersonEnrichment'
meta:
$ref: '#/components/schemas/Meta'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
'451':
$ref: '#/components/responses/UnavailableForLegalReasons'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/companies/find:
get:
operationId: companyEnrichment
summary: Hunter Company Enrichment
description: >-
Returns detailed organizational data associated with a domain
name, including company size, industry, location, and other
firmographic information.
tags:
- Company Enrichment
parameters:
- name: domain
in: query
required: true
description: Domain name of the company to enrich.
schema:
type: string
example: stripe.com
- name: clearbit_format
in: query
description: Format response to match the Clearbit schema.
schema:
type: boolean
responses:
'200':
description: Successful company enrichment response.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/CompanyEnrichment'
meta:
$ref: '#/components/schemas/Meta'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/combined/find:
get:
operationId: combinedEnrichment
summary: Hunter Combined Enrichment
description: >-
Merges person and company information for a single email address,
returning enriched records combining both datasets.
tags:
- Combined Enrichment
parameters:
- name
# --- truncated at 32 KB (73 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hunter/refs/heads/main/openapi/hunter-api-openapi.yml