Reference · Tools
Hunter
Find and verify professional email addresses using the Hunter.io API.
The Hunter node finds and verifies professional email addresses: search a domain for the addresses it hosts, find one person's address from their name and company domain, or verify whether an address is deliverable. A typical build is verifying every address on an imported list before a campaign, so bounces never reach the send.
- Node type
- Action
- Parameters
- 11
- Outputs
- Output, Error
- Credentials
- Hunter API
Hunter
Find and verify professional email addresses for lead generation and sales outreach.
Overview
Hunter.io is an email intelligence platform. This tool supports three operations: (1) Domain Search — find all email addresses associated with a domain, with filtering by type, seniority, and department, (2) Email Finder — generate or retrieve the most likely email for a person given domain, first name, and last name, and (3) Email Verifier — check the deliverability of an email address.
Category: Sales
Tool Name: hunter
Version: 1
Appearance: Icon: lucide-Search | Color: #FF7A59
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Hunter API credentials. See the Credentials Guide for setup instructions.
Operations
| Operation | Value | Description |
|---|---|---|
| Domain Search | domainSearch | Get every email address found on the internet using a given domain name, with sources. |
| Email Finder | emailFinder | Generate or retrieve the most likely email address from a domain name, a first name and a last name. |
| Email Verifier | emailVerifier | Verify the deliverability of an email address. |
Parameters
Domain Search (domainSearch)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Domain | string | Yes | — | Domain name from which you want to find the email addresses. For example, “stripe.com”. |
| Only Emails | boolean | No | true | Whether to return only the found emails. |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 100 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the search before results are returned. |
| — Type | options | No | — | Restrict results to personal or generic addresses. |
Options: personal, generic | ||||
| — Seniority | multiOptions | No | [] | Restrict results to the selected seniority levels. |
Options: junior, senior, executive | ||||
| — Department | multiOptions | No | [] | Restrict results to the selected departments. |
Options: communication, executive, finance, hr, it, legal, management, marketing, sales, support |
Email Finder (emailFinder)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Domain | string | Yes | — | Domain name from which you want to find the email addresses. For example, “stripe.com”. |
| First Name | string | Yes | — | The person’s first name. It doesn’t need to be in lowercase. |
| Last Name | string | Yes | — | The person’s last name. It doesn’t need to be in lowercase. |
Email Verifier (emailVerifier)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
string | Yes | — | The email address you want to verify. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
Hunter’s response is merged onto the input item’s JSON in every operation — your existing fields survive and Hunter’s fields are added alongside them, overwriting any key of the same name. Binary data on the input item is forwarded.
How many items come out depends on the operation, and on Only Emails:
| Operation | Output items per input item |
|---|---|
domainSearch with Only Emails on (the default) | One per email address found — a single input item fans out into many, each carrying one address record. |
domainSearch with Only Emails off | One — the whole domain record, addresses included as a nested array. |
emailFinder | One — the single best-guess address record. |
emailVerifier | One — the verification record for that address. |
Return All changes how much is fetched, not the shape: on, Hunter is paged through until every result is collected; off, one page of up to Limit results is fetched. With Return All on and Only Emails off, the addresses from every page are concatenated into the single output item.
A Domain Search in fan-out mode that found nothing still produces one item, carrying your original JSON plus a marker:
{
"_noResults": true
}
Test for {{ $json._noResults }} before treating that branch as results. The other operations have no such marker — an unmatched lookup simply adds no fields, so check for a field you expect instead.
The fields themselves are whatever Hunter returns for the lookup; the node does not rename, nest or filter them. Reference them downstream by expression, e.g. {{ $json.value }}.
Usage Examples
- Find all email addresses for a company domain
- Look up the email address for a specific person at a company
- Verify whether an email address is deliverable
- Search for executive-level emails at a domain
- Filter domain emails by department (sales, marketing, etc.)
Example Configuration
Find every address on a domain, one item per address:
{
"type": "hunter",
"parameters": {
"operation": "domainSearch",
"domain": "{{ $json.domain }}",
"onlyEmails": true,
"returnAll": true,
"maxConcurrency": 5
}
}
Pull only senior and executive sales or marketing contacts, capped at 50:
{
"type": "hunter",
"parameters": {
"operation": "domainSearch",
"domain": "{{ $json.domain }}",
"onlyEmails": true,
"returnAll": false,
"limit": 50,
"filters": {
"type": "personal",
"seniority": ["senior", "executive"],
"department": ["sales", "marketing"]
}
}
}
Keep the full domain record instead of fanning out:
{
"type": "hunter",
"parameters": {
"operation": "domainSearch",
"domain": "{{ $json.domain }}",
"onlyEmails": false,
"returnAll": false,
"limit": 100
}
}
Guess one person’s address from their name and employer:
{
"type": "hunter",
"parameters": {
"operation": "emailFinder",
"domain": "{{ $json.companyDomain }}",
"firstname": "{{ $json.firstName }}",
"lastname": "{{ $json.lastName }}"
}
}
Check deliverability before adding an address to a send list:
{
"type": "hunter",
"parameters": {
"operation": "emailVerifier",
"email": "{{ $json.email }}",
"maxConcurrency": 20
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Find and verify professional email addresses — search domains for emails, find specific people’s addresses, or verify deliverability via the Hunter.io API.
Parameter Dependencies
- Domain Search Operation: Requires
domain. Can optionally useonlyEmails,returnAll,limit(only whenreturnAllis false), andfilters - Email Finder Operation: Requires
domain,firstname, andlastname - Email Verifier Operation: Requires
email - Filters: When used,
typeaccepts “personal” or “generic”, whileseniorityanddepartmentaccept arrays of predefined values
Frequently asked questions
What does each operation require?
Domain Search needs a domain. Email Finder needs domain, first name and last name. Email Verifier needs the email address. The editor shows only the fields that apply to the operation selected.
When does the Limit field appear?
On Domain Search, and only when Return All is off. With Return All on the node fetches everything and there is nothing to limit.
How do the filters work?
On Domain Search, Type accepts personal or generic, while Seniority and Department accept arrays of predefined values — useful for narrowing a large domain to decision-makers.
Can I use it to clean an existing list?
Yes — Email Verifier is designed for exactly that, checking deliverability address by address so you can drop the risky ones before sending.
Build with the Hunter node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Hunter API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.