---
title: "Create a batch email validation job"
method: POST
path: "/email_validations/batch"
tags: ["Email Validations"]
---

# Create a batch email validation job

`POST /email_validations/batch`

Creates an asynchronous batch validation job for up to 1,000 email addresses.

## Headers

- `Idempotency-Key` string

## Request body

- CreateEmailValidationBatchRequest
  - `emails` string[], required
  - `webhook_url` string, uri — URL for batch completion webhook. Empty string is treated as omitted. SSRF-protected; private/reserved IPs and internal hostnames are rejected.

## Response `202`

Batch validation job accepted. Poll GET /email_validations/batch/{id} with the returned batch id to retrieve results.

- EmailValidationBatchResponse
  - `data` EmailValidationBatch, required — Shape returned by the create endpoint. Includes duplicates_removed.
    - `duplicates_removed` integer, required
    - `id` string, uuid, required
    - `record_type` 'email_validation_batch', required
    - `status` 'pending' | 'processing' | 'completed' | 'failed', required
    - `total` integer, required
    - `webhook_url` string, uri

## Other responses

- `400` — Missing or invalid email list, or batch size exceeded. Invalid, duplicate, empty, malformed, or overlong Idempotency-Key headers are rejected by Edge with HTTP 400 and error code 10015.
- `401` — Not authorized (10006).
- `409` — A request with the same Idempotency-Key is still being processed (10036). Retry later with the same key and request.
- `413` — Request body exceeds the 8,000,000-byte limit for this endpoint.
- `422` — Changeset validation error (e.g. invalid webhook_url). Reusing an Idempotency-Key with a different request also returns 422 (10027).
- `500` — Internal server error (10019).
- `503` — Service unavailable (10016), including an unavailable upstream dependency or unavailable Edge idempotency protection for a keyed request.

## Changes

- **2026-07-16** `2fb3b617430a` — 14 warning, 7 info
  - added the new `recipient_suppressed` enum value to the `errors/items/code` response property for the response status `400`
  - added the new `recipient_suppressed` enum value to the `errors/items/code` response property for the response status `401`
  - added the new `recipient_suppressed` enum value to the `errors/items/code` response property for the response status `409`
  - added the new `recipient_suppressed` enum value to the `errors/items/code` response property for the response status `413`
  - …17 more
- **2026-07-14** `021f0faf96df` — 1 breaking, 1 warning
  - for the `header` request parameter `Idempotency-Key`, the maxLength was decreased from `512` to `255`
  - changed the pattern of the `header` request parameter `Idempotency-Key` from `^(?:[A-Za-z0-9_-]{1,255}|"(?:[\x20-\x21\x23-\x5B\x5D-\x7E]|\\["\\]){1,255}")$` to `^[A-Za-z0-9_-]{1,255}$`
- **2026-07-12** `b3c5aebde44c` — 8 warning, 4 info
  - added the new `10027` enum value to the `errors/items/code` response property for the response status `400`
  - added the new `10027` enum value to the `errors/items/code` response property for the response status `401`
  - added the new `10027` enum value to the `errors/items/code` response property for the response status `422`
  - added the new `10027` enum value to the `errors/items/code` response property for the response status `500`
  - …8 more
- **2026-07-07** `6ef0ae248bf7` — 1 info
  - endpoint added
- …earlier changes not shown

[Full history](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/changes/email_validations/batch/post.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api-2.md) · [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/team-telnyx/telnyx-api-2/revisions/3fdc16374d70/schema)
