---
title: "API проверки email-адресов для разработчиков | Emvero"
description: "Проверяйте адреса через один REST-эндпоинт. Получайте статус, действие и коды причин в JSON; опрашивайте незавершенные проверки."
url: https://emvero.io/ru/email-verification-api/
language: ru
updated: 2026-10-07
---

API проверки email

# Проверяйте email-адреса через REST API

Подключите проверку email-адресов к своему приложению. Отправьте адрес со своего сервера: Emvero вернет JSON со статусом, рекомендуемым действием и данными, на которых основан результат.

Полная проверка может получить сведения о ящике от почтового сервера. Письмо не отправляется. Если данных недостаточно, API возвращает неопределенный результат.

Начать бесплатно

Документация

Авторизация по Bearer-ключу · Ответ в JSON · Четыре конечных статуса

## Отправьте запрос со своего сервера

Создайте API-ключ в аккаунте и храните его на своем сервере: ключ не должен попадать в код, который получает браузер. Передайте email-адрес в теле запроса и ключ в заголовке авторизации. В примере используется полная проверка, выбранная по умолчанию.

Заголовок `Idempotency-Key` связывает запрос с одной операцией. Если после сетевой ошибки или повторной отправки формы нужно повторить запрос, используйте прежний ключ для того же адреса и глубины проверки. В пределах срока действия ключа это позволяет получить исходный результат без повторной проверки и списания кредитов.

```
curl -sS https://api.emvero.tech/v1/verifications \
  -H "Authorization: Bearer emv_your_credential" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: signup-8f21c0" \
  -d '{"email":"ada@example.com"}'
```

Ниже приведен условный пример ответа с HTTP-кодом `200`. Адрес, идентификатор и значения полей служат для иллюстрации; реальная проверка `example.com` не выполнялась.

```
{
  "id": "5f0b6f3e-1a4c-4a1f-9d2e-8f7b3c2a1d90",
  "email": "ada@example.com",
  "normalized": { "domain": "example.com", "ascii_domain": "example.com" },
  "status": "deliverable",
  "confidence": 0.92,
  "action": "allow",
  "checks": {
    "syntax": "valid",
    "domain": "valid",
    "mail_routing": "valid",
    "smtp": "accepted",
    "accept_all": "no",
    "disposable": false,
    "role_account": false,
    "public_provider": false,
    "smtp_utf8_required": false
  },
  "reason_codes": ["MX_FOUND", "SMTP_RCPT_ACCEPTED"]
}
```

HTTP-код `200` означает, что API вернул результат проверки. Сам адрес при этом может получить статус `undeliverable`. Ошибки HTTP относятся к запросу, авторизации, балансу, лимитам или работе сервиса; по ним нельзя судить о состоянии адреса.

## Как читать результат проверки

Поле `status` описывает результат: `deliverable`, `risky`, `undeliverable` или `unknown`. Поле `action` рекомендует, как обработать адрес: принять (`allow`), продолжить с подтверждением почты (`allow_with_email_confirmation`) или отклонить (`reject`).

Читайте эти поля вместе с причинами. Например, одноразовый ящик может принимать письма и получить `risky` с рекомендацией `allow`. Признак риска сам по себе не означает техническую невозможность доставки, поэтому не определяйте действие только по статусу.

| Статус | Значение | Рекомендация |
| --- | --- | --- |
| deliverable | Свидетельства указывают, что адрес может принимать письма | `allow` |
| risky | Найден признак риска; обработка адреса зависит от причины | `allow_with_email_confirmation` / `allow` |
| undeliverable | Установлена техническая причина, по которой адрес не может принимать письма | `reject` |
| unknown | Недостаточно сведений, чтобы определить, может ли адрес принимать письма | `allow_with_email_confirmation` |
| pending | Проверка ещё выполняется; конечного результата пока нет | Повторить запрос после интервала `retry_after_ms` |

`checks` содержит результаты отдельных этапов и признаки риска. В `reason_codes` перечислены коды причин: например, `DISPOSABLE_DOMAIN` указывает на провайдера временной почты, а `SMTP_RCPT_ACCEPTED` означает, что почтовый сервер принял указанного получателя.

`confidence` оценивает силу свидетельств по шкале от 0 до 1. Это не вероятность существования ящика или попадания письма во «Входящие». На странице [проверки отдельного адреса](https://emvero.io/ru/email-verification/) объясняем, что можно установить по формату адреса, почтовому маршруту и ответу сервера по SMTP.

## Дождитесь результата, если API вернул pending

Если сведения от почтового сервера не получены за время запроса, полная проверка может вернуть `pending`. Проверка еще выполняется; это не пятый конечный статус. В ответе есть уже собранные данные, идентификатор `id` и интервал до следующего запроса `retry_after_ms` в миллисекундах. Ниже показана только часть условного ответа:

```
{
  "id": "5f0b6f3e-1a4c-4a1f-9d2e-8f7b3c2a1d90",
  "status": "pending",
  "retry_after_ms": 2000
}
```

Подождите указанный интервал и отправьте `GET /v1/verifications/{id}` с тем же Bearer-ключом. Если ответ все еще содержит `pending`, повторите опрос после очередного интервала. Завершите опрос, когда получите один из четырех конечных статусов. API не отправляет уведомлений о готовности результата (callback).

Задайте предел ожидания в своем приложении. Если время истекло, примените заранее выбранное правило, например продолжите регистрацию с подтверждением почты. Истечение вашего срока ожидания не означает, что API вернул `unknown` или признал адрес недоставляемым. Подробнее об опросе читайте в [документации по незавершенным проверкам](https://docs.emvero.io/using/pending/).

## Выберите глубину проверки и обработайте ошибки HTTP

Если не передать `variant`, API использует `full`: проверяет формат адреса, домен и почтовый маршрут, а затем может получить сведения о ящике по SMTP. Значение `"variant":"domain"` ограничивает проверку форматом адреса, данными DNS и почтовым маршрутом. SMTP-соединение при этом не открывается.

Обе глубины доступны через один эндпоинт и возвращают одинаковый набор полей. Выбирайте глубину по задаче: проверка домена не устанавливает существование конкретного ящика. Полная проверка может собрать больше сведений, но тоже возвращает `unknown`, если их недостаточно.

Обработку ошибок HTTP предусмотрите отдельно от обработки статусов адреса. При `400` исправьте запрос, при `401` проверьте ключ, при `402` пополните баланс кредитов. При `429` снизьте частоту запросов и соблюдайте интервал из `Retry-After`, если заголовок есть в ответе. Ответ `5xx` указывает на проблему сервиса и не дает оснований отклонить адрес.

При повторе той же операции сохраняйте ключ идемпотентности. [Быстрый старт](https://docs.emvero.io/start/quickstart/) показывает, как подключить API, а [справочник ошибок](https://docs.emvero.io/using/errors/) объясняет коды ответов.

Для регистрации и других форм используйте сценарий [проверки в реальном времени](https://emvero.io/ru/real-time-email-verification/). Для готового списка организуйте [массовую проверку](https://emvero.io/ru/bulk-email-verification/) в своей системе: отправьте по одному запросу на каждый адрес и сохраните результаты. В Emvero нет загрузки CSV через сайт и отдельного batch-эндпоинта.

Вопросы

## Часто спрашивают.

**Что возвращает API проверки email?**

В JSON-ответе есть статус адреса (`status`), рекомендуемое действие (`action`), результаты этапов и признаки риска (`checks`), коды причин (`reason_codes`) и оценка силы свидетельств (`confidence`). Идентификатор нужен, чтобы получить результат, если проверка еще выполняется.

**Чем проверка адреса отличается от проверки формата?**

Валидация формата устанавливает только то, что адрес правильно записан. Emvero также проверяет домен и почтовый маршрут. Полная проверка может запросить у почтового сервера сведения о ящике по SMTP, если сервер это допускает. При глубине `domain` SMTP-соединение не открывается, поэтому результат не устанавливает существование конкретного ящика.

**API отправляет письмо при проверке?**

Нет. При SMTP-проверке Emvero указывает получателя, но завершает соединение до этапа `DATA`. Тема и текст письма не передаются, сообщение не доставляется. Если нужно убедиться, что человек контролирует ящик, отправьте собственное письмо подтверждения.

**API может подтвердить существование каждого ящика?**

Нет. Почтовый сервер catch-all домена принимает любого получателя, поэтому его согласие не подтверждает существование конкретного ящика. Такой признак может привести к `risky`. Если сведений недостаточно, например из-за тайм-аута или ограничений сервера, Emvero возвращает `unknown`. Даже положительный ответ сервера не гарантирует доставку будущего письма и не устанавливает, что человек контролирует ящик.

**Можно ли бесплатно попробовать API проверки?**

Да. После подтверждения нового аккаунта вы получите 1 000 кредитов без банковской карты. Их хватит на 100 полных проверок или до 500 проверок домена. Оба варианта доступны через один эндпоинт и возвращают одинаковый набор полей. Для запросов создайте API-ключ в аккаунте.

## Прямое сравнение

### Оценка или свидетельство за ней

Оценка confidence показывает силу свидетельств. Результаты этапов и коды причин объясняют, что удалось установить и какие ограничения остаются.

### Catch-all-домен

Почтовый сервер принимает произвольных получателей в домене. Положительный ответ не подтверждает отдельный ящик.

Отправьте первый запрос

## Получите кредиты для первых проверок

После подтверждения нового аккаунта вы получите 1 000 кредитов без банковской карты. Их хватит на 100 полных проверок или до 500 проверок домена. Создайте API-ключ в аккаунте и отправьте первый запрос.

Начать бесплатно

Посмотреть цены
