When processing completes for the Find Emails by Track ID endpoint, a POST request is sent to your webhook URL with the full results.
📘
- You call the API endpoint and include a
webhook field with your callback URL
- The API responds immediately with a
trackId and state: "PENDING"
- When processing completes, a
POST request is sent to your webhook URL with Content-Type: application/json
| Field | Type | Description |
|---|
trackId | string | Unique identifier for tracking this request |
state | string | Final state of the job: "DONE" |
description | string | null | Optional description |
statistics | object | Summary statistics of the results |
statistics.total | integer | Total number of records |
statistics.found | integer | Number of records where email was found |
data | array | Array of result items |
Each item in data contains the input used for the search and the email finding result.
| Field | Type | Description |
|---|
refId | string | Unique reference ID for this record |
state | string | State of this individual record ("DONE") |
input | object | The input parameters used for email search |
input.firstname | string | First name of the person |
input.lastname | string | Last name of the person |
input.domain | string | Company domain used for email search |
output | array | Array of email finding results |
| Field | Type | Description |
|---|
address | string | The discovered email address (only present when found: true) |
date | string | Timestamp of the verification (ISO 8601) |
domainType | string | Type of domain: "SMTP", "CATCH_ALL", or "UNKNOWN" |
found | boolean | Whether an email was found |
free | boolean | Whether the email is on a free provider |
generic | boolean | Whether the email is a generic address (e.g., info@) |
status | string | Verification status: "VALID" or "INVALID" |
subStatus | string | Detailed status: "EMPTY", "MAILBOX_NOT_FOUND", or "FAILED_SYNTAX_CHECK" |
mx | object | MX record details |
mx.found | boolean | Whether MX records were found |
mx.google | boolean | Whether the domain uses Google |
mx.provider | string | null | Email provider: "microsoft", "g-suite", "mimecast", "barracuda", "proofpoint", "cisco ironport", "other", or null |
mx.record | string | null | MX record value |
{
"trackId": "1c83c619-8d23-4922-8b81-ad27bf78d2b2",
"state": "DONE",
"description": null,
"statistics": {
"found": 56,
"total": 100
},
"data": [
{
"refId": "d56aea1a-6b59-2cae-68f2-95952067dbca",
"state": "DONE",
"input": {
"firstname": "Rogério",
"lastname": "Veríssimo",
"domain": "estrelabet.com"
},
"output": [
{
"address": "[email protected]",
"date": "2026-03-06T14:41:53.000474",
"domainType": "SMTP",
"found": true,
"free": true,
"generic": false,
"status": "VALID",
"subStatus": "EMPTY",
"mx": {
"found": false,
"google": false,
"provider": null,
"record": null
}
}
]
}
]
}
{
"trackId": "1c83c619-8d23-4922-8b81-ad27bf78d2b2",
"state": "DONE",
"description": null,
"statistics": {
"found": 56,
"total": 100
},
"data": [
{
"refId": "aaa4fb3e-04cf-711a-8e6c-9a8d546240ba",
"state": "DONE",
"input": {
"firstname": "Rinoy",
"lastname": "J Vincent",
"domain": "bizstaffingcomrade.com"
},
"output": [
{
"date": "2026-03-06T14:46:40.000145",
"domainType": "UNKNOWN",
"found": false,
"generic": false,
"status": "INVALID",
"subStatus": "MAILBOX_NOT_FOUND",
"mx": {
"found": false,
"google": false,
"provider": null,
"record": null
}
}
]
}
]
}
- Use HTTPS for your webhook URL to ensure data is encrypted in transit
- Respond quickly with a
200 OK status — process the data asynchronously on your side
- Store the
trackId from the initial API response so you can match it with the webhook callback
- Handle duplicates in rare cases, a webhook may be delivered more than once
- Automatic retries we retry webhook delivery up to 30 times. If you still need to re-trigger the webhook, use the Resend Webhook Notification endpoint