API overview: endpoints, auth, response format, and rate limits at a glance

Last updated May 19, 2026API

The Valid Email Checker REST API lets you wire email verification into anything — signup forms, lead-enrichment workflows, CRM integrations, custom dashboards. This page is the high-level map: base URL, the three endpoints, authentication, response shape, and rate limits. The endpoint-specific articles drill into each one.

What you can do

  • Verify single emails in real time — ideal for signup-form validation and lead capture.
  • Verify lists asynchronously — submit a batch, poll for results.
  • Drive workflows — power CRM imports, marketing automation, or any pipeline that touches contact data.
  • Build custom UIs — your own verifier on top of our infrastructure.

Base URL

All requests go to:

https://app.validemailchecker.com/api/

The three endpoints

MethodPathWhat it does
POST/verify-singleVerify one email address synchronously
POST/verify-bulkSubmit a list — get back a task_id
GET/get-results/{task_id}Retrieve bulk-verification results by task ID

Single verification returns the result in the same response. Bulk is a two-step asynchronous flow: create a task, then poll for results.

Authentication

Every request needs an API key passed as a Bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY
Treat your API key like a password
Never commit it to a public repo. Never share it. Use environment variables. If a key is exposed, regenerate it immediately from the Developer page.

Example request

bash
curl -X POST https://app.validemailchecker.com/api/verify-single \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com"}'

Before you start

1. Make a credit purchase

API access unlocks after your first credit purchase — any PAYG package or any monthly plan qualifies. This keeps automated abuse of the free signup credits off the platform while leaving the dashboard fully usable on the free tier. See pricing and bonus credits.

2. Generate an API key

Open the Developer page from the sidebar of your dashboard. Click Generate, confirm a 6-digit code sent to your email, and copy the key. The full key is shown exactly once — store it somewhere safe immediately.

See generating API keys for the full walkthrough.

How credits work over the API

  • 1 credit per email, whether single or bulk.
  • Credits are deducted as verification completes.
  • `unknown` results are auto-refunded — you never pay for an answer we could not produce.
  • API and dashboard share one credit pool. There is no separate "API credits" balance.

See the credit system explained for buckets and consumption order.

Response format

All responses are JSON.

Successful single verification

json
{
  "email": "user@example.com",
  "status": "safe",
  "is_valid": true,
  "is_disposable": false,
  "is_role_account": false,
  "is_catch_all": false,
  "is_free_email": true,
  "mx_found": true,
  "domain": "example.com",
  "risk_score": 15,
  "deliverability": "high",
  "credits_used": 1,
  "verified_at": "2026-05-19T10:30:00.000Z",
  "reason": "Valid mailbox"
}

Error response

json
{
  "error": "Invalid or inactive API key"
}

Status values

StatusDescriptionSafe to send?
safeValid, deliverable mailboxYes
riskyDeliverable but flagged (uncommon in practice)Use caution
invalidMailbox does not existNo
disposableThrowaway/temporary email serviceNo
catch_allDomain accepts mail to any addressUse caution
role_accountTeam address (info@, support@, etc.)Depends
spamtrapHoneypot — sending will hurt your reputationNever
inbox_fullMailbox at capacity right nowRetry later
disabledAccount was deactivatedNo
unknownCouldn't complete verification (auto-refunded)Retry later

For the full breakdown of what each status means and what to do with it, see result types explained.

Response fields

FieldTypeDescription
emailstringThe address that was verified
statusstringVerification result (see table above)
is_validbooleanWhether the email is deliverable
is_disposablebooleanThrowaway/temporary email?
is_role_accountbooleanTeam email (info@, admin@)?
is_catch_allbooleanDomain accepts everything?
is_free_emailbooleanFree provider (Gmail, Yahoo, etc.)?
mx_foundbooleanDomain has MX records?
domainstringDomain portion of the email
risk_scoreinteger0–100 (lower = safer)
deliverabilitystringhigh, medium, low, or unknown
credits_usedintegerCredits consumed (usually 1)
verified_atstringISO 8601 timestamp
reasonstringHuman-readable explanation

Rate limits

EndpointPer-minute limitDaily limit
/verify-single6010,000
/verify-bulk6010,000
/get-results/{task_id}12010,000

Exceed either limit and you get a 429 Too Many Requests with a Retry-After header. See rate limits and error handling for the full error matrix and code patterns.

Security features

  • SHA-256 hashed key storage — the plain-text key is never stored. We can only show it once at creation.
  • Email verification on new keys — a 6-digit code confirms account ownership.
  • Per-minute and per-day rate limits with rolling windows.
  • Automatic IP blocking on repeated authentication failures or abuse patterns.
  • Per-key lifecycle controls — disable, regenerate, or delete any key from the dashboard.

Quick start

  1. Generate a key on the Developer page (after your first credit purchase).
  2. Make a test request to /verify-single with a known-good address.
  3. Check the JSON response — status: "safe" means everything is wired up.

Next steps