API: стандартизация телефонов
✔️ Проверяет телефон.
✔️ Проставляет актуальный код города / DEF-код.
✔️ Восстанавливает оператора. Учитывает переносы номера между операторами.
✔️ Определяет страну, регион, город и часовой пояс.
Это документация для разработчиков. Выяснить регион и оператора в демоформе, посмотреть сценарии использования и варианты подключения сервиса можно на странице «Определить регион и оператора по номеру телефона»
Как вызвать
Чтобы вызвать метод, и подтвердите почту.
Пример запроса:
POST https://cleaner.dadata.ru/api/v1/clean/phone[ "раб 846)231.60.14 *139" ]
Укажите при вызове:
- Content-Type: application/json.
- Accept: 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 | string(100) | Исходный телефон одной строкой | 
| type | string(50) | Тип телефона | 
| phone | string(50) | Стандартизованный телефон одной строкой | 
| country_code | string(10) | Код страны | 
| city_code | string(10) | Код города / DEF-код | 
| number | string(10) | Локальный номер телефона | 
| extension | string(10) | Добавочный номер | 
| provider | string(100) | Оператор связи (только для России) | 
| country | string(50) | Страна | 
| region | string(100) | Регион (только для России) | 
| city | string(100) | Город (только для стационарных телефонов) | 
| timezone | string(50) | Часовой пояс города для России, часовой пояс страны — для иностранных телефонов. Если у страны несколько поясов, вернёт минимальный и максимальный через слеш: UTC+5/UTC+6 | 
| qc_conflict | number | Признак конфликта телефона с адресом | 
| qc | number | Код проверки | 
Тип телефона
| Тип | Пример телефона | 
|---|---|
| Мобильный | +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 | Произошла внутренняя ошибка сервиса | 
Примеры и интеграции
- C# / .NET
- Excel VBA
- Go
- Java (Spring)
- Laravel
- Node.js
- PHP
- PHP (одним файлом)
- Python
- R
- Symfony
- Битрикс
- Битрикс24: роботы
Ограничения
В запросе разрешено передавать только один телефон.
Максимальная частота запросов — 20 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Дадата не поддерживает вызов этого метода из браузерного JavaScript. Иначе злоумышленник мог бы похитить секретный ключ и использовать API за ваш счет.