{
  "url": "https://telipot.com/catalog/capabilities/email.domain.search",
  "id": "email.domain.search",
  "description": "Email addresses found at a domain",
  "platform": "email",
  "providers": [
    {
      "slug": "hunter",
      "name": "Hunter"
    }
  ],
  "tasks": 1,
  "taskPages": [
    {
      "id": "hunter.email.domain.search",
      "name": "Emails found at a domain, with names, titles and confidence",
      "provider": {
        "slug": "hunter",
        "name": "Hunter"
      },
      "capability": "email.domain.search",
      "platform": "email",
      "kind": "data",
      "tier": "core",
      "identity": "key",
      "identityLabel": "Your plan",
      "price": {
        "type": "per_result",
        "confidence": "documented",
        "source": "docs",
        "sourceUrl": "https://help.hunter.io/en/articles/1911617-how-do-credits-work-in-hunter",
        "checked": "2026-10-05",
        "note": "All-in-one plans: 1 credit per email revealed, none when no email is found, and a repeat of the same search in one billing period is not charged again. Data Platform plans: 1 Search credit for up to 10 emails per domain. The API reference says only that a query counts when it returns at least one result.",
        "state": "paid",
        "label": "$0.0245 / email",
        "amount": "$0.0245",
        "unit": "email",
        "usdPerUnit": {
          "floor": 0.0245,
          "ceiling": 0.0245
        },
        "native": {
          "text": "1 credit per email",
          "figure": "1 credit",
          "per": "email",
          "currency": "credits"
        },
        "detail": "1 credit · docs"
      },
      "providers": 1,
      "retention": "standard",
      "runsOn": "byoc",
      "live": true,
      "summary": "One key feature of Hunter is to search all the email addresses corresponding to one website. You give one domain name and it returns email addresses found for that domain on the internet.",
      "method": "GET",
      "path": "/domain-search",
      "host": "https://api.hunter.io/v2",
      "docsUrl": "https://hunter.io/api-documentation/v2#domain-search",
      "auth": {
        "scheme": "api_key",
        "label": "api_key · in header as X-API-KEY",
        "short": "api_key · x-api-key"
      },
      "scope": "any_account",
      "principal": "organization",
      "requiredScopes": [],
      "verification": {
        "state": "untestable",
        "label": "Untestable",
        "detail": "Lists named people with their email addresses, so every real call returns private individuals' contact details; there is no personal-data-free target."
      },
      "input": [
        {
          "name": "domain",
          "location": "queryParams",
          "type": "string",
          "required": false,
          "constraints": [],
          "note": "Domain to search. Give domain or company; domain wins when both are given."
        },
        {
          "name": "company",
          "location": "queryParams",
          "type": "string",
          "required": false,
          "constraints": [],
          "note": "Company name, used when the domain is unknown. A domain gives better results."
        },
        {
          "name": "limit",
          "location": "queryParams",
          "type": "integer",
          "required": false,
          "constraints": [
            "1 to 100",
            "default 10"
          ],
          "note": "Maximum emails returned. Each email returned is charged. On a Free plan limit plus offset above 10 is refused with 400 pagination_error."
        },
        {
          "name": "offset",
          "location": "queryParams",
          "type": "integer",
          "required": false,
          "constraints": [
            "at least 0",
            "default 0"
          ],
          "note": "Emails to skip, for paging."
        },
        {
          "name": "type",
          "location": "queryParams",
          "type": "string",
          "required": false,
          "constraints": [
            "one of \"personal\", \"generic\""
          ],
          "note": "Only personal addresses, or only role-based (generic) ones such as contact@."
        },
        {
          "name": "seniority",
          "location": "queryParams",
          "type": "string",
          "required": false,
          "constraints": [],
          "note": "Comma-separated. The docs list junior, senior and executive; Hunter's OpenAPI says the values come from a live taxonomy and a list with no valid value returns 400 invalid_seniority."
        },
        {
          "name": "department",
          "location": "queryParams",
          "type": "string",
          "required": false,
          "constraints": [],
          "note": "Comma-separated. The docs list executive, it, finance, management, sales, legal, support, hr, marketing, communication, education, design, health, operations, product, research, consulting, administrative and procurement. A list with no valid value returns 400 invalid_department."
        },
        {
          "name": "decision_maker",
          "location": "queryParams",
          "type": "boolean",
          "required": false,
          "constraints": [],
          "note": "true keeps only likely decision makers, false only people explicitly classified as not. Addresses not yet classified match neither."
        },
        {
          "name": "required_field",
          "location": "queryParams",
          "type": "string",
          "required": false,
          "constraints": [],
          "note": "Comma-separated. Keep only emails that have these fields. The docs list full_name, position and phone_number."
        },
        {
          "name": "verification_status",
          "location": "queryParams",
          "type": "string",
          "required": false,
          "constraints": [],
          "note": "Comma-separated. The docs list valid, accept_all and unknown."
        },
        {
          "name": "job_titles",
          "location": "queryParams",
          "type": "string",
          "required": false,
          "constraints": [],
          "note": "Comma-separated. Matches whole words; common executive titles match their equivalents."
        },
        {
          "name": "source_type",
          "location": "queryParams",
          "type": "string",
          "required": false,
          "constraints": [
            "one of \"found\", \"generated\""
          ],
          "note": "found keeps only addresses seen on the web, generated only inferred ones. Listed in Hunter's OpenAPI, not on the docs page."
        },
        {
          "name": "aggregations",
          "location": "queryParams",
          "type": "boolean",
          "required": false,
          "constraints": [],
          "note": "true adds meta.aggregations, a breakdown of the matching emails by department, decision makers and personal versus generic."
        }
      ],
      "sampleInput": {},
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain to search. Give domain or company; domain wins when both are given.",
            "examples": [
              "stripe.com"
            ]
          },
          "company": {
            "type": "string",
            "description": "Company name, used when the domain is unknown. A domain gives better results.",
            "examples": [
              "stripe"
            ]
          },
          "limit": {
            "type": "integer",
            "description": "Maximum emails returned. Each email returned is charged. On a Free plan limit plus offset above 10 is refused with 400 pagination_error.",
            "default": 10,
            "minimum": 1,
            "maximum": 100
          },
          "offset": {
            "type": "integer",
            "description": "Emails to skip, for paging.",
            "default": 0,
            "minimum": 0
          },
          "type": {
            "type": "string",
            "description": "Only personal addresses, or only role-based (generic) ones such as contact@.",
            "enum": [
              "personal",
              "generic"
            ]
          },
          "seniority": {
            "type": "string",
            "description": "Comma-separated. The docs list junior, senior and executive; Hunter's OpenAPI says the values come from a live taxonomy and a list with no valid value returns 400 invalid_seniority.",
            "examples": [
              "senior,executive"
            ]
          },
          "department": {
            "type": "string",
            "description": "Comma-separated. The docs list executive, it, finance, management, sales, legal, support, hr, marketing, communication, education, design, health, operations, product, research, consulting, administrative and procurement. A list with no valid value returns 400 invalid_department.",
            "examples": [
              "sales,marketing"
            ]
          },
          "decision_maker": {
            "type": "boolean",
            "description": "true keeps only likely decision makers, false only people explicitly classified as not. Addresses not yet classified match neither."
          },
          "required_field": {
            "type": "string",
            "description": "Comma-separated. Keep only emails that have these fields. The docs list full_name, position and phone_number.",
            "examples": [
              "full_name,position"
            ]
          },
          "verification_status": {
            "type": "string",
            "description": "Comma-separated. The docs list valid, accept_all and unknown.",
            "examples": [
              "valid"
            ]
          },
          "job_titles": {
            "type": "string",
            "description": "Comma-separated. Matches whole words; common executive titles match their equivalents.",
            "examples": [
              "CTO,Head of Engineering"
            ]
          },
          "source_type": {
            "type": "string",
            "description": "found keeps only addresses seen on the web, generated only inferred ones. Listed in Hunter's OpenAPI, not on the docs page.",
            "enum": [
              "found",
              "generated"
            ]
          },
          "aggregations": {
            "type": "boolean",
            "description": "true adds meta.aggregations, a breakdown of the matching emails by department, decision makers and personal versus generic."
          }
        },
        "additionalProperties": false
      },
      "output": [
        {
          "name": "data",
          "type": "object"
        },
        {
          "name": "meta",
          "type": "object"
        }
      ],
      "outputSchema": {
        "type": "object",
        "required": [
          "data",
          "meta"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "domain",
              "disposable",
              "webmail",
              "accept_all",
              "pattern",
              "organization",
              "linked_domains",
              "emails"
            ],
            "properties": {
              "domain": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "disposable": {
                "type": "boolean"
              },
              "webmail": {
                "type": "boolean"
              },
              "accept_all": {
                "type": "boolean"
              },
              "pattern": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The email pattern most addresses at the domain follow"
              },
              "organization": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "linked_domains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "emails": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "value",
                    "type",
                    "confidence"
                  ],
                  "properties": {
                    "value": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "personal",
                        "generic"
                      ]
                    },
                    "source_type": {
                      "type": "string",
                      "description": "found or generated"
                    },
                    "confidence": {
                      "type": "integer",
                      "description": "Estimated probability, 0 to 100, that the address is correct"
                    },
                    "first_name": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "last_name": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "position": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "seniority": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "department": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "decision_maker": {
                      "type": "boolean"
                    },
                    "linkedin": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "twitter": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "phone_number": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "sources": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "domain": {
                            "type": "string"
                          },
                          "uri": {
                            "type": "string"
                          },
                          "extracted_on": {
                            "type": "string"
                          },
                          "last_seen_on": {
                            "type": "string"
                          },
                          "still_on_page": {
                            "type": "boolean"
                          }
                        }
                      }
                    },
                    "verification": {
                      "type": "object",
                      "properties": {
                        "date": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "status": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "meta": {
            "type": "object",
            "required": [
              "results",
              "limit",
              "offset"
            ],
            "properties": {
              "results": {
                "type": "integer"
              },
              "results_approximate": {
                "type": "boolean"
              },
              "limit": {
                "type": "integer"
              },
              "offset": {
                "type": "integer"
              },
              "aggregations": {
                "type": "object"
              },
              "params": {
                "type": "object"
              }
            }
          }
        }
      },
      "commands": {
        "mode": "inspect",
        "cli": "telipot inspect hunter.email.domain.search",
        "http": "curl https://api.telipot.com/v1/tasks/hunter.email.domain.search \\\n  -H \"Authorization: Bearer $TELIPOT_TOKEN\""
      },
      "siblings": []
    }
  ]
}
