REST API Documentation
Real-time email verification, synchronous batch checking, and high-volume asynchronous bulk cleaning on autopilot.
API Authentication
All requests to the Vimehi REST API authenticate using an HTTP Authorization header with standard Bearer Token format (or alternatively using the x-api-key header).
Authorization: Bearer vim_live_YOUR_SECRET_API_KEYWhere do I find my API key?
You can generate and reveal secret API keys anytime in the Customer Dashboard → API Keys tab. Keys are permanently visible via the eye toggle.
Base URL & Execution Modes
All API endpoints are served over secure HTTPS:
Latency
< 350ms average
Sync Batch Limit
Up to 200 emails
Async Bulk Limit
Up to 50,000 emails
Single Email Verification
Inspect an individual email address in real-time. Performs syntax checks, throwaway disposable filtering, MX validation, and deep mailbox ping.
curl -X POST https://vimehi.com/api/verify/single \
-H "Authorization: Bearer vim_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "alex@company.com"}'{
"success": true,
"jobCode": "JOB-SGL-MTSVNGFJ-TGUW",
"result": {
"address": "alex@company.com",
"status": "valid",
"diagnosis": "Mailbox exists and accepts incoming messages",
"isRoleBased": false,
"isDisposable": false,
"isFreeDomain": false,
"isCatchAll": false,
"enrichment": {
"isFreeDomain": false,
"isRoleBased": false,
"spfConfigured": true,
"dmarcPolicy": "reject"
}
},
"credits_remaining": 9998
}Synchronous Batch Verification (Up to 200 Emails)
Verify small lists (1 to 200 emails) in a single synchronous call. Results are returned immediately in the HTTP response within a few seconds.
curl -X POST https://vimehi.com/api/v1/verify/batch \
-H "Authorization: Bearer vim_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"emails": [
"user1@domain.com",
"user2@company.org",
"sales@enterprise.io"
]
}'Asynchronous Bulk Verification API (Up to 50,000 Emails)
Designed for large lists of thousands of emails without HTTP timeouts. Submits the payload and returns an immediate jobCode (< 200ms). Our backend processes the list in safe internal batches of 100.
curl -X POST https://vimehi.com/api/v1/verify/bulk \
-H "Authorization: Bearer vim_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "newsletter_leads.csv",
"emails": [
"lead1@corp.com",
"lead2@agency.io",
"..."
]
}'{
"success": true,
"jobCode": "JOB-BLK-79B8DF2E",
"filename": "newsletter_leads.csv",
"totalEmails": 5000,
"status": "queued",
"phase": "Queued for processing",
"creditsUsed": 5000,
"remainingCredits": 4997,
"statusUrl": "/api/v1/verify/jobs/JOB-BLK-79B8DF2E",
"message": "Bulk verification job successfully queued. Poll statusUrl to track progress or download results."
}Check Bulk Job Status & Download Results
Poll real-time job progress (0–100%) and retrieve download URLs for cleaned CSV lists once finished.
curl -X GET https://vimehi.com/api/v1/verify/jobs/JOB-BLK-79B8DF2E \ -H "Authorization: Bearer vim_live_YOUR_API_KEY"
{
"success": true,
"jobCode": "JOB-BLK-79B8DF2E",
"filename": "newsletter_leads.csv",
"totalEmails": 5000,
"processedEmails": 5000,
"progressPercent": 100,
"status": "completed",
"phase": "Completed",
"resultCounts": {
"valid": 4620,
"invalid": 310,
"catchAll": 55,
"disposable": 15,
"duplicate": 0
},
"downloads": {
"all": "https://vimehi.com/api/verify/download?url=...&name=newsletter_leads.csv",
"valid": "https://vimehi.com/api/verify/download?url=...&name=valid-newsletter_leads.csv",
"invalid": "https://vimehi.com/api/verify/download?url=...&name=invalid-newsletter_leads.csv"
},
"createdAt": "2026-09-09T05:20:00Z",
"updatedAt": "2026-09-09T05:22:15Z"
}Check Account Balance & Credits
Query remaining credits available on your account.
curl -X GET https://vimehi.com/api/user/credits \ -H "Authorization: Bearer vim_live_YOUR_API_KEY"
{
"success": true,
"credits": 9998,
"email": "alex@company.com"
}HTTP Status Codes & Errors
Standard HTTP status codes are returned to indicate the success or failure of requests.
| Code | Meaning | Description |
|---|---|---|
| 200 OK | Success | Request succeeded. Verification result or job details returned. |
| 202 Accepted | Job Queued | Bulk job accepted and queued for asynchronous background processing. |
| 400 Bad Request | Invalid Input | Missing email, invalid payload structure, or batch limit exceeded. |
| 401 Unauthorized | Auth Failure | Missing, malformed, or revoked API key. |
| 402 Payment Required | Insufficient Credits | Account has 0 credits. Recharge credits in your dashboard. |
| 404 Not Found | Job Not Found | Job code does not exist or belongs to another customer account. |
| 500 Server Error | Processing Error | Temporary upstream error. Credits are automatically refunded if deducted. |