EmailCheckPro Справочник API

Все эндпоинты используют один ключ API и один баланс.

ПараметрЗначение
Базовый URLhttps://emailcheckpro.com
Заголовок аутентификацииX-API-Key: sk_your_api_key
Обёртка ответа{ code, msg, data }

Цены здесь не указаны; каждый продукт оплачивается за успешную проверку. Посмотреть цены

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

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

Заголовок аутентификации
X-API-Key: sk_your_api_key

Храните ключ API в секретеВсегда вызывайте этот эндпоинт со своего сервера. Любой, у кого есть ключ, может расходовать ваш баланс.

Синхронные проверки

POST/api/v1/checkPOST/api/v1/batch-check

Отправьте один адрес email или до 100 адресов в одном запросе и прочитайте результат в том же ответе. Без опроса и обратных вызовов. Неопределённый результат возвращает 422 с кодом 42200 и не оплачивается. Множественный запрос сохраняет порядок ввода, тарифицирует каждый идентификатор отдельно и должен завершиться за 300 секунд — иначе весь запрос завершается ошибкой, а все списания возвращаются.

Параметры

ПолеТипОписание
service_typestringКод продукта — один из продуктов, перечисленных ниже.
identifierstringОдиночная проверка: один адрес email. Сервер нормализует его.
identifiersstring[]Множественная проверка: от 1 до 100 адресов email. Ответ сохраняет этот порядок.

Проверка доставляемости email

emailemail

Узнайте, может ли адрес email всё ещё принимать почту, — работает с любым доменом, от Gmail до собственного домена компании.

Одиночная проверка

POST/api/v1/check
Запрос
curl -X POST "https://emailcheckpro.com/api/v1/check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "email", "identifier": "name@gmail.com" }'
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "email",
    "identifier": "name@gmail.com",
    "registered": true
  }
}
Поля ответа
ПолеТипОписание
registeredbooleanДоставляем ли адрес — может ли он принимать почту.

Множественная проверка

POST/api/v1/batch-check
Запрос
curl -X POST "https://emailcheckpro.com/api/v1/batch-check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "email", "identifiers": ["name@gmail.com", "unknown@gmail.com", "not-an-email"] }'
Ответ
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "email",
    "total": 3,
    "succeeded": 2,
    "failed": 1,
    "results": [
      {
        "identifier": "name@gmail.com",
        "exists": true,
        "registered": true
      },
      {
        "identifier": "unknown@gmail.com",
        "exists": true,
        "registered": false
      },
      {
        "identifier": "not-an-email",
        "exists": false
      }
    ]
  }
}
Поля ответа
ПолеТипОписание
existsbooleanПолучен ли результат по этому адресу. false означает, что формат был неверным, результат не определён или проверка не удалась; при false ни одного из полей ниже нет.
registeredbooleanДоставляем ли адрес email, то есть может ли он принимать почту. Присутствует только при exists = true и имеет то же значение, что и при одиночной проверке.

Проверка аватара email

email_avataremail

Статус доставляемости и URL аватара, привязанного к адресу, для Gmail, Yandex и Mail.ru.

Одиночная проверка

POST/api/v1/check
Запрос
curl -X POST "https://emailcheckpro.com/api/v1/check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "email_avatar", "identifier": "name@gmail.com" }'
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "email_avatar",
    "identifier": "name@gmail.com",
    "registered": true,
    "avatar": true,
    "avatar_url": "https://lh3.googleusercontent.com/a-/example"
  }
}
Поля ответа
ПолеТипОписание
registeredbooleanДоставляем ли адрес у этого провайдера — может ли он принимать почту.
avatarbooleanУстановлен ли аватар.
avatar_urlstringURL аватара, если он есть; может быть пустым, даже если avatar равно true.

Множественная проверка

POST/api/v1/batch-check
Запрос
curl -X POST "https://emailcheckpro.com/api/v1/batch-check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "email_avatar", "identifiers": ["name@gmail.com", "unknown@gmail.com", "not-an-email"] }'
Ответ
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "email_avatar",
    "total": 3,
    "succeeded": 2,
    "failed": 1,
    "results": [
      {
        "identifier": "name@gmail.com",
        "exists": true,
        "registered": true,
        "avatar": true,
        "avatar_url": "https://lh3.googleusercontent.com/a-/example"
      },
      {
        "identifier": "unknown@gmail.com",
        "exists": true,
        "registered": false,
        "avatar": false,
        "avatar_url": ""
      },
      {
        "identifier": "not-an-email",
        "exists": false
      }
    ]
  }
}
Поля ответа
ПолеТипОписание
existsbooleanПолучен ли результат по этому адресу. false означает, что формат был неверным, результат не определён или проверка не удалась; при false ни одного из полей ниже нет.
registeredbooleanДоставляем ли адрес email, то есть может ли он принимать почту. Присутствует только при exists = true и имеет то же значение, что и при одиночной проверке.
avatarbooleanУстановлен ли аватар.
avatar_urlstringURL аватара, если он есть; может быть пустым, даже если avatar равно true.

Асинхронные проверки

POST/api/v1/bulk-tasksGET/api/v1/bulk-tasks/{id}

Загрузите файл и сразу получите id задачи, затем проверяйте этот id, пока задача не завершится успешно. Успешный ответ содержит result_url — ссылку для скачивания результата. Действий всего два: отправка и проверка. Опрашивайте не чаще одного раза в 30 секунд.

Параметры

ПолеТипОписание
service_typestringКод массового продукта — один из продуктов, перечисленных ниже.
countrystringДля задач с email не нужен — не передавайте его. Если вы его передадите, он будет проигнорирован.
filefileФайл .txt или .csv с одним идентификатором на строку, размером до max_file_bytes (по умолчанию 20MB).
Idempotency-KeyheaderНеобязательный, до 128 символов. Повторная отправка с тем же ключом возвращает исходную задачу вместо создания новой.

Массовая проверка доставляемости email

email_batchemail1 000–500 000 на задачу

Загрузите целый файл адресов, узнайте, какие из них могут принимать почту, и скачайте результат по завершении.

Отправка задачи

POST/api/v1/bulk-tasks
Запрос
curl -X POST "https://emailcheckpro.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=email_batch \
  -F file=@emails.txt
Ответ
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "email_batch",
    "status": "processing",
    "submitted_lines": 1015,
    "total": 1015,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Проверка задачи

GET/api/v1/bulk-tasks/{id}
Запрос
curl "https://emailcheckpro.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Ответ
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "email_batch",
    "status": "success",
    "submitted_lines": 1015,
    "total": 1000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 12,
    "preparing": false,
    "success_cnt": 990,
    "failure_cnt": 10,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Столбцы результата
Полепример:Описание
identifieralex.kim@example.comОтправленный адрес email в нижнем регистре.
activatedtrueМожет ли адрес принимать почту: true (доступен) или false (недоступен).

Массовая проверка аватара email

email_avatar_batchemail1 000–500 000 на задачу

Загрузите целый файл адресов Gmail, Yandex или Mail.ru: узнайте, какие из них доставляемы, и получите аватар каждого.

Отправка задачи

POST/api/v1/bulk-tasks
Запрос
curl -X POST "https://emailcheckpro.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=email_avatar_batch \
  -F file=@emails.txt
Ответ
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "email_avatar_batch",
    "status": "processing",
    "submitted_lines": 1015,
    "total": 1015,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Проверка задачи

GET/api/v1/bulk-tasks/{id}
Запрос
curl "https://emailcheckpro.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Ответ
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "email_avatar_batch",
    "status": "success",
    "submitted_lines": 1015,
    "total": 1000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 12,
    "preparing": false,
    "success_cnt": 990,
    "failure_cnt": 10,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Столбцы результата
Полепример:Описание
identifieralex.kim@gmail.comОтправленный адрес в нижнем регистре.
activatedtrueДоставляем ли адрес у этого провайдера — может ли он принимать почту: true или false. Если значение не true, все остальные столбцы в этой строке остаются пустыми.
avatartrueУстановлен ли аватар: true или false. avatar_url может быть пустым, если изображение недоступно.
avatar_urlhttps://lh3.googleusercontent.com/a/exampleURL аватара; пусто, если URL недоступен.

Баланс

GET/api/v1/balance

Получение текущего баланса аккаунта в микродолларах USD. Только чтение: запись о проверке не создаётся, списаний нет.

Баланс

GET/api/v1/balance
Запрос
curl "https://emailcheckpro.com/api/v1/balance" \
  -H "X-API-Key: sk_your_api_key"
Ответ
{
  "code": 0,
  "msg": "ok",
  "data": {
    "balance_micros": 12500000
  }
}

Параллельность, тайм-ауты и повторные попытки

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

ПолеОписание
5 одновременных запросов на пользователяОдиночные и множественные проверки делят этот лимит, причём множественный запрос считается одним запросом независимо от количества адресов в нём. Кроме того, для одного аккаунта одновременно выполняется только одна множественная проверка; вторая отклоняется, пока не завершится первая. При достижении любого из лимитов сразу возвращается код 42901 без списания и заголовок Retry-After — отправьте запрос повторно, когда завершится один из выполняющихся.
60 с для одиночной, 300 с для множественнойПри превышении лимита времени возвращается код 50400 без списания. Множественная проверка, превысившая время, завершается ошибкой целиком — без частичных результатов, и вся сумма возвращается.
Множественная проверка принимает до 100 адресовРезультаты сохраняют порядок и количество отправленных адресов. Для одного аккаунта одновременно выполняется одна множественная проверка; отправляйте следующий пакет после того, как вернётся предыдущий.

Коды ошибок

КодОписание
40000Неподдерживаемый тип сервиса или конфликтующие поля запроса
40001Недопустимое тело JSON
40002Неверный адрес email
40100Ключ API отсутствует или недействителен
40200Недостаточно средств на балансе
42200Сейчас не удаётся определить статус адреса. Данные не возвращаются, и запрос не оплачивается
42900Исчерпана квота использования или слишком много незавершённых заказов
42901Все пять слотов для выполняющихся запросов заняты или в этом аккаунте уже выполняется множественная проверка; отправьте запрос после завершения одного из выполняющихся. Отклонённый запрос не оплачивается и содержит заголовок Retry-After
50303Сервис сейчас перегружен; средства не списаны. Подождите указанное в Retry-After количество секунд и отправьте тот же запрос повторно
50400Проверка не завершилась за отведённое время и не оплачивается; повторите её. Превышение времени пакета приводит к ошибке всего пакета и полному возврату суммы
50300Техобслуживание сервиса проверки