Skip to Content
Getting StartedIntroduction

Introduction

VerifNow is a high-performance data validation API built for developers. It validates emails, phone numbers, and more — with a strong focus on email verification. Whether you’re building a SaaS product, running marketing campaigns, or cleaning up user databases, VerifNow gives you the tools to keep your data clean and reliable.

Why data validation?

Invalid data hurts your business:

  • Increased bounce rates push your domain into spam folders
  • Disposable addresses inflate your user counts with fake accounts
  • Typos frustrate users who genuinely want to sign up
  • Invalid phone numbers lead to failed communications

VerifNow catches these issues at the point of entry — in real time.


How it works

VerifNow performs a multi-layer validation pipeline. For email validation, the following checks are performed:

CheckDescription
Syntax validationEnsures the address follows valid email format
MX record lookupConfirms the domain has valid mail exchange records
Disposable detectionFlags known throwaway email providers
Role account detectionIdentifies addresses like info@, admin@, noreply@
Free provider detectionMarks addresses from Gmail, Yahoo, Hotmail, etc.
Typo detectionDetects typos and suggests the correct domain
Domain ageReports the age of the domain in days
MX provider & qualityIdentifies the mail provider and scores its quality
Risk scoringReturns a risk score (0–100) and risk level
Deliverability assessmentEvaluates if the email is deliverable

Base URL

All validation requests are made to:

https://api.verifnow.io/api/v1/validate

Validation endpoints

All endpoints accept a POST request with a JSON body containing the value to validate:

{ "value": "user@example.com" }
TypeEndpoint
EmailPOST /api/v1/validate/email
PhonePOST /api/v1/validate/phone
More coming soonPOST /api/v1/validate/...

Authentication

VerifNow uses API key authentication. Every request must include your API key in the X-API-KEY header.

X-API-KEY: your_api_key_here

Keep your API key out of your source code and client-side bundles. Use environment variables.

Getting your API key

  1. Sign up at app.verifnow.io 
  2. Navigate to Settings → API Keys
  3. Click Create new key
  4. Copy the key — it will only be shown once

Store it as an environment variable:

# .env.local VERIFNOW_API_KEY=your_api_key_here

Plans & quotas

PlanValidations per billing periodConcurrent requestsMax API keysOverage behavior
FREE50011Blocked
STARTER10,00012Billed per unit
GROWTH50,00025Billed per unit
PRO150,0001020Billed per unit
  • FREE plan: requests are blocked once the limit is reached.
  • Paid plans (STARTER, GROWTH, PRO): requests above the quota are billed per unit at the end of the billing period.
  • Concurrent requests: all plans enforce a maximum number of simultaneous requests. Exceeding this returns a 429 error. On non-PRO plans, a 429 can also happen temporarily because of shared server-side concurrency protection, even if you are still within your documented per-plan limit.
  • Quota reset: quotas are reset at the start of each billing period (e.g., if your subscription started on the 4th, quotas reset every 4th of the month for a monthly subscription).

See Rate Limits for more details.


Response format

All validation responses share a common structure:

{ "valid": true, "message": "Email address is valid but has risk factors", "normalizedValue": "user@example.com", "originalValue": "user@example.com", "validationLevel": "PREMIUM" }

For email validations, an additional emailDetails field is included:

{ "valid": true, "message": "Email address is valid but has risk factors", "normalizedValue": "user@example.com", "originalValue": "user@example.com", "validationLevel": "PREMIUM", "emailDetails": { "signals": { "syntax_valid": true, "mx_valid": true, "typo_detected": false, "suggested_domain": null, "disposable": false, "role_based": false, "free_provider": false, "domain_age_days": 11554, "mx_provider": "google", "mx_quality_score": 0.9 }, "risk_score": 30, "risk_level": "MEDIUM", "deliverability": "RISKY", "applied_level": "PREMIUM" } }

Key fields

FieldDescription
validWhether the value passed validation
messageHuman-readable validation summary
normalizedValueThe cleaned/normalized version of the input
originalValueThe original value as submitted
validationLevelThe validation depth applied (e.g., PREMIUM)
emailDetails(Email only) Detailed email-specific signals and scoring

Risk levels (email)

Risk LevelMeaning
LOWLow risk — safe to use
MEDIUMMedium risk — some risk factors detected
HIGHHigh risk — significant risk factors

Deliverability values (email)

DeliverabilityMeaning
DELIVERABLEThe email is deliverable with high confidence
RISKYThe email may be deliverable but has risk factors
UNDELIVERABLEThe email is not deliverable

SDKs & libraries

Java / Spring Boot SDK — An official SDK is available to simplify integration in Spring projects:

For other languages, use the REST API directly — it’s just a few lines of code. See the Examples section.

Support

Last updated on