API: стандартизация email
✔️ Проверяет формат адреса.
✔️ Исправляет распространённые опечатки.
✔️ Проверяет, не «одноразовый» ли адрес.
✔️ Классифицирует адреса на личные (@mail.ru, @yandex.ru), корпоративные (@myshop.ru) и «ролевые» (info@, support@).
Как вызвать
Чтобы вызвать метод, зарегистрируйтесь и подтвердите почту.
Пример запроса:
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "Authorization: Token ${API_KEY}" \ -H "X-Secret: ${SECRET_KEY}" \ -d '[ "serega@yandex/ru" ]' \ https://cleaner.dadata.ru/api/v1/clean/email
// https://github.com/hflabs/dadata-csharp var token = "${API_KEY}"; var secret = "${SECRET_KEY}"; var api = new CleanClientAsync(token, secret); var result = await api.Clean<Email>("serega@yandex/ru");
// https://github.com/ekomobile/dadata // Использует API-ключ из переменной окружения DADATA_API_KEY, // а секретный ключ из переменной окружения DADATA_SECRET_KEY import ( "context" dadata "github.com/ekomobile/dadata/v2" ) func main() { api := dadata.NewCleanApi() query := "serega@yandex/ru" result, err := api.Email(context.Background(), query) }
var url = "https://cleaner.dadata.ru/api/v1/clean/email"; var token = "${API_KEY}"; var secret = "${SECRET_KEY}"; var query = "serega@yandex/ru"; var options = { method: "POST", mode: "cors", headers: { "Content-Type": "application/json", "Authorization": "Token " + token, "X-Secret": secret }, body: JSON.stringify([query]) } fetch(url, options) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log("error", error));
// https://github.com/hflabs/dadata-php $token = "${API_KEY}"; $secret = "${SECRET_KEY}"; $dadata = new \Dadata\DadataClient($token, $secret); $result = $dadata->clean("email", "serega@yandex/ru");
# https://github.com/hflabs/dadata-py from dadata import Dadata token = "${API_KEY}" secret = "${SECRET_KEY}" dadata = Dadata(token, secret) result = dadata.clean("email", "serega@yandex/ru")
Укажите при вызове:
Content-Type: application/json
.Accept: application/json
.${API_KEY}
— API-ключ.${SECRET_KEY}
— секретный ключ.
Тело запроса передавайте в кодировке UTF-8
.
Что в ответе
Стандартизованный объект:
[ { "source": "serega@yandex/ru", "email": "serega@yandex.ru", "local": "serega", "domain": "yandex.ru", "type": "PERSONAL", "qc": 4 } ]
Название | Длина | Описание |
---|---|---|
source | 100 | Исходный email |
100 | Стандартизованный email | |
local | 100 | Локальная часть адреса (то, что до «собачки») |
domain | 100 | Домен (то, что после «собачки») |
type |
Тип адреса
PERSONAL — личный (@mail.ru, @yandex.ru) CORPORATE — корпоративный (@myshop.ru) ROLE — «ролевой» (info@, support@) DISPOSABLE — одноразовый (@temp-mail.ru) |
|
qc | 5 | Код проверки |
Код проверки qc
Подходит ли email для маркетинговой рассылки:
Код qc | Описание | Нужно проверить вручную? |
---|---|---|
0 | Корректное значение Соответствует общепринятым правилам, реальное существование адреса не проверяется |
нет |
2 | Пустое или заведомо «мусорное» значение | нет |
3 | «Одноразовый» адрес Домены 10minutemail.com, getairmail.com, temp-mail.ru и аналогичные |
нет |
1 | Некорректное значение Не соответствует общепринятым правилам |
да |
4 | Исправлены опечатки | да |
Коды ответа на запрос
HTTP-код ответа | Описание |
---|---|
200 | Запрос успешно обработан |
400 | Некорректный запрос |
401 | В запросе отсутствует API-ключ или секретный ключ Или в запросе указан несуществующий ключ |
403 | Не подтверждена почта Или недостаточно средств для обработки запроса, пополните баланс |
405 | Запрос сделан с методом, отличным от POST |
429 | Слишком много запросов в секунду или новых соединений в минуту |
5xx | Произошла внутренняя ошибка сервиса |
Примеры и интеграции
Ограничения
В запросе разрешено передавать только один адрес эл. почты.
Максимальная частота запросов — 20 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Дадата не поддерживает вызов этого метода из браузерного JavaScript. Иначе злоумышленник мог бы похитить секретный ключ и использовать API за ваш счет.