curl --request GET \
--url 'https://api.enrow.io/email/find/bulk?id=3d4cb64e-i64d-41e8-a686-736751004a32' \
--header 'x-api-key: YOUR_API_KEY'
const batchId = '3d4cb64e-i64d-41e8-a686-736751004a32';
const response = await fetch(`https://api.enrow.io/email/find/bulk?id=${batchId}`, {
headers: {
'x-api-key': process.env.ENROW_API_KEY
}
});
const data = await response.json();
if (data.general.status === 'completed') {
console.log(`Valid: ${data.stats.valid}/${data.stats.requested}`);
console.log(data.results);
}
import requests
import os
batch_id = "3d4cb64e-i64d-41e8-a686-736751004a32"
url = f"https://api.enrow.io/email/find/bulk?id={batch_id}"
headers = {
"x-api-key": os.getenv("ENROW_API_KEY")
}
response = requests.get(url, headers=headers)
data = response.json()
if data["general"]["status"] == "completed":
print(f"Valid: {data['stats']['valid']}/{data['stats']['requested']}")
{
"general": {
"id": "3d4cb64e-i64d-41e8-a686-736751004a32",
"status": "completed",
"custom": "campaign_q2"
},
"stats": {
"finished": 3,
"requested": 3,
"valid": 2,
"credits_cost": {
"initial": 3,
"refunded": 1,
"final": 2
}
},
"results": [
{
"index": "0",
"qualification": "valid",
"email": "dwight.schrute@dundermifflin.com",
"info": {
"domain": "dundermifflin.com",
"firstname": "Dwight",
"lastname": "Schrute",
"companyInfo": {
"name": "Dunder Mifflin"
}
},
"raw_params": {
"company_domain": "dundermifflin.com",
"fullname": "Dwight Schrute"
},
"custom": "lead_001"
},
{
"index": "1",
"qualification": "valid",
"email": "jim.halpert@dundermifflin.com",
"info": {
"domain": "dundermifflin.com",
"firstname": "Jim",
"lastname": "Halpert",
"companyInfo": {
"name": "Dunder Mifflin"
}
},
"raw_params": {
"company_domain": "dundermifflin.com",
"fullname": "Jim Halpert"
},
"custom": "lead_002"
},
{
"index": "2",
"qualification": "invalid",
"email": null,
"raw_params": {
"company_domain": "dundermifflin.com",
"fullname": "Ryan Howard"
},
"custom": "lead_003"
}
]
}
{
"message": "..."
}
Email Finder
Get Bulk Email Results
Retrieve the results, stats, and credit breakdown of a bulk email search by batch ID
GET
/
email
/
find
/
bulk
curl --request GET \
--url 'https://api.enrow.io/email/find/bulk?id=3d4cb64e-i64d-41e8-a686-736751004a32' \
--header 'x-api-key: YOUR_API_KEY'
const batchId = '3d4cb64e-i64d-41e8-a686-736751004a32';
const response = await fetch(`https://api.enrow.io/email/find/bulk?id=${batchId}`, {
headers: {
'x-api-key': process.env.ENROW_API_KEY
}
});
const data = await response.json();
if (data.general.status === 'completed') {
console.log(`Valid: ${data.stats.valid}/${data.stats.requested}`);
console.log(data.results);
}
import requests
import os
batch_id = "3d4cb64e-i64d-41e8-a686-736751004a32"
url = f"https://api.enrow.io/email/find/bulk?id={batch_id}"
headers = {
"x-api-key": os.getenv("ENROW_API_KEY")
}
response = requests.get(url, headers=headers)
data = response.json()
if data["general"]["status"] == "completed":
print(f"Valid: {data['stats']['valid']}/{data['stats']['requested']}")
{
"general": {
"id": "3d4cb64e-i64d-41e8-a686-736751004a32",
"status": "completed",
"custom": "campaign_q2"
},
"stats": {
"finished": 3,
"requested": 3,
"valid": 2,
"credits_cost": {
"initial": 3,
"refunded": 1,
"final": 2
}
},
"results": [
{
"index": "0",
"qualification": "valid",
"email": "dwight.schrute@dundermifflin.com",
"info": {
"domain": "dundermifflin.com",
"firstname": "Dwight",
"lastname": "Schrute",
"companyInfo": {
"name": "Dunder Mifflin"
}
},
"raw_params": {
"company_domain": "dundermifflin.com",
"fullname": "Dwight Schrute"
},
"custom": "lead_001"
},
{
"index": "1",
"qualification": "valid",
"email": "jim.halpert@dundermifflin.com",
"info": {
"domain": "dundermifflin.com",
"firstname": "Jim",
"lastname": "Halpert",
"companyInfo": {
"name": "Dunder Mifflin"
}
},
"raw_params": {
"company_domain": "dundermifflin.com",
"fullname": "Jim Halpert"
},
"custom": "lead_002"
},
{
"index": "2",
"qualification": "invalid",
"email": null,
"raw_params": {
"company_domain": "dundermifflin.com",
"fullname": "Ryan Howard"
},
"custom": "lead_003"
}
]
}
{
"message": "..."
}
GET
Retrieve all results from a batch email search using the batch ID. Authenticate every request with your API key in the
See Error handling for the full list of status codes and response formats.
https://api.enrow.io/email/find/bulk?id={id}
x-api-key header. The batch ID is the id returned when you start a job with the Find Bulk Emails endpoint.
Using a webhook allows you to skip calling this GET endpoint. See How Webhooks Work.
Query Parameters
string
required
The
id returned from the POST requestResponse
200 — Search completed
object
object
Batch statistics
Show stats properties
Show stats properties
number
Number of searches completed
number
Total number of searches requested
number
Number of valid emails found
object
Credit breakdown. Credits are refunded for invalid or not-found results — see Credits & billing for how charges and refunds work.
array
Array of search results
Show Result properties
Show Result properties
string
Position in the original search array
string
valid (email found) or invalid (email not found). Why binary?string
The discovered email address (when
valid)object
Contact info:
domain, firstname, lastname, gender, companyInfo. The firstname and lastname values are capitalized. info is only present for valid results.object
The original search parameters sent
string | object
Custom data passed in the original search
200 — Search still in progress
While the batch is running, the GET endpoint returns HTTP200 with a reduced body of the shape { general: { id, status: "ongoing" }, stats: { finished, requested } }.
object
id and status: "ongoing"object
finished and requested countsError Responses
| Code | Message |
|---|---|
| 400 | Could not retrieve bulk search results |
curl --request GET \
--url 'https://api.enrow.io/email/find/bulk?id=3d4cb64e-i64d-41e8-a686-736751004a32' \
--header 'x-api-key: YOUR_API_KEY'
const batchId = '3d4cb64e-i64d-41e8-a686-736751004a32';
const response = await fetch(`https://api.enrow.io/email/find/bulk?id=${batchId}`, {
headers: {
'x-api-key': process.env.ENROW_API_KEY
}
});
const data = await response.json();
if (data.general.status === 'completed') {
console.log(`Valid: ${data.stats.valid}/${data.stats.requested}`);
console.log(data.results);
}
import requests
import os
batch_id = "3d4cb64e-i64d-41e8-a686-736751004a32"
url = f"https://api.enrow.io/email/find/bulk?id={batch_id}"
headers = {
"x-api-key": os.getenv("ENROW_API_KEY")
}
response = requests.get(url, headers=headers)
data = response.json()
if data["general"]["status"] == "completed":
print(f"Valid: {data['stats']['valid']}/{data['stats']['requested']}")
{
"general": {
"id": "3d4cb64e-i64d-41e8-a686-736751004a32",
"status": "completed",
"custom": "campaign_q2"
},
"stats": {
"finished": 3,
"requested": 3,
"valid": 2,
"credits_cost": {
"initial": 3,
"refunded": 1,
"final": 2
}
},
"results": [
{
"index": "0",
"qualification": "valid",
"email": "dwight.schrute@dundermifflin.com",
"info": {
"domain": "dundermifflin.com",
"firstname": "Dwight",
"lastname": "Schrute",
"companyInfo": {
"name": "Dunder Mifflin"
}
},
"raw_params": {
"company_domain": "dundermifflin.com",
"fullname": "Dwight Schrute"
},
"custom": "lead_001"
},
{
"index": "1",
"qualification": "valid",
"email": "jim.halpert@dundermifflin.com",
"info": {
"domain": "dundermifflin.com",
"firstname": "Jim",
"lastname": "Halpert",
"companyInfo": {
"name": "Dunder Mifflin"
}
},
"raw_params": {
"company_domain": "dundermifflin.com",
"fullname": "Jim Halpert"
},
"custom": "lead_002"
},
{
"index": "2",
"qualification": "invalid",
"email": null,
"raw_params": {
"company_domain": "dundermifflin.com",
"fullname": "Ryan Howard"
},
"custom": "lead_003"
}
]
}
{
"message": "..."
}
Next steps
Find emails in bulk
Start a new batch of up to 5,000 email searches.
Webhooks
Skip polling and get notified when a batch completes.
Credits & billing
See how credits are charged and refunded per result.
Verify emails in bulk
Validate a list of email addresses in a single batch.
Was this page helpful?
⌘I

