Hunter
MARKETING · MARKETING
Domain search, email finder and verifier, enrichment, and leads on their own key.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
hunter_delete_campaigns_by_id_recipientsWRITERemove campaign recipients.
hunter_delete_companies_by_idWRITEDelete a saved company.
hunter_delete_companies_by_id_tags_by_tag_idWRITERemove a tag from a saved company.
hunter_delete_company_lists_by_idWRITEDelete a company list.
hunter_delete_company_lists_by_id_companies_by_company_idWRITERemove a company from a company list.
hunter_delete_company_lists_by_id_favoriteWRITEUnfavorite a company list.
hunter_delete_company_lists_folders_by_idWRITEDelete a company list folder.
hunter_delete_company_tags_by_idWRITEDelete a company tag.
hunter_delete_discover_views_by_idWRITEDelete a saved discover view.
hunter_delete_leads_by_idWRITEDelete a lead.
hunter_delete_leads_by_id_tags_by_tag_idWRITERemove a tag from a lead.
hunter_delete_leads_custom_attributes_by_idWRITEDelete a lead custom attribute.
hunter_delete_leads_lists_by_idWRITEDelete a lead list.
hunter_delete_leads_lists_by_id_favoriteWRITEUnfavorite a lead list.
hunter_delete_leads_lists_folders_by_idWRITEDelete a lead list folder.
hunter_delete_message_templates_by_idWRITEDelete a message template.
hunter_delete_sequences_by_idWRITEDelete a sequence.
hunter_delete_sequences_by_id_follow_ups_by_follow_up_idWRITEDelete a sequence follow-up step.
hunter_delete_sequences_by_id_recipientsWRITERemove sequence recipients.
hunter_delete_sequences_by_sequence_id_pauseWRITEResume a paused sequence.
hunter_delete_tags_by_idWRITEDelete a lead tag.
hunter_delete_webhooksWRITEDelete webhooks by identifier (legacy).
hunter_delete_webhooks_by_idWRITEDelete a webhook.
hunter_get_accountREADGet account details and usage.
hunter_get_account_statsREADGet account profile summary.
hunter_get_campaignsREADList campaigns.
hunter_get_campaigns_by_id_follow_ups_by_follow_up_idREADGet a campaign follow-up step.
hunter_get_campaigns_by_id_recipientsREADList campaign recipients.
hunter_get_combined_findREADEnrich a person and company. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_get_companiesREADList saved companies.
hunter_get_companies_by_idREADGet a saved company.
hunter_get_companies_findREADEnrich a company. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_get_company_listsREADList company lists.
hunter_get_company_lists_by_idREADGet a company list.
hunter_get_company_lists_foldersREADList company list folders.
hunter_get_company_lists_folders_by_idREADGet a company list folder.
hunter_get_company_tagsREADList company tags.
hunter_get_company_tags_by_idREADGet a company tag.
hunter_get_connected_appsREADList connected apps.
hunter_get_connected_apps_by_idREADGet a connected app.
hunter_get_discover_peopleREADDiscover people matching filters. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_get_discover_viewsREADList saved discover views.
hunter_get_discover_views_by_idREADGet a saved discover view.
hunter_get_domain_countREADCount domains matching discovery filters. Hunter serves this operation without a credential (the contract gives it an empty security requirement), so it answers even for an account whose key is wrong; never treat a success here as proof that the connection works.
hunter_get_domain_finderREADFind the domain for a company.
hunter_get_domain_searchREADFind email addresses by domain. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_get_domains_suggestionREADSuggest domains for a company name.
hunter_get_email_accountsREADList email accounts.
hunter_get_email_accounts_by_idREADThe account's `signature` is returned HTML-sanitized (HUN-22571).
hunter_get_email_accounts_by_id_health_reportREADGet an email account health report.
hunter_get_email_accounts_by_id_sequencesREADList sequences using an email account.
hunter_get_email_accounts_by_id_usageREADGet an email account usage report.
hunter_get_email_accounts_by_id_warmup_reportREADGet an email account warmup report.
hunter_get_email_accounts_capacitiesREADGet email account sending capacities.
hunter_get_email_countREADReturn aggregate counts without revealing individual email addresses. This operation is free.
hunter_get_email_finderREADSupply a LinkedIn handle, or supply a domain/company plus either a full name or first and last name. A found email address is also saved automatically to your leads. This is enabled by default and can be disabled for your account. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_get_email_finder_foundREADFound-only variant of email finder. Supply a LinkedIn handle, or supply a domain/company plus either a full name or first and last name. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_get_email_insightREADGet deliverability insight for an email address. Hunter serves this operation without a credential (the contract gives it an empty security requirement), so it answers even for an account whose key is wrong; never treat a success here as proof that the connection works.
hunter_get_email_verifierREADCheck the deliverability of an email address. A verified email address is also saved automatically to your leads. This is enabled by default and can be disabled for your account. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_get_leadsREADEach lead carries `department` since HUN-23171. It was already a filter on this endpoint, but was never emitted, so a caller could filter on a field it could not read back.
hunter_get_leads_bulk_existREADCheck whether leads exist in bulk.
hunter_get_leads_by_idREADReturns `department` since HUN-23171. It was filterable on the collection endpoint and settable by enrichment before that, but never emitted, so a caller could filter on a field it could not read back.
hunter_get_leads_custom_attributesREADList lead custom attributes.
hunter_get_leads_custom_attributes_by_idREADGet a lead custom attribute.
hunter_get_leads_existREADCheck whether a lead exists.
hunter_get_leads_listsREADList lead lists.
hunter_get_leads_lists_by_idREADGet a lead list.
hunter_get_leads_lists_foldersREADList lead list folders.
hunter_get_leads_lists_folders_by_idREADGet a lead list folder.
hunter_get_lookalikesREADFinds companies that look like the ones in one of your company lists. The companies in the list are used as a seed, and we return the most similar companies ranked by a similarity score. This endpoint is not paginated: it returns a single ranked page of the top limit results, so the offset parameter is not supported and returns 400 if supplied. This call is free.
hunter_get_message_templatesREADList message templates.
hunter_get_message_templates_by_idREADGet a message template.
hunter_get_messagesREADList messages.
hunter_get_people_findREADEnrich a person. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_get_sequencesREADList sequences.
hunter_get_sequences_by_idREADGet a sequence.
hunter_get_sequences_by_id_follow_upsREADList sequence follow-up steps.
hunter_get_sequences_by_id_follow_ups_by_follow_up_idREADGet a sequence follow-up step.
hunter_get_sequences_by_id_recipientsREADList sequence recipients.
hunter_get_sequences_by_id_statsREADGet sequence performance stats.
hunter_get_tagsREADList lead tags.
hunter_get_tags_by_idREADGet a lead tag.
hunter_get_team_membersREADList team members.
hunter_get_usageREADGet credit usage summary.
hunter_get_usage_historyREADGet credit usage history.
hunter_get_webhooksREADList webhooks.
hunter_get_webhooks_by_idREADGet a webhook.
hunter_patch_company_lists_by_idWRITEUpdate a company list.
hunter_patch_company_lists_folders_by_idWRITEUpdate a company list folder.
hunter_patch_company_tags_by_idWRITEUpdate a company tag.
hunter_patch_email_accounts_by_idWRITEUpdate an email account.
hunter_patch_leads_by_idWRITEAccepts `department` since HUN-23171. The value is normalized to its canonical key, so a localized display label ("Sales") is stored as `sales`. Lead attributes are not modelled field-by-field in this contract yet — the response uses the generic resource envelope — so this note is where the accepted set is recorded.
hunter_patch_leads_custom_attributes_by_idWRITEUpdate a lead custom attribute.
hunter_patch_leads_lists_by_idWRITEUpdate a lead list.
hunter_patch_leads_lists_folders_by_idWRITEUpdate a lead list folder.
hunter_patch_message_templates_by_idWRITEUpdate a message template.
hunter_patch_sequences_by_idWRITEUpdate a sequence.
hunter_patch_sequences_by_id_follow_ups_by_follow_up_idWRITEUpdate a sequence follow-up step.
hunter_patch_tags_by_idWRITEUpdate a lead tag.
hunter_patch_webhooks_by_idWRITEUpdate a webhook.
hunter_post_campaigns_by_id_follow_upsWRITEAdd a campaign follow-up step.
hunter_post_campaigns_by_id_recipientsWRITEAdd campaign recipients.
hunter_post_campaigns_by_id_startWRITEStart a campaign. SENDS REAL EMAIL from a connected email account to the addresses named. There is no draft or preview step.
hunter_post_companiesWRITESave a company.
hunter_post_companies_bulk_copyWRITECopy companies to another list in bulk.
hunter_post_companies_bulk_deleteWRITEDelete companies in bulk.
hunter_post_companies_bulk_moveWRITEMove companies to another list in bulk.
hunter_post_companies_bulk_tagWRITETag companies in bulk.
hunter_post_companies_by_id_tagsWRITETag a saved company.
hunter_post_company_listsWRITECreate a company list.
hunter_post_company_lists_by_id_companiesWRITEAdd a company to a company list.
hunter_post_company_lists_by_id_favoriteWRITEFavorite a company list.
hunter_post_company_lists_foldersWRITECreate a company list folder.
hunter_post_company_tagsWRITECreate a company tag.
hunter_post_connected_apps_by_id_pushWRITEPush data to a connected app.
hunter_post_discoverWRITEFind companies matching a structured filter set. This operation is free. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_post_discover_peopleWRITEDiscover people using request-body filters. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_post_discover_viewsWRITECreate a saved discover view.
hunter_post_domain_finderWRITEFind the domain for a company via POST.
hunter_post_domain_searchWRITEUse POST for nested location filters. The body can be JSON or URL-encoded form data. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_post_email_finder_foundWRITEFound-only variant of email finder using request-body parameters. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_post_feedbackWRITESubmit product feedback.
hunter_post_leadsWRITECreates a lead, or adds an existing lead to the requested lists. When an `email` matches a lead already on your team, the request is additive: it adds only the missing list memberships and returns 201 rather than an email duplicate error. When the matched lead belongs to a teammate, the request still adds it to your lists, and the teammate's lead itself is only updated if you have permission to edit it. A request without an `email` is never matched by email — it does not reuse an existing email-less lead — though a lead with an identical name, company, and list is still rejected as a duplicate. Accepts `department` since HUN-23171, normalized to its canonical key so a localized display label ("Sales") is stored as `sales`. Lead attributes are not modelled field-by-field in this contract yet — the response uses the generic resource envelope — so this note is where the accepted set is recorded. When another request is creating leads for the team, returns 409 with `lead_creation_in_progress` and `Retry-After: 1`. Retry the request after one second.
hunter_post_leads_bulk_deleteWRITEDelete leads in bulk.
hunter_post_leads_bulk_moveWRITEMove leads to another list in bulk.
hunter_post_leads_by_id_enrichWRITEEnrich a lead. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_post_leads_by_id_tagsWRITETag a lead.
hunter_post_leads_custom_attributesWRITECreate a lead custom attribute.
hunter_post_leads_importsWRITECreates a draft leads import and returns its id, the guessed column matching, and a configuration_url. This call does not import anything: a person must open that URL in a browser and complete the mapping step before any lead is created. It is intended for clients that can hand off to a browser session, not for unattended automation. csv_data must be sent in the request body; it is rejected in the query string, where it would reach access logs verbatim.
hunter_post_leads_listsWRITECreate a lead list.
hunter_post_leads_lists_by_id_favoriteWRITEFavorite a lead list.
hunter_post_leads_lists_by_id_mergeWRITEMerge lead lists.
hunter_post_leads_lists_foldersWRITECreate a lead list folder.
hunter_post_message_templatesWRITECreate a message template.
hunter_post_messagesWRITESend a one-off message. SENDS REAL EMAIL from a connected email account to the addresses named. There is no draft or preview step.
hunter_post_multi_domain_searchWRITESearch professional email addresses across many companies at once using a structured filter set. Returns masked rows — no email address or phone number; use the reveal endpoint to unmask. This masked survey operation is free. At least one filter is required. Filters may be sent in the request body (JSON or form-encoded) or as query-string parameters; the body is therefore optional. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_post_multi_domain_search_revealWRITEReveal emails from a multi-domain search. Spends the account's monthly search or credit allowance; a Free plan has 50 searches, 50 credits and 100 verifications a month.
hunter_post_sequencesWRITECreate a sequence.
hunter_post_sequences_by_id_follow_upsWRITEAdd a sequence follow-up step.
hunter_post_sequences_by_id_recipientsWRITEAdd sequence recipients.
hunter_post_sequences_by_id_startWRITEStart a sequence. SENDS REAL EMAIL from a connected email account to the addresses named. There is no draft or preview step.
hunter_post_sequences_by_sequence_id_archiveWRITEArchive a sequence.
hunter_post_sequences_by_sequence_id_pauseWRITEPause a sequence.
hunter_post_tagsWRITECreate a lead tag.
hunter_post_webhooksWRITECreate a webhook.
hunter_put_accountWRITEUpdate account details. Changes settings for the whole Hunter account, not one record.
hunter_put_company_lists_by_idWRITEReplace a company list.
hunter_put_company_lists_folders_by_idWRITEReplace a company list folder.
hunter_put_company_tags_by_idWRITEReplace a company tag.
hunter_put_email_accounts_by_idWRITEReplace an email account.
hunter_put_leadsWRITEAccepts `department`, normalized to its canonical key so a localized display label ("Sales") is stored as `sales`. This operation keeps its own allowlist, separate from the one `createLead` uses, so the two can differ — it does not currently accept `company_type`, `lead_country_code`, `lead_city` or `lead_state`. When creating a new lead while another request is creating leads for the team, returns 409 with `lead_creation_in_progress` and `Retry-After: 1`. Retry the request after one second. Existing leads can still be updated.
hunter_put_leads_bulkWRITECreate or update up to 100 leads in one call. Each lead is matched on `email` and written in its own transaction, so one invalid lead does not cancel the others. The team's lead limit is checked for each new lead using the current committed lead count. If an item would exceed that limit, earlier successful items remain saved and that item returns a `leads_limit_reached` error. If another request is creating leads for the team, the new lead's item returns `status: failed` with error `lead_creation_in_progress` and code 409. Retry only those failed items after one second; other items still run normally. The response is always 200: read `status` and `errors` of each result to know what happened to each lead. The call is free and consumes no request.
hunter_put_leads_by_idWRITEAccepts `department` since HUN-23171. The value is normalized to its canonical key, so a localized display label ("Sales") is stored as `sales`. Lead attributes are not modelled field-by-field in this contract yet — the response uses the generic resource envelope — so this note is where the accepted set is recorded.
hunter_put_leads_custom_attributes_by_idWRITEReplace a lead custom attribute.
hunter_put_leads_lists_by_idWRITEReplace a lead list.
hunter_put_leads_lists_folders_by_idWRITEReplace a lead list folder.
hunter_put_message_templates_by_idWRITEReplace a message template.
hunter_put_sequences_by_idWRITEReplace a sequence.
hunter_put_sequences_by_id_follow_ups_by_follow_up_idWRITEReplace a sequence follow-up step.
hunter_put_tags_by_idWRITEReplace a lead tag.
hunter_put_webhooks_by_idWRITEReplace a webhook.
Often connected alongside
Put Hunter behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.