Verification events
Single addresses verified through the API, and each address in a verification list as it finishes.
email_verification.created
Sent when you verify one address with Verify an address. The verification is already complete, and the payload matches the API response. Addresses in verification lists send email_verification.updated instead.
Webhook requests carry a JSON array of events like this one; see Webhook requests.
Fields
event_idstringEvent ID (evt_…). A retried request carries the same ID, so use it to skip events you already handled. You can also look the event up with Retrieve an event.
typestringAlways email_verification.created.
objectobjectThe verification the event describes. Its fields are listed below.
data.objectobjectThe same object again, in the shape that the Events API returns in data.
Verification object
idstringVerification ID (ev_…).
objectstringAlways email_verification.
emailstringVerified address.
statusstringcompleted when the check finished, or failed.
scoreintegerScore from 0 to 100.
riskstringlow, medium or high.
resultstringsafe, invalid, disposable, disabled, inbox_full, role or unknown. See Verify an address.
modestringfast or full. Addresses in lists are always checked in full mode.
checksobjectIndividual checks. The mailbox checks smtp_connect, deliverable, disabled, inbox_full and catch_all are null in fast mode.
addressobjectThe address split into mailbox, domain, suffix (the part after +) and root.
did_you_meanstring | nullSuggested correction for a likely typo.
mx_recordsobject[]MX records of the domain, each with priority and exchange.
created_atstringWhen the verification was created, in ISO 8601 with a UTC offset.
updated_atstringWhen the verification was last updated.
{
"event_id": "evt_2xLc9Rr4Tn6Wb1Qm8Ks3Vf0Hd7a",
"type": "email_verification.created",
"object": {
"id": "ev_2xLd4Wq8Bn1Ys6Pk3Rm9Tc0Fh5a",
"object": "email_verification",
"email": "ada@example.com",
"status": "completed",
"score": 100,
"risk": "low",
"result": "safe",
"mode": "fast",
"checks": {
"valid_syntax": true,
"disposable": false,
"role_account": false,
"inbox_full": null,
"deliverable": null,
"disabled": null,
"free_email": false,
"gibberish": false,
"catch_all": null,
"smtp_connect": null,
"has_mx_records": true,
"domain_age": 10957
},
"address": {
"mailbox": "ada",
"domain": "example.com",
"suffix": null,
"root": "ada@example.com"
},
"did_you_mean": null,
"mx_records": [
{
"priority": 10,
"exchange": "mx1.example.com"
}
],
"created_at": "2026-10-01T10:20:31.118000+00:00",
"updated_at": "2026-10-01T10:20:31.118000+00:00"
},
"data": {
"object": {
"id": "ev_2xLd4Wq8Bn1Ys6Pk3Rm9Tc0Fh5a",
"object": "email_verification",
"email": "ada@example.com",
"status": "completed",
"score": 100,
"risk": "low",
"result": "safe",
"mode": "fast",
"checks": {
"valid_syntax": true,
"disposable": false,
"role_account": false,
"inbox_full": null,
"deliverable": null,
"disabled": null,
"free_email": false,
"gibberish": false,
"catch_all": null,
"smtp_connect": null,
"has_mx_records": true,
"domain_age": 10957
},
"address": {
"mailbox": "ada",
"domain": "example.com",
"suffix": null,
"root": "ada@example.com"
},
"did_you_mean": null,
"mx_records": [
{
"priority": 10,
"exchange": "mx1.example.com"
}
],
"created_at": "2026-10-01T10:20:31.118000+00:00",
"updated_at": "2026-10-01T10:20:31.118000+00:00"
}
}
}email_verification.updated
Sent when Emailit finishes verifying an address in a verification list, once per address. A list of 10,000 addresses sends 10,000 of these events; if you only need to know when the whole list is done, listen for email_verification_list.updated instead.
Webhook requests carry a JSON array of events like this one; see Webhook requests.
Fields
event_idstringEvent ID (evt_…). A retried request carries the same ID, so use it to skip events you already handled. You can also look the event up with Retrieve an event.
typestringAlways email_verification.updated.
objectobjectThe verification the event describes. Its fields are listed below.
data.objectobjectThe same object again, in the shape that the Events API returns in data.
Verification object
idstringVerification ID (ev_…).
objectstringAlways email_verification.
emailstringVerified address.
statusstringcompleted when the check finished, or failed.
scoreintegerScore from 0 to 100.
riskstringlow, medium or high.
resultstringsafe, invalid, disposable, disabled, inbox_full, role or unknown. See Verify an address.
modestringfast or full. Addresses in lists are always checked in full mode.
checksobjectIndividual checks. The mailbox checks smtp_connect, deliverable, disabled, inbox_full and catch_all are null in fast mode.
addressobjectThe address split into mailbox, domain, suffix (the part after +) and root.
did_you_meanstring | nullSuggested correction for a likely typo.
mx_recordsobject[]MX records of the domain, each with priority and exchange.
created_atstringWhen the verification was created, in ISO 8601 with a UTC offset.
updated_atstringWhen the verification was last updated.
{
"event_id": "evt_2xLc9Rr4Tn6Wb1Qm8Ks3Vf0Hd7a",
"type": "email_verification.updated",
"object": {
"id": "ev_2xLeA1Pn6Rw3Ks8Vb0Ht5Mq2Fd9c",
"object": "email_verification",
"email": "ada@example.com",
"status": "completed",
"score": 100,
"risk": "low",
"result": "safe",
"mode": "full",
"checks": {
"valid_syntax": true,
"disposable": false,
"role_account": false,
"inbox_full": false,
"deliverable": true,
"disabled": false,
"free_email": false,
"gibberish": false,
"catch_all": false,
"smtp_connect": true,
"has_mx_records": true,
"domain_age": 10957
},
"address": {
"mailbox": "ada",
"domain": "example.com",
"suffix": null,
"root": "ada@example.com"
},
"did_you_mean": null,
"mx_records": [
{
"priority": 10,
"exchange": "mx1.example.com"
}
],
"created_at": "2026-10-01T10:30:02.441000+00:00",
"updated_at": "2026-10-01T10:30:09.876000+00:00"
},
"data": {
"object": {
"id": "ev_2xLeA1Pn6Rw3Ks8Vb0Ht5Mq2Fd9c",
"object": "email_verification",
"email": "ada@example.com",
"status": "completed",
"score": 100,
"risk": "low",
"result": "safe",
"mode": "full",
"checks": {
"valid_syntax": true,
"disposable": false,
"role_account": false,
"inbox_full": false,
"deliverable": true,
"disabled": false,
"free_email": false,
"gibberish": false,
"catch_all": false,
"smtp_connect": true,
"has_mx_records": true,
"domain_age": 10957
},
"address": {
"mailbox": "ada",
"domain": "example.com",
"suffix": null,
"root": "ada@example.com"
},
"did_you_mean": null,
"mx_records": [
{
"priority": 10,
"exchange": "mx1.example.com"
}
],
"created_at": "2026-10-01T10:30:02.441000+00:00",
"updated_at": "2026-10-01T10:30:09.876000+00:00"
}
}
}