---
title: "Verify emails in bulk"
method: POST
path: "/v1/email-validation/"
tags: ["Email Verifier"]
---

# Verify emails in bulk

`POST /v1/email-validation/`

## Request

- Base URL: `https://api.evaboot.com`
- URL: `https://api.evaboot.com/v1/email-validation/`
- Auth: HTTP bearer

Create a job that verifies a list of email addresses and tells you whether each one is deliverable.

Verification runs in the background, so this call returns `202` with a `job_id` as soon as the job is accepted. Poll `GET /v1/email-validation/{job_id}/` for progress and results, or supply a `webhook_url` and be notified when the job finishes.

Each address checked costs 1 credit, whatever the verdict. An address the check could not complete (`error`) is not charged. The charge is applied when the job completes.

## Request body

- EmailValidationJobIn: Bulk email-validation request. Same shape as the finder job minus the name/company fields. Matches legacy ``EmailValidationJobSerializer``.
  - `job_name` string: Your own label for the job, so you can recognize it later in the Evaboot dashboard.
  - `webhook_url` string: Optional HTTPS URL to notify when the job finishes. It receives a POST carrying the same payload as the job-retrieval endpoint. Leave empty to poll instead.
  - `prospects` EmailValidationProspectIn[]: The addresses to verify, one entry per address. Leave empty when sending `source`.
    - `email` string, required: The email address to verify.
    - `source_ref` string: Optional. The `source_ref` of a lead read from a connected integration. With `write_back` on, the result is written back to that record.
  - `source` LeadSourceIn
    - `integration_id` string, uuid, required: A connected integration, from `GET /v1/integrations/`.
    - `source_id` string, required: A source of that integration, from `GET /v1/integrations/{id}/sources/`.
    - `max_leads` integer: Most leads to read from the source. The job costs at most this many credits.
  - `write_back` boolean: Write each result back onto the record its prospect's `source_ref` points to, once the job is paid for. Fills empty fields only and never creates a record.

## Response `202`

Accepted

- EmailValidationJobAcceptedOut: POST response — accepted-and-queued. HTTP 202. Matches legacy ``email_finder.py:457-461``.
  - `success` boolean: True when the job was accepted.
  - `job_id` string, required: Identifier of the new job. Pass it to the job-retrieval endpoint to poll for results.
  - `message` string: Human-readable confirmation that the job started.

## Other responses

- `401`: The API key is missing, malformed or unknown.
- `422`: The request body or a supplied URL failed validation.

---

[API](https://skmtc.dev/evaboot/apis/evaboot-public-api.md) · [All operations](https://skmtc.dev/evaboot/apis/evaboot-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/evaboot/apis/evaboot-public-api/revisions/d770494f2718?raw)
