Hunter Domain Search API

Search for all email addresses associated with a domain name or company. Returns the inferred email pattern, organization metadata, and a list of emails with confidence scores, departments, seniority, verification status, and observed sources. Costs 1 credit per request.

Hunter Domain Search API is one of 8 APIs that Hunter publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 1 JSON Schema definition.

Tagged areas include Email Finder, Lead Generation, and Domain Search. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, a JSON-LD context, 1 Naftiko capability spec, and 1 JSON Schema.

OpenAPI Specification

hunter-domain-search-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Hunter Domain Search API
  description: >
    Returns all email addresses found on the internet using a given domain name or
    company name, along with sources for each, confidence scores, departments,
    seniority levels, and verification status. The Domain Search is Hunter's
    flagship endpoint and powers the public domain search tool on hunter.io.
  version: v2
  contact:
    name: Hunter Support
    url: https://hunter.io/contact
  license:
    name: Hunter Terms of Service
    url: https://hunter.io/terms
servers:
  - url: https://api.hunter.io/v2
    description: Production
security:
  - ApiKeyQuery: []
  - ApiKeyHeader: []
  - BearerAuth: []
tags:
  - name: Domain Search
    description: Discover all emails for a domain or company.
paths:
  /domain-search:
    get:
      summary: Hunter Search Domain Emails
      description: >
        Search for all email addresses corresponding to a given domain or company,
        including the discovered email pattern, organization metadata, and per-email
        confidence scores and verification status.
      operationId: domainSearch
      tags:
        - Domain Search
      parameters:
        - name: domain
          in: query
          description: The domain name from which you want to find email addresses.
          schema: { type: string, example: stripe.com }
        - name: company
          in: query
          description: The company name from which you want to find email addresses.
          schema: { type: string }
        - name: limit
          in: query
          description: Maximum number of email addresses returned (1-100, default 10).
          schema: { type: integer, default: 10, minimum: 1, maximum: 100 }
        - name: offset
          in: query
          description: The number of email addresses to skip.
          schema: { type: integer, default: 0 }
        - name: type
          in: query
          description: Restrict to personal or generic email addresses.
          schema: { type: string, enum: [personal, generic] }
        - name: seniority
          in: query
          description: Comma-separated seniority levels (junior, senior, executive).
          schema: { type: string }
        - name: department
          in: query
          description: Comma-separated departments (executive, it, finance, management, sales, legal, support, hr, marketing, communication, education, design, health, operations).
          schema: { type: string }
        - name: required_field
          in: query
          description: Comma-separated list of fields that must be present in each returned email.
          schema: { type: string }
        - $ref: '#/components/parameters/ApiKeyQuery'
      responses:
        '200':
          description: A list of emails for the domain.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainSearchResponse'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
        '429':
          $ref: '#/components/responses/Error'
components:
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api_key
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-API-KEY
    BearerAuth:
      type: http
      scheme: bearer
  parameters:
    ApiKeyQuery:
      name: api_key
      in: query
      required: true
      description: Your Hunter API key.
      schema: { type: string }
  schemas:
    DomainSearchResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            domain: { type: string }
            disposable: { type: boolean }
            webmail: { type: boolean }
            accept_all: { type: boolean }
            pattern: { type: string, example: '{first}.{last}' }
            organization: { type: string }
            description: { type: string }
            industry: { type: string }
            twitter: { type: string }
            facebook: { type: string }
            linkedin: { type: string }
            instagram: { type: string }
            youtube: { type: string }
            technologies: { type: array, items: { type: string } }
            country: { type: string }
            state: { type: string }
            city: { type: string }
            postal_code: { type: string }
            street: { type: string }
            headcount: { type: string }
            company_type: { type: string }
            emails:
              type: array
              items: { $ref: '#/components/schemas/Email' }
        meta:
          $ref: '#/components/schemas/Meta'
    Email:
      type: object
      properties:
        value: { type: string, format: email }
        type: { type: string, enum: [personal, generic] }
        confidence: { type: integer, minimum: 0, maximum: 100 }
        first_name: { type: string }
        last_name: { type: string }
        position: { type: string }
        seniority: { type: string }
        department: { type: string }
        linkedin: { type: string }
        twitter: { type: string }
        phone_number: { type: string }
        verification:
          type: object
          properties:
            date: { type: string, format: date-time }
            status: { type: string, enum: [valid, invalid, accept_all, webmail, disposable, unknown] }
        sources:
          type: array
          items:
            type: object
            properties:
              domain: { type: string }
              uri: { type: string }
              extracted_on: { type: string, format: date }
              last_seen_on: { type: string, format: date }
              still_on_page: { type: boolean }
    Meta:
      type: object
      properties:
        results: { type: integer }
        limit: { type: integer }
        offset: { type: integer }
        params:
          type: object
          additionalProperties: true
    Error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              id: { type: string }
              code: { type: integer }
              details: { type: string }
  responses:
    Error:
      description: Error response.
      content:
        application/json:
          schema: { $ref: '#/components/schemas/Error' }