Catalog/Email Finding/Hunter domain
POST

Email Finding Hunter domain API

/v1/run/email_finding.hunter_domain

Find named contacts and their work email addresses at a company domain, filtered by job title, seniority or department. Priced per returned contact, so limit is the cost control.

Category enrichmentRequests / mo 121Routing 1 lane · no failover
Get ~100 free requests

Pricing

One price, in dollars

pay per request · no subscription · fallbacks added as the catalog grows
↳ One lane serves this endpoint today, so a failed call has nowhere to fail over to. Failed attempts are never billed. Uptime, latency and traffic are measured through the gateway, last 30 days.

Call it

Make your first request

POST /v1/run/email_finding.hunter_domain · same shape for every API
import os, requests

res = requests.post(
    "https://api.getanyapi.com/v1/run/email_finding.hunter_domain",
    headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
    json={
        "domain": ""
    },
)
print(res.json())
Open in
Get a free key
Sample response
{
  "data": {
    "acceptAll": true,
    "disposable": true,
    "domain": "example.com",
    "emailPattern": "alex@example.com",
    "emails": [
      {
        "confidence": 1024,
        "decisionMaker": true,
        "department": "example",
        "email": "alex@example.com",
        "firstName": "Alex",
        "lastName": "Rivera",
        "linkedinUrl": "https://example.com/page",
        "phone": "+1 555-0142",
        "position": "example",
        "seniority": "example",
        "sources": [
          {
            "domain": "example.com",
            "extractedUtc": 12.5,
            "lastSeenUtc": 12.5,
            "stillOnPage": true,
            "url": "https://example.com/page"
          }
        ],
        "type": "general",
        "verificationStatus": "active",
        "verifiedUtc": 12.5
      }
    ],
    "organization": "Acme Inc",
    "totalCount": 12500,
    "webmail": true
  },
  "found": true
}
Response interface
interface EmailFindingHunterDomainResponse {
  data: {
    acceptAll?: boolean;
    disposable?: boolean;
    domain: string;
    emailPattern?: string;
    emails: {
      confidence?: number;
      decisionMaker?: boolean;
      department?: string;
      email: string;
      firstName?: string;
      lastName?: string;
      linkedinUrl?: string;
      phone?: string;
      position?: string;
      seniority?: string;
      sources?: {
        domain: string;
        extractedUtc?: number;
        lastSeenUtc?: number;
        stillOnPage?: boolean;
        url?: string;
      }[];
      type?: string;
      verificationStatus?: string;
      verifiedUtc?: number;
    }[];
    organization?: string;
    totalCount: number;
    webmail?: boolean;
  } | null;
  found: boolean;
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

Request, response, and price

Last verified 2026-08-23 · uptime and latency measured over 30d
POST /v1/run/email_finding.hunter_domain
curl -X POST https://api.getanyapi.com/v1/run/email_finding.hunter_domain \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"stripe.com","limit":2,"type":"personal"}'
FieldTypeExample value
Request body
domainstring"stripe.com"Company domain without a scheme or path, e.g. stripe.com.
departmentenumRestrict to one department.
jobTitlestringOne job-title keyword to match, e.g. editor. A single keyword only: a comma-separated list is not supported and only its last entry would apply.
limitinteger2Maximum contacts to return in this response. Every returned contact is billed, so this is the cost control.
offsetintegerNumber of contacts to skip before this page begins.
requiredFieldenumOnly return contacts that carry this field.
seniorityenumRestrict to one seniority level.
typeenum"personal"Restrict to personal mailboxes belonging to a named person, or to generic ones such as info@ and support@.
Response
dataobject
data.acceptAllbooleanTrue when the mail server accepts any address at this domain, so an address cannot be verified by delivery.
data.disposablebooleanTrue when the domain belongs to a disposable-email service.
data.domainstringThe company domain the contacts belong to.
data.emailPatternstringAddress pattern the company uses, e.g. {first}{last}.
data.emailsobject[]Contacts returned by this page, one per billed result.
data.emails[].confidenceintegerUpstream confidence in the address, 0 to 100.
data.emails[].decisionMakerbooleanTrue when the contact is judged a decision maker.
data.emails[].departmentstringDepartment the contact works in.
data.emails[].emailstringThe work email address.
data.emails[].firstNamestringContact's first name.
data.emails[].lastNamestringContact's last name.
data.emails[].linkedinUrlstringContact's LinkedIn profile URL.
data.emails[].phonestringContact's phone number.
data.emails[].positionstringContact's job title.
data.emails[].senioritystringSeniority level: junior, senior or executive.
data.emails[].sourcesobject[]Public pages the address was found on.
data.emails[].sources[].domainstringDomain of the page the address was found on.
data.emails[].sources[].extractedUtcnumberUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
data.emails[].sources[].lastSeenUtcnumberUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
data.emails[].sources[].stillOnPagebooleanTrue when the address was still present at the last check.
data.emails[].sources[].urlstringURL of the page the address was found on.
data.emails[].typestringpersonal for a named person's mailbox, generic for a shared inbox.
data.emails[].verificationStatusstringDeliverability verdict recorded for the address.
data.emails[].verifiedUtcnumberUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
data.organizationstringCompany name registered against the domain.
data.totalCountintegerContacts matching the filters across the whole domain, of which this response returns at most limit.
data.webmailbooleanTrue when the domain is a webmail provider rather than a company.
foundbooleanFalse when the domain yielded no contacts for the requested filters.
Price
Price per request (ceiling)USD$3.60
Price /1k resultsUSD$36.00

FAQ

About the Email Finding Hunter domain API

The AnyAPI Email Finding Hunter domain API returns Email Finding hunter domain data as normalized JSON from one POST call to /v1/run/email_finding.hunter_domain. Find named contacts and their work email addresses at a company domain, filtered by job title, seniority or department. Priced per returned contact, so limit is the cost control. AnyAPI returns one normalized schema whichever source serves it. It costs $36 per 1,000 results, and never more than $3.60 for a single request, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 97.5% of Email Finding hunter domain calls through AnyAPI succeeded, with a median response time of 2.1 seconds across 121 measured calls.

It costs $36 per 1,000 results, and never more than $3.60 for a single request, in US dollars with no subscription and no monthly minimum. You fund one USD wallet, each call draws it down, and a failed request costs $0.

Find named contacts and their work email addresses at a company domain, filtered by job title, seniority or department. Priced per returned contact, so limit is the cost control. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 97.5% of Email Finding hunter domain calls through AnyAPI succeeded, with a median response time of 2.1 seconds across 121 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.

Get started

Two ways to start on AnyAPI

Humans fund a USD wallet and pay per request. Agents point a coding agent at one URL and onboard themselves.

Get ~100 free requests
Works with
Terminal agentsClaude CodeCursorCodexMCP clients