API стандартизации телефонов
✔️ Проверяет телефон.
✔️ Проставляет актуальный код города / DEF-код.
✔️ Восстанавливает оператора. Учитывает переносы номера между операторами.
✔️ Определяет страну, регион, город и часовой пояс.
Как вызвать
Чтобы вызвать метод, зарегистрируйтесь и подтвердите почту.
Пример запроса:
curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Token ${API_KEY}" \ -H "X-Secret: ${SECRET_KEY}" \ -d '[ "раб 846)231.60.14 *139" ]' \ https://cleaner.dadata.ru/api/v1/clean/phone
// 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<Phone>("раб 846)231.60.14 *139");
// 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 := "раб 846)231.60.14 *139" result, err := api.Phone(context.Background(), query) }
var url = "https://cleaner.dadata.ru/api/v1/clean/phone"; var token = "${API_KEY}"; var secret = "${SECRET_KEY}"; var query = "раб 846)231.60.14 *139"; 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("phone", "раб 846)231.60.14 *139");
# https://github.com/hflabs/dadata-py from dadata import Dadata token = "${API_KEY}" secret = "${SECRET_KEY}" dadata = Dadata(token, secret) result = dadata.clean("phone", "раб 846)231.60.14 *139")
Укажите при вызове:
Content-Type: application/json
.${API_KEY}
— API-ключ.${SECRET_KEY}
— секретный ключ.
Тело запроса передавайте в кодировке UTF-8
.
Что в ответе
Стандартизованный объект:
[ { "source": "раб 846)231.60.14 *139", "type": "Стационарный", "phone": "+7 846 231-60-14 доб. 139", "country_code": "7", "city_code": "846", "number": "2316014", "extension": "139", "provider": "ООО \"СИПАУТНЭТ\"", "country": "Россия", "region": "Самарская область", "city": "Самара", "timezone": "UTC+4", "qc_conflict": 0, "qc": 0 } ]
Название | Длина | Описание |
---|---|---|
source | 100 | Исходный телефон одной строкой |
type | 50 | Тип телефона |
phone | 50 | Стандартизованный телефон одной строкой |
country_code | 5 | Код страны |
city_code | 5 | Код города / DEF-код |
number | 10 | Локальный номер телефона |
extension | 10 | Добавочный номер |
provider | 100 | Оператор связи (только для России) |
country | 50 | Страна |
region | 100 | Регион (только для России) |
city | 100 | Город (только для стационарных телефонов) |
timezone | 50 | Часовой пояс города для России, часовой пояс страны — для иностранных телефонов. Если у страны несколько поясов, вернёт минимальный и максимальный через слеш: UTC+5/UTC+6 |
qc_conflict | 5 | Признак конфликта телефона с адресом |
qc | 5 | Код проверки |
Тип телефона
Тип | Пример телефона |
---|---|
Мобильный | +7 911 243-45-68 |
Стационарный | +7 495 456-55-77 |
Прямой мобильный | +7 495 243-45-68 |
Колл-центр | 8 800 222-12-22 |
Неизвестный | +7 333 1111112 |
Коды качества
Код проверки qc
Нужно ли вручную проверить распознанный телефон:
Код qc | Описание | Нужно проверить вручную? |
---|---|---|
0 | Российский телефон, распознан уверенно | Нет |
7 | Иностранный телефон, распознан уверенно | Нет |
2 | Телефон пустой или заведомо «мусорный» | Нет |
1 | Телефон распознан с допущениями или не распознан | Да |
3 | Обнаружено несколько телефонов, распознан первый | Да |
Признак конфликта телефона с адресом qc_conflict
Указал ли клиент телефон, соответствующий его адресу. Удобно для проверки уровня риска:
Код qc_conflict | Описание |
---|---|
0 | Телефон соответствует адресу |
2 | Города адреса и телефона отличаются |
3 | Регионы адреса и телефона отличаются |
Заполняется только для российских адресов. Для иностранных всегда равен 0.
Коды ответа на запрос
HTTP-код ответа | Описание |
---|---|
200 | Запрос успешно обработан |
400 | Некорректный запрос |
401 | В запросе отсутствует API-ключ или секретный ключ Или в запросе указан несуществующий ключ |
403 | Не подтверждена почта Или недостаточно средств для обработки запроса, пополните баланс |
405 | Запрос сделан с методом, отличным от POST |
429 | Слишком много запросов в секунду или новых соединений в минуту |
5xx | Произошла внутренняя ошибка сервиса |
Примеры и интеграции
Ограничения
Максимальная частота запросов — 20 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Дадата не поддерживает вызов этого метода из браузерного JavaScript. Иначе злоумышленник мог бы похитить секретный ключ и использовать API за ваш счет.