Skip to content

Validate multiple emails

Request

Validate up to 1,000 unique email addresses in a single request. Each email is validated independently with full results returned, including the full intelligence layer.

Synchronous mode (default for up to 100 emails):

  • Up to 100 unique emails per request
  • Results returned directly in the response (unchanged legacy behavior)

Asynchronous mode (automatic above 100 emails, or async: true):

  • Up to 1,000 unique emails per request
  • Returns 202 Accepted immediately with a job_id
  • Emails are processed in background chunks — the request never hits proxy/CDN timeouts
  • Poll GET /api/v1/address/validate/batch/{jobId} for progress
  • Fetch per-email results from GET /api/v1/address/validate/batch/{jobId}/results
  • Only successfully processed validations are charged against your quota

Batch processing:

  • Duplicate emails are removed before processing
  • Each email validated independently
  • Consumes 1 validation credit per processed email
  • All results include confidence_score, confidence_label, mx_provider, and email_pattern

Use this for:

  • List cleaning before campaigns
  • Bulk validation of imported contacts (CSV uploads)
  • Pre-send validation of subscriber lists
  • Prioritising sends by confidence level (send to very_high first)

Rate Limit: Consumes from your monthly validation quota (check /api/v1/address/validate/quota)

Security
ApiKeyAuth
Bodyapplication/jsonrequired
emailsArray of strings, (email), [ 1 .. 1000 ] itemsrequired

Array of email addresses to validate (duplicates are removed)

Example:
[ "user1@example.com", "user2@gmail.com" ]
asyncboolean

Force asynchronous processing. Batches over 100 unique emails are always processed asynchronously regardless of this flag.

Default:false
curl -i -X POST \
  https://api.mailerlogic.net/api/v1/address/validate/batch \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "emails": [
      "user1@example.com",
      "user2@gmail.com"
    ],
    "async": false
  }'

Responses

Batch validation completed

Bodyapplication/json
totalinteger

Total emails validated

valid_countinteger

Number of valid emails

invalid_countinteger

Number of invalid emails

resultsArray of objects(EmailValidationResult)
usageobject
Response
{ "total": 3, "valid_count": 2, "invalid_count": 1, "results": [ {}, {}, {} ], "usage": { "used": 153, "limit": 1000, "remaining": 847 } }