Find Emails Webhook Payload

Find Emails by Track ID — Webhook Payload

When processing completes for the Find Emails by Track ID endpoint, a POST request is sent to your webhook URL with the full results.

📘

How Webhooks Work

  1. You call the API endpoint and include a webhook field with your callback URL
  2. The API responds immediately with a trackId and state: "PENDING"
  3. When processing completes, a POST request is sent to your webhook URL with Content-Type: application/json

Top-Level Fields

FieldTypeDescription
trackIdstringUnique identifier for tracking this request
statestringFinal state of the job: "DONE"
descriptionstring | nullOptional description
statisticsobjectSummary statistics of the results
statistics.totalintegerTotal number of records
statistics.foundintegerNumber of records where email was found
dataarrayArray of result items

Data Item Schema

Each item in data contains the input used for the search and the email finding result.

FieldTypeDescription
refIdstringUnique reference ID for this record
statestringState of this individual record ("DONE")
inputobjectThe input parameters used for email search
input.firstnamestringFirst name of the person
input.lastnamestringLast name of the person
input.domainstringCompany domain used for email search
outputarrayArray of email finding results

Output Item Schema

FieldTypeDescription
addressstringThe discovered email address (only present when found: true)
datestringTimestamp of the verification (ISO 8601)
domainTypestringType of domain: "SMTP", "CATCH_ALL", or "UNKNOWN"
foundbooleanWhether an email was found
freebooleanWhether the email is on a free provider
genericbooleanWhether the email is a generic address (e.g., info@)
statusstringVerification status: "VALID" or "INVALID"
subStatusstringDetailed status: "EMPTY", "MAILBOX_NOT_FOUND", or "FAILED_SYNTAX_CHECK"
mxobjectMX record details
mx.foundbooleanWhether MX records were found
mx.googlebooleanWhether the domain uses Google
mx.providerstring | nullEmail provider: "microsoft", "g-suite", "mimecast", "barracuda", "proofpoint", "cisco ironport", "other", or null
mx.recordstring | nullMX record value

Example: Successful Email Found

{
  "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
          }
        }
      ]
    }
  ]
}

Example: Email Not Found

{
  "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
          }
        }
      ]
    }
  ]
}

Best Practices

  • 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