Справочник API

Небольшой API с полной спецификацией.

Отправьте один адрес и получите данные о доставляемости, catch-all и временной почте. Здесь описаны аутентификация, ответы, кредиты и все коды ошибок.

Базовый URL для production

https://api.verifyemail.net/api/v1

Быстрый старт

Создайте API-ключ в панели, храните его на сервере и передавайте как Bearer-токен. Каждый принятый запрос на проверку расходует один кредит.

Запрос
curl -sS -X POST 'https://api.verifyemail.net/api/v1/verifications' \
  -H 'Authorization: Bearer ve_live_your_api_key' \
  -H 'Content-Type: application/json' \
  -d '{"address":"[email protected]"}'
Ответ · HTTP 200
{
  "errcode": 0,
  "address": "[email protected]",
  "is_deliverable": true,
  "status": 250,
  "catch_all": false,
  "disposable": false
}

Аутентификация

Создайте API-ключ в панели: Панель → API-ключи

Полное значение ve_live_… показывается только один раз.

Храните API-ключи в серверных секретах. Не помещайте их в браузерный код, параметры URL, открытые репозитории или доступные клиенту журналы.
Authorization: Bearer ve_live_your_api_key

Проверка адреса

POST/verifications

Тело запроса

ПолеТипОбязательноОписание
addressstringДаПолный адрес электронной почты.

Поля ответа

ПолеТипОписание
errcodenumber0 означает успех; остальные значения обрабатывайте по таблице ошибок.
addressstringНормализованный адрес электронной почты.
is_deliverablebooleanПринимает ли принимающий сервер указанного получателя.
statusnumber | nullЧисловой код ответа SMTP или null, если ответ SMTP не был получен.
catch_allboolean | nullПринимает ли домен любого получателя. Null означает отсутствие надёжного вывода.
disposablebooleanПринадлежит ли адрес домену временной почты.

250 · HTTP 200 · errcode 0

Принимающий сервер принял получателя.

550 · HTTP 200 · errcode 0

Домен или принимающий сервер отклонил получателя.

null · HTTP 422

Адрес недействителен или не может быть проверен.

null · HTTP 503

Надёжный вывод недоступен; повторите попытку позже.

Также доступен следующий GET-эндпоинт. Рекомендуется POST, чтобы адреса не попадали в журналы прокси и историю браузера: /verifications?address=…

Проверка оставшихся кредитов

GET/usage

Этот запрос не расходует кредиты проверки. Сессии панели и все API-ключи одного пользователя используют общий баланс.

Запрос
curl -sS 'https://api.verifyemail.net/api/v1/usage' \
  -H 'Authorization: Bearer ve_live_your_api_key'
Ответ · HTTP 200
{
  "errcode": 0,
  "verification_limit": 100,
  "verification_used": 1,
  "remaining_verifications": 99,
  "unlimited": false
}
ПолеТипОписание
verification_limitnumberТекущий общий лимит. Ноль означает безлимитный доступ.
verification_usednumberКоличество уже использованных кредитов проверки.
remaining_verificationsnumber | nullОставшиеся кредиты; null для безлимитного аккаунта.
unlimitedbooleanЯвляется ли текущий лимит безграничным.

Безлимитные планы возвращают remaining_verifications: null, unlimited: true.

Коды ошибок

Используйте числовой errcode в логике программы. Текст message может изменяться.

Ответ с ошибкой
{
  "errcode": 10006,
  "message": "request rate limit exceeded"
}
errcodeHTTPЗначение
02xxЗапрос выполнен успешно.
10000400Неверный запрос; проверьте JSON, заголовки и метод HTTP.
10001400 / 422Параметр или бизнес-правило не прошло проверку.
10002401Учётные данные отсутствуют, недействительны или просрочены.
10003403У аккаунта нет доступа к ресурсу.
10004404Запрошенный ресурс не существует.
10005409Ресурс конфликтует с текущим состоянием.
10006429Превышен лимит запросов в секунду.
10007429Кредиты проверки исчерпаны.
10008429Исчерпана параллельная ёмкость сервиса.
10009500Произошла внутренняя ошибка сервиса.
10010503Сервис временно недоступен или не настроен.
10011502Внешний сервис вернул ошибку.

Заголовки ограничения

Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset — описывают текущее окно запросов.

Готовы отправить первый запрос?Создайте аккаунт и получите 100 кредитов проверки.