Knowing whether an email is safe to send is only part of the picture. Now you can also tell when it's the contact's main address — particularly helpful for executives and senior decision-makers who often have more than one valid email.
The validation response now includes a new subStatus field. When Allegrow has identified the email as the contact's primary address, subStatus returns "primary". Otherwise it's null.
We've also given the response a tidier shape. Validation results now live inside a dedicated result object instead of being stacked at the top level alongside everything else. That keeps the shape predictable as we add richer per-email information in future releases — think MX records, catch-all behavior, and mailbox details — without the top level turning into a sprawl.
Here's what a successful validation response looks like now:
{
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"email": "[email protected]",
"allegrowStatus": "safe",
"result": {
"status": "safe",
"subStatus": "primary"
}
}
What changed in detail:
result.status — the validation outcome. Same values you're used to (safe, do_not_mail_abuse, some_risk, block_bounce_risk, dead_email), now nested under result.
result.subStatus — "primary" when the email is the contact's main address, otherwise null.
allegrowStatus — still returned on every response, always mirrors result.status. Deprecated — will be removed in a future release. Please migrate to reading result.status when you're ready.
Timeouts now use HTTP 202 with a pollUrl and a retryAfter instead of returning a top-level more_time_required string. Branch on the HTTP status code (200 means done, 202 means try again later) rather than reading a status field.
Nothing breaks today. Both result.status and allegrowStatus carry the same value during the deprecation period, so existing integrations keep working while you migrate.