API CatalogBulk Email Verification

Bulk Email Verification API

Validate email lists, clean CRM imports, detect disposable and role-account addresses, and check whether domains have MX, SPF, and DMARC records. The API supports JSON batches and CSV uploads through RapidAPI.

Open Bulk Email Verification API on RapidAPI

Base URL and authentication

https://bulk-email-verification-api.p.rapidapi.com

All requests authenticate through RapidAPI. JSON endpoints use these headers:

HeaderValue
Content-Typeapplication/json
X-RapidAPI-KeyYour RapidAPI key
X-RapidAPI-Hostbulk-email-verification-api.p.rapidapi.com

CSV uploads use multipart/form-data; your HTTP client usually sets the exact Content-Type boundary automatically.

See Authentication, Rate limits, and Errors for shared behavior.

Response envelope

All endpoints return the standard ApiMask envelope:

{
  "success": true,
  "data": {},
  "error": null,
  "meta": {
    "request_id": "req_example"
  }
}

Endpoints

EndpointMethodDescription
/v1/email/bulk/validatePOSTValidate up to 500 emails from JSON
/v1/email/bulk/validate-csvPOSTValidate up to 1,000 emails from a CSV upload
/v1/email/domain/healthPOSTCheck MX, SPF, and DMARC records for domains
/v1/email/disposable/checkPOSTBatch-check disposable email domains
/v1/email/role-account/checkPOSTBatch-check role-account addresses

Bulk validate emails

POST /v1/email/bulk/validate validates email syntax and can optionally check MX records, disposable domains, and role-account local parts.

Request body

FieldTypeRequiredDefaultDescription
emailsstring[]Yes-Email addresses to validate. 1-500 items.
check_mxbooleanNotrueCheck whether each domain has MX records.
check_disposablebooleanNotrueDetect disposable email domains.
check_role_accountbooleanNotrueDetect role accounts such as support@, sales@, and info@.

Example

curl --request POST \
  --url https://bulk-email-verification-api.p.rapidapi.com/v1/email/bulk/validate \
  --header "Content-Type: application/json" \
  --header "X-RapidAPI-Key: $RAPIDAPI_KEY" \
  --header "X-RapidAPI-Host: bulk-email-verification-api.p.rapidapi.com" \
  --data '{"emails":["[email protected]","[email protected]","[email protected]"],"check_mx":true,"check_disposable":true,"check_role_account":true}'
{
  "success": true,
  "data": {
    "results": [
      {
        "input": "[email protected]",
        "is_valid": true,
        "email": "[email protected]",
        "local_part": "hello",
        "domain": "example.com",
        "is_disposable": false,
        "has_mx_records": true,
        "is_role_account": false,
        "reason": null
      }
    ],
    "summary": {
      "total": 3,
      "valid": 3,
      "invalid": 0,
      "disposable": 1,
      "role_accounts": 1,
      "domains_with_mx": 3,
      "duplicates": 0
    }
  },
  "error": null,
  "meta": { "request_id": "req_example" }
}

CSV upload

POST /v1/email/bulk/validate-csv validates email addresses from an uploaded CSV file. The CSV can contain an email column; if it does not, the first column is treated as the email column.

Limits

LimitValue
Rows1,000 maximum
File size512 KB maximum

Example

curl --request POST \
  --url https://bulk-email-verification-api.p.rapidapi.com/v1/email/bulk/validate-csv \
  --header "X-RapidAPI-Key: $RAPIDAPI_KEY" \
  --header "X-RapidAPI-Host: bulk-email-verification-api.p.rapidapi.com" \
  --form "[email protected]"
email,name
[email protected],Ada
[email protected],Support

Domain health

POST /v1/email/domain/health checks MX, SPF, and DMARC readiness for email domains.

Request body

FieldTypeRequiredDescription
domainsstring[]YesDomains to check. 1-500 items.

Example

curl --request POST \
  --url https://bulk-email-verification-api.p.rapidapi.com/v1/email/domain/health \
  --header "Content-Type: application/json" \
  --header "X-RapidAPI-Key: $RAPIDAPI_KEY" \
  --header "X-RapidAPI-Host: bulk-email-verification-api.p.rapidapi.com" \
  --data '{"domains":["example.com","apimask.dev"]}'

Disposable and role-account checks

Use these focused endpoints when you only need a single classification pass.

EndpointBody
/v1/email/disposable/check{ "emails": ["[email protected]"] }
/v1/email/role-account/check{ "emails": ["[email protected]"] }

Both endpoints accept 1-500 email addresses.

Notes

  • This API checks syntax, domains, MX records, disposable providers, role accounts, SPF, and DMARC.
  • SMTP mailbox probing is not included in V1.
  • Validation improves list quality but does not guarantee that a mailbox exists or that an email will be delivered.