Skip to main content

Overview

Verify a single email address in real time and return deliverability signals such as syntax, domain, SMTP, and inbox checks.

POST /api/v1/verify

Purpose: perform realtime verification of a single email address (syntax, domain, SMTP, inbox checks).

Request

Headers:
  • Content-Type: application/json
  • X-Request-ID: <string> (optional): request identifier for attribution/tracing.
Body:
  • email (string, required): email address to verify.
Example request:

Response

Status: 200 OK (or 408 Request Timeout with partial results) Example response:
Response fields:
  • id: UUID of the stored verification record when available.
  • email: the verified email address.
  • status: overall verification result. Values: valid, invalid, catchall, invalid_syntax, disposable_domain, unknown.
  • is_role_based: true if the local part is a role account (e.g., support@).
  • is_disposable: true if domain is known disposable.
  • has_mx_records: true if the domain has MX records.
  • has_reverse_dns: true if reverse DNS records exist for the mail host.
  • domain_name: resolved domain name.
  • host_name: mail host (MX) used for SMTP.
  • server_type: mail server type reported by verifier.
  • is_catchall: true if domain accepts any address.
  • validated_at: RFC3339 timestamp of verification completion.
  • unknown_reason: reason when status is unknown.
  • needs_physical_verify: true when inbox check requires manual/physical verification.
Notes:
  • Credits: deducts 1 credit when the resulting status is not unknown and the request is not inside the same-user/same-email free-repeat window.
  • unknown results are free.
  • Same user + same canonical email (trimmed/lowercased) within 24 hours is free-repeat (no additional deduction), including cached responses.
  • Cached responses are billed only when outside the free-repeat window.
  • X-Request-ID is optional and used for attribution; charge idempotency is enforced by a server-generated deterministic key per user/email in 5-minute UTC windows.
Errors:
  • 400 invalid body or email syntax.
  • 401 unauthorized (missing/invalid auth).
  • 402 insufficient credit balance.
  • 408 verification timed out.
  • 429 rate limited.
  • 500 internal error.