автоматизация проверки mailvalidator.ru
API проверки имейлов с использованием пакетов (beta)
API пакетной проверки — максимально эффективный автоматизированный способ проверки существования имейла с использованием списков адресов.

Проверяются адреса в любых доменных зонах!

В отличие от единичной проверки "на лету", АПИ пакетной проверки занимаем некоторое время, в зависимости от количества имейлов в пакете и состава доменных зон.

Проверка осуществляется путем загрузки пакета (batch) и запросом ответа, после завершения проверки.


Отправить батч на проверку
emails- обязательное поле. Минимальный размер 1000 (тысяча) адресов, максимальный — 500000 (пятьсот тысяч) адресов. Обращение к пакетной проверки не более 1 раза в 30 минут.
comment– необязтельное поле. Как возможный вариант заполнения – имя файла
#python

r = requests.post("https://app.mailvalidator.ru/batch", json=payload)

#где payload:

payload = {"emails":["test@mail.ru", "ada@ya.ru"], "comment":"customer_emails1.txt"}

#curl

curl --header "Content-Type: application/json" -XPOST https://app.mailvalidator.ru/batch -d '{"emails":["test@mail.ru","ada@ya.ru"], "comment":"customer_emails1.txt"}'
Если запрос удачный — код ответа 200 и UUIDсписка.
Пример:
{"UUID":"fc3d9993"}
Если запрос возвращает ошибку — ответ будет содержать текст Error и описание.

Пример:
{"Error": "batch size to small. Minimum 10000 emails"}

или

{"Error": "batch size to large. Maximum 500000 emails"}
Загрузка батчей происходит при наличии достаточных для проверки средств на балансе Личного кабинета. В случае если баланс меньше, чем необходимо для проверки батча, ответ будет содержать ошибку, а пакет не будет загружен.

Пример:
{"Error": "Недостаточно средств (стоимость списка {cost})"}
Получить результаты проверки батча
#python

r = requests.get("https://app.mailvalidator.ru/batch?uuid=59cb3daf")

#curl

curl --header "Content-Type: application/json" -XGET https://app.mailvalidator.ru/batch?uuid=59cb3daf
Если тело ответа содержит Fullcheck processing, необходимо дождаться завершения проверки
{"Status":"Fullcheck processing"}
Скорость проверки
Скорость проверки полностью зависит от состава доменных зон в вашем списке. Обычно батч размером 10000 адресов проверяется от нескольких минут до 1 часа, однако в исключительных случаях время проверки может быть до 3 часов и более
Успешный запрос будет содержать ответ следующего формата:
{'batchStat': {'duplicateCount': 3,
  'emailsSet': 15,
  'lines': 21,
  'notEmailsSet': 3},
 'checkStat': {'B': 7, 'N': 3, 'OK': 8},
 'duplicates': {'achov@mail.ru': 2, 'xpert@yandex.ru': 1},
 'emails': {'akachoff@yandex.ru': 'fOK',
  'achov@mail.ru': 'fOK',
  'andadasdaqcasdf4erfrew@yahoo.com': 'fB',
  'andrew2edasd32r@aol.com': 'fOK',
  'andrew@aol.com': 'fOK',
  'buntik87@mail.ru': 'fOK',
  'danbv0re0@rambler.ru': 'fB',
  'djackson@yahoo.com': 'fOK',
  'dsadvsfndg@bk.ru': 'fB',
  'fadsqwxwqdwq11@gmail.com': 'fB',
  'fvbnosdfbnpddg': 'N',
  'fvbnosdfbnpdg': 'N',
  'fvbnosdfbnpdsdasg': 'N',
  'valex@gmail.com': 'fOK',
  'mahash18@mail.ru': 'fB',
  'nvospfdn@aol.com': 'fOK',
  'vnsdfov@test.com': 'fB',
  'xpert@yandex.ru': 'fB'},
 'ip': '1.1.1.1',
 'timestamp': 1625255303,
 'total': 21,
'comment': продажи.txt,
 'uuid': 'some_test_uuid'}
Тестовый endpoint
Для удобства тестирования и интеграции есть тестовый эндпойнт, который нужен для проверки корректности составления запросов. Реальная отправка имейлов в проверку происходить не будет.

Отправка тестового батча:
#python

r = requests.post("https://app.mailvalidator.ru/test_batch", json=payload)

#curl

curl --header "Content-Type: application/json" -XPOST https://app.mailvalidator.ru/test_batch -d '{"emails":["test@mail.ru","ada@ya.ru"], "comment":"customer_emails1.txt"}'
Получение  тестовых результатов:
#python

r = requests.get("https://app.mailvalidator.ru/test_batch?uuid=86db9674")

#curl

curl --header "Content-Type: application/json" -XGET https://app.mailvalidator.ru/test_batch?uuid=59cb3daf
Важное сообщение про квотирование!
АПИ разрешает 1 запрос в течение 30 минут. Под запросом понимается как успешный, так и неуспешный запрос.
Для настройки интеграции, во избежании ожидания разрешения для следующих запросов, необходимо использовать тестовый эндпойнт.
Пример возвращаемых статусов:

fB — несуществующй ящик
fOK — существующй ящик
fS — заброшенные/переполненные/неиспользуемые пользователями ящики
fT — Temporary-ящик (адреса в доменах временной почты)
N — не имейл (начертание имейла не соответсвует RFC)
fail (fFail) — попытка проверки не удалась (например, почтовый сервер сбросил соединение)