New subStatus field, cleaner response shape
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.