API overview
The EmailShield API lets your own tools do what the dashboard does: verify one address or a list, follow the job, and read the results. JSON in, JSON out.
| Base URL | https://app.emailshield.co/api |
| Authentication | X-API-Key: evf_… header on every request |
| Format | JSON request and response bodies |
| Who can use it | Any paid account — any plan, or a single top-up |
What you can do
Section titled “What you can do”| Endpoint | What it does |
|---|---|
POST /v1/verify/single | Verify one address and wait for the answer |
POST /v1/verify/bulk | Submit up to 50,000 addresses as a job |
GET /v1/jobs/{job_id} | Job progress and totals — the endpoint to poll |
GET /v1/jobs/{job_id}/results | Results, page by page |
GET /v1/jobs | Your recent jobs |
GET /v1/account, /v1/account/credits, /v1/subscription | Plan and credit balance |
DELETE /v1/keys/{key_id} | Revoke an API key |
Every endpoint, with request and response fields: API reference.
API keys
Section titled “API keys”Create keys in the app under Profile → API. A key starts with evf_ and is shown once — copy it into your secret store straight away. To rotate a key, create a new one, update your integration, then revoke the old one.
Keep keys on your server. Never put one in a browser, a mobile app or a public repository.
Credits
Section titled “Credits”The API uses the same credits as the dashboard: 1 credit per unique address, charged when the job is submitted, with Unknown results refunded when it finishes. Duplicates within one call are removed before charging. Reading jobs and results is free.
How much you can send
Section titled “How much you can send”API allowances count verifications (addresses), not requests, and they’re shared by every key on your account. Polling and reading results never count.
| Plan | Keys | Per hour | Per day |
|---|---|---|---|
| Starter | 1 | 10,000 | 10,000 |
| Growth | 3 | No hourly limit | 50,000 |
| Plus | 3 | No hourly limit | 100,000 |
| Pro, Scale, Scale Max | 10 | Unlimited | Unlimited |
Top-ups raise the allowance too, by the total you’ve ever bought: any top-up gives 1 key and 10,000 a day; 100,000+ gives 3 keys and 50,000 a day; 500,000+ is unlimited. If you have both a plan and top-ups, the more generous limit applies.
One bulk call carries up to 50,000 addresses. For bigger lists, split them into several calls, or upload the file in the dashboard (up to 2,000,000). The dashboard is never rate-limited.
Getting results: poll or webhook
Section titled “Getting results: poll or webhook”Bulk jobs run in the background. Either:
- Poll
GET /v1/jobs/{job_id}every 10–30 seconds untilterminalistrue, then read the results; or - Pass a
webhook_urlwhen you submit, and we’llPOSTa signed message to it when the job finishes. Webhooks →
Ready to try it? API quickstart →