You can enjoy our service's features with our simple JSON API. Three main calls are available:
https://api.hunter.io/v1/
Authentication is made with a key which you will have to add to every call you make to our API. This parameter is always required. We'll return an error if the key is either missing or invalid.
It can be passed in the api_key
query parameter or in the X-API-KEY
header.
Your API key is what identifies your account, so make sure to keep it secret! You can at anytime retrieve, generate or delete API keys on your dashboard.
Sign up to get your free API key.
Hunter's API uses conventional HTTP response codes to indicate the success or failure of an API request.
200 - OK | The request was successful. |
401 - Unauthorized | No valid API key provided. |
403 - Forbidden | You have reached the rate limit. |
429 - Too many requests | You have reached your usage limit. Upgrade your plan if necessary. |
5XX - Server Errors | Something went wrong on Hunter's end. |
One key feature of Hunter is to search all the email addresses corresponding to one website. You give one domain name and it returns all the email addresses using this domain name found on the internet.
domain
Required*
|
Domain name from which you want to find the email
addresses. For example, stripe.com .
|
company
Required*
|
The company name from which you want to find the email addresses. For example, "stripe". Note that you'll get better results by supplying the domain name as we won't have to find it. If you send a request with both the domain and the company name, we'll use the domain name. It doesn't need to be in lowercase. |
limit | Specifies the max number of email addresses to return. The default is 100. |
offset | Specifies the number of email addresses to skip. The default is 0. |
type |
Get only personal or generic
email addresses.
|
api_key
Required
|
Your secret API key. You can retrieve it in your dashboard. |
Each response will return up to 100 emails. Use the "offset" parameter every 100 results to get all of them.
A requests is counted every 10 email addresses returned. For example, if 17 email addresses are found for a domain name, 2 requests are counted. No request is counted for a call without any result.
The number of sources is limited to 20 for each email address.
type
returns the value "personal" or "generic". A "generic" email address
is a role-based email address, like contact@hunter.io. On the
contrary, a "personal" email address is the address of someone in
the company.
confidence
is our estimation of the probability the email address returned is
correct. It depends on several criteria such as the number and
quality of sources.
On the Free plan, the results are limited to the first 10 email addresses.
If the limit
additioned to the offset
is higher
than 10, an error is returned.
The Domain Search API endpoint is rate limited to 15 requests per second and 500 requests per minute.
* You must provide at least the domain name or the company name. You can also provide both.
GET https://api.hunter.io/v1/search?domain=stripe.com&api_key=API_KEY
Get my free API key
{ "status": "success", "domain": "stripe.com", "results": 165, "webmail": false, "pattern": "{first}", "offset": 0, "emails": [ { "value": "hoon@stripe.com", "type": "personal", "confidence": 97, "sources": [ { "domain": "stripe.com", "uri": "https://stripe.com/blog/weekly-and-monthly-transfers", "extracted_on": "2015-03-05" } ] }, { "value": "christian@stripe.com", "type": "personal", "confidence": 95, "sources": [ { "domain": "dribbble.com", "uri": "https://dribbble.com/shots/766770-passport", "extracted_on": "2015-03-04" } ] } ] }
This API endpoint finds the most likely email address from a domain name, a first name and a last name.
domain
Required*
|
The domain name of the company, used for emails. For example, "asana.com". |
company
Required*
|
The company name from which you want to find the email addresses. For example, "stripe". Note that providing the domain name gives better results as it removes the conversion from the company name. If you send a request with both the domain and the company name, the domain name will be used. The company name doesn't need to be in lowercase. |
first_name | The person's first name. It doesn't need to be in lowercase. |
last_name | The person's last name. It doesn't need to be lowercase. |
api_key
Required
|
Your secret API key. You can retrieve it in your dashboard. |
The score returned is an estimation of the probability the email generated is correct.
The Email Finder API endpoint is rate limited to 15 requests per second and 500 requests per minute.
* You must send at least the domain name or the company name. You can also send both.
GET https://api.hunter.io/v1/generate?domain=reddit.com&first_name=Alexis&last_name=Ohanian&api_key=API_KEY
Get my free API key
{ "status": "success", "email": "alexis@reddit.com", "score": 97, "sources": [ { "domain": "redditblog.com", "uri": "http://redditblog.com/2008/10/22/widgets-get-an-upgrade-and-a-firefox-extension-that-will-rock-your-world", "extracted_on": "2018-10-19" } ] }
This API endpoint allows you to verify the deliverability of an email address.
Hunter focuses on B2B. Therefore, webmails are not verified. We'll run every check but won't reach the remote SMTP server.
email
Required*
|
The email address you want to verify. |
api_key
Required*
|
Your secret API key. You can retrieve it in your dashboard. |
score
is the deliverability score we give to the email address.
regexp
is true if the email address passes our regular expression.
gibberish
is true if we find this is an automatically generated email
address (for example "e65rc109q@company.com").
disposable
is true if we find this is an email address from a disposable
email service.
webmail
is true if we find this is an email from a webmail service (for example
Gmail).
mx_records
is true if we find MX records exist on the domain of the given
email address.
smtp_server
is true if we connect to the SMTP server successfully.
smtp_check
is true if the email address doesn't bounce.
accept_all
is true if the server accepts all email addresses. It means you
can have have false positives on SMTP checks.
sources
If we have found the given email address somewhere on the web, we
display the sources here. The number of sources is limited to 20.
The Email Verification API endpoint is rate limited to 10 requests per second and 300 requests per minute.
GET https://api.hunter.io/v1/verify?email=patrick@stripe.com&api_key=API_KEY
Get my free API key
{ "status": "success", "email": "patrick@stripe.com", "result": "deliverable", "score": 100, "regexp": true, "gibberish": false, "disposable": false, "webmail": false, "mx_records": true, "smtp_server": true, "smtp_check": true, "accept_all": false, "sources": [ { "domain": "beta.paganresearch.io", "uri": "http://beta.paganresearch.io/details/stripe", "extracted_on": "2020-06-17" }, { "domain": "icloudnewz.blogspot.com", "uri": "http://icloudnewz.blogspot.com/2017/11/follow-patrick-collison-mike-birbiglia.html", "extracted_on": "2020-03-25" } ] }
This API endpoint allows you to know how many email addresses we have for one domain.
domain
Required*
|
The domain name for which you want to know how many email addresses we have. |
This call is free and doesn't require your API key. You can use it to quickly know if we can supply email addresses on a given domain.
GET https://api.hunter.io/v1/email-count?domain=stripe.com
Open
{ "status": "success", "count": 81, }
This API endpoint enables you to get information regarding your Hunter account at any time. This call is free.
api_key
Required*
|
One of the API keys associated with your account. |
calls
is the sum of search and verification requests made during the
current billing period. It is deprecated;
use
requests
instead to get the detailed usage per request type.
GET https://api.hunter.io/v1/account?api_key=API_KEY
Get my free API key
{ "status": "success", "email": "antoine@hunter.io", "plan_name": "Pro", "plan_level": 3, "reset_date": 2025-05-13, "calls": { "_deprecation_notice": "Sums the searches and the verifications, giving an unprecise look of the available requests", "used": 18526, "available": 20000 }, "requests": { "searches": { "used": 14260, "available": 10000 }, "verifications": { "used": 4266, "available": 10000 } } }
This API call is deprecated, please use the Email Verification call instead.
This API endpoint allows you to check if a given email address has been found on the web. If it has been found, it returns all the sources with the dates of the last crawls.
email
Required*
|
The email address you want to check. |
api_key
Required*
|
Your secret API key. You can retrieve it in your dashboard. |
The number of sources is limited to 20.
GET https://api.hunter.io/v1/exist?email=patrick@stripe.comAPI_KEY
Get my free API key
{ "status": "success", "email": "patrick@stripe.com", "exist": true, "sources": [ { "domain": "10monstor.com", "uri": "http://10monstor.com/an-open-letter-to-stripe-its-founders", "extracted_on": "2018-08-13" }, { "domain": "apify.com", "uri": "http://apify.com/vdrmota/twitter-scraper", "extracted_on": "2019-08-28" } ] }