Skip to content

Verify Emails in Bulk

Check up to 10,000 email addresses in one request.

POSThttps://api.foxreach.io/api/v1/verification/verify/bulk

Requires an API key with the write scope.

The workspace needs a paid plan and a balance of at least the number of addresses you send, because the check is made up front. Only good and bad verdicts are charged, so creditsUsed can be lower than the count. The call waits for the provider, which works through the list in chunks of 100; large batches can take minutes, and anything the provider has not answered after 15 minutes comes back as error and is not charged. Set a long client timeout. This response is not wrapped in data.

Body Parameters#

emailsarraybodyrequired

1 to 10,000 email addresses. One invalid address rejects the whole request.

Response#

resultsarray

One verdict per address, in the order you sent them.

Show results
emailstring
The address that was checked.
qualitystring
good, bad, unknown or error. Only good and bad use a credit.
resultstring
The reason: accepted, probable, rejected, not_found or error.
didYouMeanstring
A suggested correction for a typo, or null.
freeboolean
true for a free-provider address such as Gmail.
roleboolean
true for a role address such as info@ or support@.
creditsUsedinteger
Credits charged for this request.

Errors#

StatusDescription
401Missing, invalid, revoked or expired API key
403API key does not have the required scope: write
402insufficient_verification_credits: {"detail": {"code": "insufficient_verification_credits", "message": "...", "balance": 0, "required": 1}}
403upgrade_required on the Free plan: {"detail": {"code": "upgrade_required", "limit_type": "email_verification", "message": "..."}}. A missing scope also returns 403 with a plain detail string
422emails is empty, has more than 10,000 entries, or contains an invalid address

Rate Limit#

  • 100 requests per minute, per API key. Fixed 60-second window.
  • Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset (unix epoch seconds).
  • A 429 response includes a Retry-After header (seconds until the bucket resets).

For client-side patterns (Retry-After, exponential backoff, monitoring X-RateLimit-Remaining), see Rate Limiting.

Was this page helpful?
View as MarkdownLast updated November 2, 2026