Соответствие 406-ФЗ

С 1 декабря 2023 года российские сайты обязаны авторизовать пользователей только через российский email-сервис, номер +7, ЕСИА или ЕБС (Федеральный закон № 406-ФЗ). API принимает email и IP пользователя вместе и выносит итоговый вердикт: иностранная почта запрещена только пользователям из России; если и почта, и IP иностранные — регистрация допустима. Бесплатно, без регистрации и ключей.

5 запросов/мин с IP 60+ почтовых сервисов Корп. домены по MX

Демо

Попробуйте user@gmail.com + 77.88.8.8 (РФ — запрещено), user@gmail.com + 8.8.8.8 (не РФ — разрешено) или user@yandex.ru. Без IP проверяется только почтовый сервис.

// результат появится здесь

Адреса запросов

GET https://apipark.ru/fz406/json/{email}?ip={IP} — совместная проверка почты и IP (рекомендуется)
GET https://apipark.ru/fz406/json?email=...&ip=... — то же через параметры
GET https://apipark.ru/fz406/json/{email|домен|IP} — проверка только почты или только IP
GET https://apipark.ru/fz406/json — проверка IP вызывающего

Параметры

ПараметрОписаниеПример
emailEmail или домен почтового сервиса?email=user@gmail.com
ipIP пользователя — вместе с email включает совместную проверку?ip=77.88.8.8
fieldsВернуть только указанные поля (через запятую)?fields=compliant,category,reason
keyключ платного тарифа (опционально)?key=...

Поля ответа — совместная проверка (почты и IP)

ПолеОписаниеПример
typecombinedcombined
allowedИтоговый вердикт: можно ли регистрировать пользователя с этой почтой. true / false / null (не определено)false
reasonГотовое пояснение на русском — можно показывать пользователюиностранный почтовый сервис у пользователя из России — регистрация недоступна по 406-ФЗ
emailДетали проверки почты (поля как в проверке email ниже){"compliant": false, "provider": "Gmail (Google)", ...}
ipДетали проверки IP (поля как в проверке IP ниже){"russian": true, "applies": true, ...}

Логика вердикта: IP вне России → allowed: true при любой почте (закон не применяется). IP в России → решает почта: российский сервис — true, иностранный — false, не определено — null. Если страну IP определить не удалось, требования закона консервативно считаются применимыми.

Поля ответа — проверка email

ПолеОписаниеПример
statussuccess или failsuccess
typeТип проверки: email или ipemail
email / domainПроверенный адрес и его доменuser@gmail.com / gmail.com
validСинтаксис корректен и домен принимает почтуtrue
compliantМожно ли использовать для регистрации: true / false / null (не определено)false
categoryrussian — российский сервис, foreign — иностранный, corporate — корпоративный домен (по MX), unknownforeign
provider / providerCountryНазвание сервиса и странаGmail (Google) / US
mxSignalДля корпоративных доменов: кто обслуживает почту — russian или foreignrussian
reasonГотовое пояснение на русском — можно показывать пользователюиностранный почтовый сервис — регистрация недоступна по 406-ФЗ
lawСсылка на нормуФедеральный закон № 406-ФЗ от 31.07.2023

Поля ответа — проверка IP

ПолеОписаниеПример
russianIP-адрес находится в Россииtrue
appliesТребования 406-ФЗ применяются к этому пользователюtrue
country / countryCodeСтрана IP-адресаRussia / RU
reasonПояснениеIP-адрес в России — требования 406-ФЗ применяются

Сценарий использования

# Пользователь отправил форму регистрации — проверяем его email и IP одним запросом
GET /fz406/json/user@gmail.com?ip=77.88.8.8
->  { "allowed": false, "reason": "иностранный почтовый сервис у пользователя из России — регистрация недоступна по 406-ФЗ" }

GET /fz406/json/user@gmail.com?ip=8.8.8.8
->  { "allowed": true, "reason": "пользователь вне России — требования 406-ФЗ не применяются, любой почтовый сервис допустим" }

GET /fz406/json/user@yandex.ru?ip=77.88.8.8
->  { "allowed": true, "reason": "российский почтовый сервис — регистрация разрешена" }

# allowed === false — показываем готовый reason и предлагаем российскую почту или номер +7

Примеры

# curl — совместная проверка
curl "https://apipark.ru/fz406/json/user@gmail.com?ip=77.88.8.8"

# curl — только почта или только IP
curl https://apipark.ru/fz406/json/user@yandex.ru
curl https://apipark.ru/fz406/json/77.88.8.8

# JavaScript — на бэкенде в обработчике формы регистрации
const url = 'https://apipark.ru/fz406/json/' + encodeURIComponent(email) + '?ip=' + userIp;
const check = await (await fetch(url)).json();
if (check.allowed === false) {
  showError('⚠️ ' + check.reason); // готовый текст для пользователя
}

# Python
import requests
check = requests.get('https://apipark.ru/fz406/json/user@outlook.com', params={'ip': user_ip}).json()
print(check['allowed'], check['reason'])

Как классифицируются адреса

Известные публичные сервисы определяются по домену: российские (Mail.ru/VK, Яндекс, Рамблер — category russian) и иностранные (Gmail, Outlook, Yahoo, iCloud, Proton и ещё 60+ — category foreign). Корпоративные домены классифицируются эвристикой по MX-записям: почта на Яндекс 360, VK WorkSpace или российских хостингах — compliant: true; на Google Workspace, Microsoft 365 и подобных — compliant: false. Если принадлежность определить нельзя, вернётся compliant: null — окончательное решение за владельцем сайта. Сервис носит справочный характер и не является юридической консультацией.

Лимиты

5 запросов в минуту с одного IP-адреса. При превышении вернётся HTTP 429. Заголовки: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.