---
title: Hunter API Integration on Truto
slug: hunter
category: Sales Intelligence
canonical: "https://truto.one/integrations/detail/hunter/"
---

# Hunter API Integration on Truto



**Category:** Sales Intelligence  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 153 tools for Hunter that AI agents can call directly.

- **create_a_hunter_discover** — Find Hunter companies matching a structured filter set. Returns the matching-company object with content-type-specific attributes. This operation is free. Requires a structured filter set.
- **list_all_hunter_domain_searches** — Find email addresses and the people behind them for a Hunter-indexed company domain. Returns a list of contacts (each with email, name, position, seniority, department, and confidence) plus the queried domain, organization, and meta block.
- **hunter_domains_search** — Search Hunter for email addresses published for a company domain by sending a JSON or form-encoded request body (the POST form is required to use nested location filters). Returns the discovered data: emails with names, positions, and confidence scores alongside the public sources where they were found. The source for this endpoint documents the…
- **list_all_hunter_email_finders** — Find a professional email address in Hunter by combining a LinkedIn handle, or by combining a domain or company with a full name (or first and last name). Returns the best matching email and its supporting sources. Supply either a `linkedin_handle` or a domain/company plus a name; `max_duration` optionally controls how long the lookup runs (3-20,…
- **list_all_hunter_email_verifiers** — Verify an email address deliverability in Hunter. Returns a verification result wrapped in a `data` field containing the deliverability status and verification checks (a `valid` or `accept_all` result is also auto-saved to leads unless disabled for the account). Required: email.
- **list_all_hunter_email_counts** — Get aggregate email-address counts indexed by Hunter for a Hunter domain (or company when the domain is unknown). Returns: total, personal_emails, generic_emails, department, seniority, job_titles. Requires domain.
- **list_all_hunter_people_finds** — Enrich a person in Hunter from an email address. Returns the enriched person record (name, position, employer, location, phone number, and related social profiles) under the response's `data` envelope.
- **list_all_hunter_companies_finds** — Enrich a company in Hunter from its domain. Returns the enriched company record (industry, size, location, technologies, funding rounds, and social profiles via a generic attributes payload). Required: domain.
- **list_all_hunter_combined_finds** — Enrich a person and company in Hunter in a single call from an email address or LinkedIn handle. Returns: person, company.
- **list_all_hunter_accounts** — Get the connected Hunter account's details and usage. Returns the account object containing identity, plan, team, and credit-balance / quota information. No parameters required.
- **hunter_accounts_bulk_update** — Update Hunter account details. Returns an empty 204 response on success. Source documents no request-body fields beyond authentication.
- **list_all_hunter_account_stats** — Get the Hunter account profile summary. Returns the data object with the account identity, plan details, and most used source.
- **list_all_hunter_usages** — Get the Hunter credit usage summary for the authenticated account. Returns the generic resource response for the /usage endpoint — exact fields are defined upstream; consult the Hunter API docs for the field-level breakdown.
- **list_all_hunter_usage_histories** — List Hunter credit usage history entries. Returns the data array returned by Hunter (each item is a usage-history record; field details are defined upstream and not enumerable from the Hunter API spec alone).
- **list_all_hunter_team_members** — List team members in the Hunter workspace. Returns an array of team member records; individual fields are content-type-specific and defined upstream. No required parameters.
- **list_all_hunter_connected_apps** — List the connected apps (third-party integrations such as HubSpot, Pipedrive, Google Sheets, or SMTP/IMAP inboxes) linked to your Hunter account. Returns an array of records, each with id and attribute_mappings.
- **get_single_hunter_connected_app_by_id** — Get a single connected app in Hunter by id, returning the app id and its attribute_mappings — the list of target_field ↔ source_field pairs that map Hunter fields to the integrated CRM's fields. Each mapping also carries direction and conflict_policy when two-way CRM sync is available for the connection. Required: id.
- **create_a_hunter_connected_app_push** — Push Hunter data (such as leads) to the third-party integration behind a connected app in Hunter. The push is queued and runs asynchronously; the call returns a 202 acknowledgment with the request id. 
- **list_all_hunter_email_accounts** — List the Hunter email accounts (sending inboxes) connected to the user's account. Returns: id, signature.
- **get_single_hunter_email_account_by_id** — Get a single Hunter email account by id. Returns: id, email, first_name, last_name, sending_status, daily_limit, provider, sender_name, default_account, signature, profile_picture_url, custom_tracking_domain, sending_schedule, warmup. Required: id.
- **update_a_hunter_email_account_by_id** — Replace a Hunter email account by id. Returns: id, email, first_name, last_name, sending_status, daily_limit, provider, sender_name, default_account, signature, profile_picture_url, custom_tracking_domain, sending_schedule, warmup. Required: id.
- **list_all_hunter_email_accounts_capacities** — List sending-capacity entries for email accounts in Hunter. Returns the data array of capacity records with resource-specific attributes.
- **get_single_hunter_email_account_health_report_by_id** — Get an email account health report in Hunter. Returns the health report object with resource-specific fields unwrapped from the upstream data envelope. Required: id.
- **get_single_hunter_email_account_usage_by_id** — Get an email account usage report from Hunter. Returns the report data including its id and content-type-specific attributes (the upstream response shape is opaque and not enumerated in Hunter's docs). Required: id.
- **get_single_hunter_email_account_warmup_report_by_id** — Get a Hunter email account warmup report by id. Returns the report envelope including id and the warmup metrics. Required: id.
- **list_all_hunter_email_account_sequences** — List the Hunter sequences that send from a given email account. Returns each sequence's id, name, owner, recipient count, lifecycle booleans (started, archived, paused), and timestamps. 
- **list_all_hunter_campaigns** — List Hunter campaigns. Returns an array of campaign records under `data`, each carrying at least an `editable` flag that is true only when the API key's user owns the campaign or is a team admin/owner (the condition for adding recipients).
- **hunter_campaigns_start** — Start a Hunter campaign so it begins sending real emails to its recipients. Returns the generic response envelope. 
- **list_all_hunter_campaign_recipients** — List recipients of a Hunter campaign. Returns the recipients envelope with data.recipients, and a recipient's email is null when they have asked Hunter to delete their address. 
- **create_a_hunter_campaign_recipient** — Add recipients to a Hunter campaign by email addresses or lead identifiers. Returns the campaign recipients envelope with data.skipped_recipients, each entry carrying the email and the reason it was skipped; the array is null when no address was skipped. 
- **hunter_campaign_recipients_bulk_delete** — Remove recipients from a Hunter campaign by email addresses or lead identifiers in bulk. For draft campaigns the recipients are removed; for started campaigns their pending emails are canceled. Returns the campaign recipients envelope with data.recipients_removed, data.recipients_canceled, data.messages_canceled, and data.skipped_recipients.…. 
- **create_a_hunter_campaign_follow_up** — Add a follow-up step to a Hunter campaign. Returns the saved follow-up step record including its id and step-specific attributes as defined upstream. 
- **get_single_hunter_campaign_follow_up_by_id** — Get a Hunter campaign follow-up step by id. Returns the step record including its id and step-specific attributes as defined upstream. Required: id, campaign_id.
- **list_all_hunter_sequences** — List Hunter outreach sequences in your account. Returns: id, name, editable, started, archived, paused, recipients_count, owner.
- **create_a_hunter_sequence** — Create a new Hunter outreach sequence. Returns the created sequence with id, name, editable, lifecycle booleans (started, archived, paused), recipients_count, and owner. Requires ai_assistant_enabled when opted in.
- **get_single_hunter_sequence_by_id** — Get a Hunter sequence by id, returning its full configuration. Required: id.
- **update_a_hunter_sequence_by_id** — Replace a Hunter sequence by id (full-config replacement). Sender IDs must be available for outreach to the sequence owner; setting ai_assistant_enabled to true requires a paid AI writing-assistant plan. Required: id.
- **delete_a_hunter_sequence_by_id** — Delete a Hunter sequence by id (DRAFT sequences only). Returns an empty 204 response on success. Required: id.
- **hunter_sequences_start** — Start a Hunter sequence so it begins sending outbound emails to its recipients. Returns the generic resource envelope (data contains the sequence record). 
- **hunter_sequences_pause** — Pause a started Hunter sequence so it stops sending outbound emails until it is resumed. Returns the generic resource envelope (data contains the sequence record). 
- **hunter_sequences_archive** — Archive a started Hunter sequence to file it once it is finished. Returns the generic resource envelope (data contains the sequence record). 
- **hunter_sequences_resume** — Resume a paused Hunter sequence so it starts sending outbound emails again. Returns the generic resource envelope (data contains the sequence record). 
- **list_all_hunter_sequence_follow_ups** — List the follow-up steps of a Hunter sequence in step order. Returns each step as a follow-up record with content-type-specific fields wrapped in a generic resource envelope. 
- **create_a_hunter_sequence_follow_up** — Add a new email follow-up step to a Hunter sequence. Returns the created follow-up step record wrapped in a generic resource envelope. 
- **get_single_hunter_sequence_follow_up_by_id** — Get a single follow-up step from a Hunter sequence by its follow-up id. Returns the follow-up step record wrapped in a generic resource envelope. Required: sequence_id, id.
- **update_a_hunter_sequence_follow_up_by_id** — Replace an existing follow-up step of a Hunter sequence, including possibly the introduction email (step 0). Returns the rewritten follow-up step record wrapped in a generic resource envelope. Required: sequence_id, id.
- **delete_a_hunter_sequence_follow_up_by_id** — Delete a follow-up step from a Hunter sequence. Returns an empty 204 response on success. Required: sequence_id, id.
- **list_all_hunter_sequence_stats** — Get performance stats for a Hunter sequence. Returns the sequence's stats object, including its id and the performance metrics tracked for the sequence. 
- **list_all_hunter_sequence_recipients** — List recipients of a Hunter sequence. Returns an array of recipient records under `data` (recipient-level fields are documented upstream and not enumerated here). 
- **create_a_hunter_sequence_recipient** — Add recipients to a Hunter sequence. Returns the created recipient records under `data`, plus `data.skipped_recipients` listing emails and lead_ids that were not added with their `reason` (null when none were skipped). 
- **hunter_sequence_recipients_bulk_delete** — Remove sequence recipients from a Hunter sequence by sequence id. On a draft sequence the addresses are removed and reported in recipients_removed; on a started sequence they stay in the sequence and their pending emails are canceled (recipients_canceled, messages_canceled). Returns: recipients_removed, recipients_canceled, messages_canceled, and 1 more. 
- **create_a_hunter_sequence_test** — Send a test email for every follow-up of a Hunter sequence. Queues one message per step in step order — both A/B variants when A/B testing is on — to the supplied recipient address, with [TEST] prefixes on the subjects. Returns a generic acknowledgement envelope. Required: sequence_id, email. Max 30 test emails queued per 10 minutes.
- **list_all_hunter_discover_people** — Discover people in Hunter matching query-string filters. Returns a list of person records under `data` along with `meta` limits, with fields that depend on the filters sent (name, position, company, location, contacts).
- **create_a_hunter_discover_person** — Discover people in Hunter using a JSON body of filters. Returns a list of person records under `data` along with `meta` limits, with fields that depend on the filters sent (name, position, company, location, contacts).
- **list_all_hunter_domain_counts** — Count domains in Hunter matching discovery filters via GET /v2/domain-count. Returns the matching-domain count as an integer.
- **list_all_hunter_domain_finders** — Find the website domain for a company in Hunter. Returns the wrapped record (under `data`) with the matched domain, plus standard `meta` information.
- **hunter_domain_finders_search** — Find the website domain for a company name in Hunter via POST. Returns the matched domain wrapped under `data` alongside standard `meta` information. Required: company.
- **list_all_hunter_search_multi_domains** — Search professional email addresses across many companies at once in Hunter using a structured filter set (at least one filter required). Returns a paged envelope of masked rows consisting of an opaque `data` array (no email address or phone number; use the multi-domain-search reveal endpoint to unmask) plus a pagination `meta`. The request body…
- **hunter_multi_domain_search_reveals_search** — Reveal emails from a multi-domain search in Hunter, unmasking the email addresses for rows returned by a prior masked multi-domain survey. Returns the revealed data payload (content-type-specific fields under `attributes`). Emails claimed for removal are omitted with a `not_found` outcome and are not billed.
- **list_all_hunter_domains_suggestions** — Suggest likely domains for a company name in Hunter. Returns the data array of suggested `domain` strings under the generic resource response envelope.
- **list_all_hunter_email_finder_founds** — Get a previously found email address in Hunter without re-running a search. Returns the best matching email along with its supporting sources. Supply either linkedin_handle, or domain/company together with full_name or first_name and last_name.
- **hunter_email_finder_founds_search** — Get a previously found email address in Hunter via a POST request body, without re-running a search. Returns the best matching email along with its supporting sources. Supply either linkedin_handle, or domain/company together with full_name or first_name and last_name.
- **list_all_hunter_email_insights** — Get deliverability insight for an email address in Hunter.
- **list_all_hunter_leads** — List leads in Hunter with optional filters. Returns each lead with its id, attributes (including `department`), email, confidence_score, and verification; leads whose owner requested address removal have email, confidence_score, and verification fields nulled.
- **create_a_hunter_lead** — Create a lead in Hunter, or add an existing matching lead to the requested lists (returns 201 on match). Returns the created lead envelope including id and attributes. Returns 409 with `lead_creation_in_progress` and `Retry-After: 1` when another request is creating leads for the team; retry after one second.
- **hunter_leads_bulk_update** — Upsert a lead in Hunter by email, matching the team's existing allowlist. Returns the upserted lead envelope including id and attributes. Returns 409 with `lead_creation_in_progress` and `Retry-After: 1` when creating a new lead while another request is creating leads for the team — existing leads can still be updated during that window.
- **get_single_hunter_lead_by_id** — Get a single lead in Hunter by id. Returns the lead object including id, email, confidence_score, department, and verification (with date and status); leads whose owner requested address removal have email, confidence_score, verification.date, and verification.status nulled. Required: id.
- **update_a_hunter_lead_by_id** — Replace a lead in Hunter by id. Accepts `department` (stored as its canonical key). Returns an empty 204 response on success. Required: id.
- **delete_a_hunter_lead_by_id** — Delete a single Hunter lead by id. Returns an empty 204 response on success. Required: id.
- **hunter_leads_bulk_exist** — Check which leads from a supplied list already exist in your Hunter account. Returns a generic `data` array of existence results for the submitted leads.
- **hunter_leads_bulk_move** — Move many leads at once from one Hunter leads list to another. Accepted for background processing (HTTP 202). Returns the job envelope with a generic `data` payload.
- **hunter_leads_bulk_delete** — Delete many leads at once, by explicit lead ids and/or by whole leads-list id. Returns either 200 (synchronous) or 202 (accepted for background processing), with a generic `data` envelope.
- **hunter_leads_bulk_upsert** — Create or update up to 100 Hunter leads in one call, each matched on `email` and written in its own transaction so one bad item does not cancel the others. Returns a 200 with one result per submitted lead; read each result's `status` and `errors` to see what happened. If creating a lead would exceed…. Required: leads.
- **list_all_hunter_leads_exists** — Check whether a single lead exists in Hunter. Returns the matching lead object including its id, email, first_name, last_name, position, company, and country.
- **delete_a_hunter_lead_tag_by_id** — Remove a tag from a lead in Hunter. Returns an empty 204 response on success. Required: lead_id, id.
- **create_a_hunter_lead_tag** — Add a tag to a Hunter lead. Returns a 201 response with the `data` envelope; inspect it to confirm the tag was attached. 
- **hunter_lead_enriches_enrich** — Enrich an existing Hunter lead by id. Returns the enriched lead record in the response `data` field with the lead's identifying and enriched attributes. 
- **list_all_hunter_leads_custom_attributes** — List lead custom attributes in Hunter. Returns a generic resource response wrapper; the source exposes no enumerated fields beyond the wrapper itself.
- **create_a_hunter_leads_custom_attribute** — Create a lead custom attribute in Hunter. Returns a generic resource response wrapper; the source does not document a request body schema.
- **get_single_hunter_leads_custom_attribute_by_id** — Get a single lead custom attribute by id in Hunter. Returns the attributes object from the generic resource envelope; the vendor does not enumerate its inner fields, so consult the upstream response payload for the actual shape. Required: id.
- **update_a_hunter_leads_custom_attribute_by_id** — Replace a lead custom attribute by id in Hunter. Returns an empty 204 response on success. Required: id. The source does not document a request body schema.
- **delete_a_hunter_leads_custom_attribute_by_id** — Delete a lead custom attribute by id in Hunter. Returns an empty 204 response on success. Required: id.
- **list_all_hunter_companies** — List saved companies in Hunter. Returns each company with id, domain, and created_at; domain may be null when the company's domain no longer exists.
- **create_a_hunter_company** — Save a company in Hunter. Returns the saved company including id, domain, and created_at; domain may be null when the company's domain no longer exists.
- **get_single_hunter_company_by_id** — Get a single saved company in Hunter by id. Returns: id, domain, created_at. Required: id.
- **delete_a_hunter_company_by_id** — Delete a saved company in Hunter by id. Returns an empty 204 response on success. Required: id.
- **hunter_companies_bulk_move** — Move many companies at once from one static company list to another in Hunter. Accepted for background processing (202), returning the resource response envelope.
- **hunter_companies_bulk_copy** — Copy companies to another static company list in bulk via Hunter. The source companies are selected per Hunter's standard bulk-selection pattern (explicit `company_ids` and/or a whole `company_list_id`) and duplicated into the destination list, leaving the source selection untouched. Hunter returns a 202 Accepted for background processing; the…
- **hunter_companies_bulk_delete** — Delete many Hunter companies in bulk. Selects targets from explicit `company_ids` and/or a whole `company_list_id`; pass at least one. Returns the generic resource response envelope — an opaque data payload whose shape is not documented upstream.
- **hunter_companies_bulk_tag** — Tag saved companies in bulk in Hunter. Sends the request to Hunter's background-processing queue and returns a 202 Accepted acknowledgement rather than the updated companies, so the tagging itself is not synchronous. The per-method source documents no query or body field names; consult the upstream Hunter API documentation for the exact request…
- **list_all_hunter_leads_lists** — List Hunter lead lists. Returns the records inside `data` with id, created_at, and updated_at. No required parameters.
- **create_a_hunter_leads_list** — Create a Hunter lead list. Returns the new record with id, created_at, and updated_at. The upstream spec accepts a JSON request body but does not enumerate its fields.
- **get_single_hunter_leads_list_by_id** — Get a single Hunter lead list by id. Returns the record with id, created_at, and updated_at. Required: id.
- **update_a_hunter_leads_list_by_id** — Replace a Hunter lead list by id. Returns an empty 204 response on success. Required: id.
- **delete_a_hunter_leads_list_by_id** — Delete a Hunter lead list by id. Returns an empty 204 response on success. Required: id.
- **hunter_leads_lists_merge** — Merge one Hunter leads list into another in Hunter. Returns an empty 204 response on success. 
- **list_all_hunter_leads_lists_folders** — List lead list folders.
- **create_a_hunter_leads_lists_folder** — Create a lead list folder.
- **get_single_hunter_leads_lists_folder_by_id** — Get a lead list folder. Required: id.
- **update_a_hunter_leads_lists_folder_by_id** — Replace a lead list folder. Required: id.
- **delete_a_hunter_leads_lists_folder_by_id** — Delete a lead list folder. Required: id.
- **create_a_hunter_leads_list_favorite** — Favorite a leads list in Hunter, marking it as a favorite for the account. Returns the generic_resource_response payload with the leads list's id and leads_list_id. 
- **delete_a_hunter_leads_list_favorite_by_id** — Remove a leads list from favorites in Hunter. Returns the generic_resource_response payload with the leads list's id and leads_list_id. Required: id.
- **create_a_hunter_leads_import** — Create a draft leads import in Hunter from CSV data. Required: csv_data. The call only drafts the import — a person must open the configuration_url in a browser and finish mapping columns before any lead is created, and csv_data must be sent in the request body (JSON or form-encoded, never in the…
- **list_all_hunter_company_lists** — List the company lists in your Hunter account, ordered with the most recently created first. Returns each company list including its id, name, type, filters, and company_list_folder_id.
- **create_a_hunter_company_list** — Create a new company list in your Hunter account. Returns the created company list, including its id, name, type, filters, and company_list_folder_id.
- **get_single_hunter_company_list_by_id** — Get a single company list by ID in Hunter. Returns the company list including its id, name, type, filters, and company_list_folder_id. Required: id.
- **update_a_hunter_company_list_by_id** — Replace a company list in your Hunter account, identified by ID. Returns an empty 204 response on success. Required: id.
- **delete_a_hunter_company_list_by_id** — Delete a company list by ID in Hunter. The request is processed asynchronously and Returns an empty 204 response on success. Required: id.
- **list_all_hunter_company_lists_folders** — List company list folders in Hunter, ordered with the most recently created first. Returns the data array of folders.
- **create_a_hunter_company_lists_folder** — Create a new company list folder in Hunter. Returns the created folder via the data envelope. Required: name. When color is omitted, Hunter picks a random color from the palette's vivid swatches.
- **get_single_hunter_company_lists_folder_by_id** — Get a single company list folder in Hunter by id. Returns the folder via the data envelope. Required: id.
- **update_a_hunter_company_lists_folder_by_id** — Replace a company list folder in Hunter. Returns an empty 204 response on success. Required: id.
- **delete_a_hunter_company_lists_folder_by_id** — Delete a company list folder in Hunter by id. Returns an empty 204 response on success. Required: id.
- **create_a_hunter_company_list_favorite** — Mark a Hunter company list as a favorite. Returns the favorited list object including its id and content-type-specific attributes. 
- **delete_a_hunter_company_list_favorite_by_id** — Remove the favorite flag from a Hunter company list by id. Returns the unfavorited list object including its id and content-type-specific attributes. Required: id.
- **create_a_hunter_company_list_company** — Add a company to a static company list in Hunter. Returns the saved-company record returned by Hunter (resource-specific fields; consult the Upstream docs). 
- **delete_a_hunter_company_list_company_by_id** — Remove a company from a company list in Hunter. Returns an empty 204 response on success. Required: company_list_id, id.
- **list_all_hunter_lookalikes** — List lookalike companies in Hunter computed from one of your company lists. Returns the most similar companies ranked by similarity score. This call is free and is not paginated — the offset parameter is not supported and returns 400 if supplied. 
- **list_all_hunter_tags** — List lead tags in your Hunter account. Returns each tag with id, name, and color.
- **create_a_hunter_tag** — Create a new lead tag in Hunter. Returns the created tag with id, name, and color. Required: name.
- **get_single_hunter_tag_by_id** — Get a single lead tag in Hunter by id. Returns the tag with id, name, and color. Required: id.
- **update_a_hunter_tag_by_id** — Replace a lead tag in Hunter by id. Returns the updated tag with id, name, and color. Required: id.
- **delete_a_hunter_tag_by_id** — Delete a lead tag in Hunter by id. Returns an empty 204 response on success. Required: id.
- **list_all_hunter_company_tags** — List Hunter company tags. Returns the collection of tag records (each tagged under the response's `data` envelope). No required parameters.
- **create_a_hunter_company_tag** — Create a company tag in Hunter. Returns the new tag record via the response's `data` envelope. No required parameters documented upstream.
- **get_single_hunter_company_tag_by_id** — Get a single Hunter company tag by id. Returns the tag record. Required: id.
- **update_a_hunter_company_tag_by_id** — Replace an existing Hunter company tag by id. Returns the replaced tag record. Required: id.
- **delete_a_hunter_company_tag_by_id** — Delete a Hunter company tag by id. Returns an empty 204 response on success. Required: id.
- **create_a_hunter_feedback** — Submit product feedback to Hunter. Returns the created feedback record unwrapped from the standard `data` envelope. The upstream API documents the response as a generic resource response shape and does not enumerate fields, so callers should expect the same record-level structure Hunter uses for its other resource responses.
- **list_all_hunter_discover_views** — List saved discover views in Hunter. Returns a `data` array of saved discover view records (id plus discover-view-specific attributes).
- **create_a_hunter_discover_view** — Create a new saved discover view in Hunter. Returns the created discover view record (id plus discover-view-specific attributes).
- **get_single_hunter_discover_view_by_id** — Get a single saved discover view in Hunter by id. Returns: id plus discover-view-specific attributes. Required: id.
- **delete_a_hunter_discover_view_by_id** — Delete a saved discover view in Hunter by id. Returns an empty 204 response on success. Required: id.
- **list_all_hunter_message_templates** — List saved message templates from Hunter. Returns: id, name, subject, body, message_format.
- **create_a_hunter_message_template** — Create a reusable message template in Hunter. Returns the created template with its id, name, subject, body, and message_format. Required: name, subject, body, message_format.
- **get_single_hunter_message_template_by_id** — Get a single message template from Hunter by id. Returns: id, name, subject, body, message_format. Required: id.
- **update_a_hunter_message_template_by_id** — Replace a message template in Hunter by id. Returns the updated template with its id, name, subject, body, and message_format. Required: id.
- **delete_a_hunter_message_template_by_id** — Delete a message template from Hunter by id. Returns an empty 204 response on success. Required: id.
- **list_all_hunter_messages** — List Hunter messages including outgoing messages and incoming replies. Returns: id, to, created_at, lead. Recipients who asked Hunter to delete their address come back with null to and null lead identifying fields.
- **create_a_hunter_message** — Send a one-off Hunter message from a sender that is available for outreach to the authenticated user. Returns the sent message with id, to, created_at, and an embedded lead containing email, confidence_score, and verification (date, status). On the Free plan, senders kept only for Inbox Protection cannot send and the request returns 422…
- **list_all_hunter_webhooks** — List webhooks configured on the Hunter account. Returns the array of webhook records (each with id, target_url, and subscribed events).
- **create_a_hunter_webhook** — Create a new webhook in Hunter. Returns the created webhook record including its id and target_url. Required: target_url.
- **hunter_webhooks_bulk_delete** — Delete a webhook from Hunter by its identifier (legacy collection endpoint). Returns an empty 204 response on success.
- **get_single_hunter_webhook_by_id** — Get a single Hunter webhook by id. Returns the webhook record including its id, target_url, and subscribed events. Required: id.
- **update_a_hunter_webhook_by_id** — Replace an existing Hunter webhook by id. Returns the replaced webhook object with its id, target_url, and subscribed events. Required: id.
- **delete_a_hunter_webhook_by_id** — Delete a Hunter webhook by id. Returns an empty 204 response on success. Required: id.
- **list_all_hunter_api_keys** — List Hunter API keys on the connected account. Returns a collection of API key records unwrapped from the upstream `data` envelope. No required parameters.
- **create_a_hunter_api_key** — Create a Hunter API key for the connected user. Returns the created API key record unwrapped from the upstream `data` envelope. Optional: name (names must be unique among the user's keys).
- **update_a_hunter_api_key_by_id** — Replace a Hunter API key identified by id. Returns the replaced API key record unwrapped from the upstream `data` envelope. Required: id.
- **delete_a_hunter_api_key_by_id** — Delete a Hunter API key by id. Returns an empty 204 response on success. Required: id.
- **delete_a_hunter_company_tag_assignment_by_id** — Remove a tag from a saved company in Hunter. Returns an empty 204 response on success. Required: company_id and id.
- **create_a_hunter_company_tag_assignment** — Tag a saved company in Hunter by attaching an existing company tag. Returns the generic resource payload confirming the tag is now attached to the company. 

## How it works

1. **Link your customer's Hunter account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Hunter.** The Proxy API is a 1-to-1 mapping of the Hunter API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed just-in-time email discovery in your CRM or ATS** — Let your users resolve verified professional emails the moment they add a new contact or candidate, using Hunter's Email Finder and Domain Search without leaving your product.
- **Protect sender reputation with native list verification** — If you run a sales engagement, newsletter, or marketing platform, offer a built-in 'verify with Hunter' step that strips invalid addresses before any send — reducing bounces and keeping your sending IPs healthy.
- **Power prospecting workflows with company and people enrichment** — B2B databases, scrapers, and sales intelligence tools can turn a bare domain into a full company profile (industry, size, tech stack, known contacts) and surface associated people records inline.
- **Bridge prospecting and outreach execution** — Push qualified leads from your platform directly into Hunter Leads, Lists, and Sequences so your users can trigger cold email campaigns without exporting CSVs or switching tools.
- **Centralize deliverability and campaign analytics** — Pull sequence stats, email account health reports, and warmup data into your reporting UI so revenue teams can monitor Hunter outreach alongside the rest of their pipeline metrics.

## What you can build

- **One-click email finder on contact records** — Add a 'Find Email' button that calls Hunter's Email Finder with a name + domain (or LinkedIn handle) and auto-fills the verified address with its confidence score.
- **Bulk list cleaner with verification status** — Loop uploaded recipient lists through Hunter's Email Verifier and tag each row as valid, invalid, accept-all, or webmail before your users hit send.
- **Domain-to-contacts explorer** — Let users type a company domain and browse every known email, job title, seniority, and department returned by Hunter Domain Search natively in your UI.
- **Lead and company sync into Hunter** — Create, update, and bulk-upsert Hunter Leads, Companies, and Lists from your product so segmented audiences stay aligned with your users' outreach workspace.
- **Sequence and campaign orchestration** — Create sequences, add follow-ups, enroll recipients, and start, pause, or resume Hunter sequences programmatically from workflows triggered in your app.
- **Webhook-driven activity sync** — Register Hunter webhooks on behalf of your users to stream campaign events, sequence replies, and lead changes back into your platform in near real time.

## FAQs

### How do end users authenticate their Hunter account?

Hunter uses API key authentication. Through Truto's managed auth, your users paste their Hunter API key once in your UI and Truto securely stores and injects it into every request — you never handle the credential directly.

### Which Hunter capabilities are exposed through Truto?

Truto exposes Hunter's full API surface, including Email Finder, Domain Search, Email Verifier, Companies and People enrichment, Leads and Lists management, Campaigns, Sequences and follow-ups, Discover, Webhooks, and account/usage endpoints.

### How does Truto handle Hunter's rate limits and quotas?

Hunter enforces per-plan request limits and monthly search/verification quotas. Truto respects Hunter's rate limits, surfaces 429 responses, and lets you monitor consumption via the account stats, usage, and usage history endpoints so you can throttle or alert inside your product.

### Can we sync leads and companies both ways?

Yes. You can create, read, update, delete, and bulk-upsert Hunter Leads and Companies, manage their Lists and Folders, assign Tags, and define Custom Attributes — enabling two-way sync between your product and Hunter.

### Does Truto support Hunter webhooks for real-time events?

Yes. You can programmatically create, list, update, and delete Hunter webhooks per connected account, and Truto can relay incoming events to your own endpoints so you react to campaign and lead activity without polling.

### Can we trigger cold email sends on behalf of our users?

Yes. You can create sequences and follow-ups, add recipients individually or in bulk, and call start, pause, resume, and archive actions — allowing your product to orchestrate live Hunter outreach end to end.

### How fresh is the data returned by Hunter's enrichment endpoints?

Hunter continuously re-crawls public sources and re-verifies emails, so results reflect their latest index at query time. Truto proxies requests live rather than caching, meaning your users always see Hunter's current data and confidence scores.
