↑ Все API

API: стандартизация составных записей с контактными данными

Стандартизует запись, которая состоит из нескольких полей. Например:

  • ФИО + адрес + телефон + телефон
  • Дата рождения + паспорт
  • Адрес + email

Как вызвать

Чтобы вызвать метод, зарегистрируйтесь и подтвердите почту.

Пример запроса:

cat > ./request.json <<EOF
{
  "structure":
    [
        "NAME",
        "ADDRESS",
        "PHONE"
    ],
  "data": [
    [
        "Федотов Алексей",
        "Москва, Сухонская улица, 11 кв 89",
        "8 916 823 3454"
    ]
  ]
}
EOF

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Token ${API_KEY}" \
  -H "X-Secret: ${SECRET_KEY}" \
  -d @request.json \
  https://cleaner.dadata.ru/api/v1/clean
// https://github.com/hflabs/dadata-csharp

var token = "${API_KEY}";
var secret = "${SECRET_KEY}";
var api = new CleanClientAsync(token, secret);

var structure = new[] {
    StructureType.NAME, StructureType.ADDRESS, StructureType.PHONE
};
var data = new[] {
    "Федотов Алексей", "Сухонская улица, 11 кв 89", "8 916 823 3454"
};
var cleaned = await api.Clean(structure, data)
var url = "https://cleaner.dadata.ru/api/v1/clean";
var token = "${API_KEY}";
var secret = "${SECRET_KEY}";
var query = {
  structure: [ "NAME", "ADDRESS", "PHONE" ],
  data: [
    [
        "Федотов Алексей",
        "Москва, Сухонская улица, 11 кв 89",
        "8 916 823 3454"
    ]
  ]
};

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);
$structure = ["NAME", "ADDRESS", "PHONE"];
$record = [
    "Федотов Алексей", "Москва, Сухонская улица, 11 кв 89", "8 916 823 3454"
];
$result = $dadata->cleanRecord($structure, $record);
# https://github.com/hflabs/dadata-py

from dadata import Dadata
token = "${API_KEY}"
secret = "${SECRET_KEY}"
dadata = Dadata(token, secret)
structure = ["NAME", "ADDRESS", "PHONE"]
record = [
    "Федотов Алексей", "Москва, Сухонская улица, 11 кв 89", "8 916 823 3454"
]
result = dadata.clean_record(structure, record)

Укажите при вызове:

  • Content-Type: application/json.
  • Accept: application/json.
  • ${API_KEY} — API-ключ.
  • ${SECRET_KEY} — секретный ключ.

Тело запроса передавайте в кодировке UTF-8.

Из чего состоит запрос в примере

structure — структура записи, содержит четыре поля:

  • AS_IS — оставить как есть (не стандартизировать),
  • NAME — разобрать как ФИО,
  • ADDRESS — разобрать как адрес,
  • PHONE — разобрать как телефон.

data — составная запись из 4 полей (№, ФИО, адрес, телефон).

Типы полей

Тип Описание
ADDRESS Почтовый адрес
PHONE Телефон
PASSPORT Номер и серия паспорта
NAME ФИО
EMAIL Адрес электронной почты
VEHICLE Марка и модель автомобиля
AS_IS Скопировать поле в ответ «как есть»

Что в ответе

Стандартизованная запись:

{
    "structure": [
        "NAME",
        "ADDRESS",
        "PHONE"
    ],
    "data": [
        [
            {
                "source": "Федотов Алексей",
                "result": "Федотов Алексей",
                ...
                "qc": 0
            },
            {
                "source": "Москва, Сухонская улица, 11 кв 89",
                "result": "г Москва, ул Сухонская, д 11, кв 89",
                ...
                "qc": 0,
                "unparsed_parts": null
            },
            {
                "source": "8 916 823 3454",
                "type": "Мобильный",
                "phone": "+7 916 823-34-54",
                ...
                "qc": 0
            }
        ]
    ]
}

Коды ответа на запрос

HTTP-код ответа Описание
200 Запрос успешно обработан
400 Некорректный запрос:
  • Невалидный JSON.
  • Отсутствуют обязательные параметры structure или data.
  • В structure указан неподдерживаемый тип.
  • Количество полей в data более указанного в structure.
401 В запросе отсутствует API-ключ или секретный ключ
Или в запросе указан несуществующий ключ
403 Не подтверждена почта
Или недостаточно средств для обработки запроса, пополните баланс
405 Запрос сделан с методом, отличным от POST
429 Слишком много запросов в секунду или новых соединений в минуту
5xx Произошла внутренняя ошибка сервиса во время обработки

Примеры и интеграции

Ограничения

В запросе разрешено передавать только одну запись.

Максимальное количество полей в одной записи:

  • 1 ФИО,
  • 3 адреса,
  • 3 телефона,
  • 3 email,
  • 1 дата рождения,
  • 1 паспорт,
  • 1 автомобиль.

Максимальная частота запросов — 20 в секунду с одного IP-адреса.

Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.

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

Стоимость

15 копеек за запись

ajax-spinner