API: распознавание документов
Это документация для разработчиков. Демоформа и сценарии использования сервиса — на странице «Распознавание документов»
Универсальное API для распознавания любых документов. Принимает файл документа и JSON-схему ожидаемых данных. Извлекает значения и возвращает результат вместе с оценкой уверенности для каждого поля.
Как вызвать
Чтобы вызвать метод, и подтвердите почту.
Пример запроса:
curl -sS \
-X POST "https://docs.dadata.ru/api/v1/extract" \
-H "Authorization: Token ${API_KEY}" \
-H "X-Secret: ${SECRET_KEY}" \
-F "file=@company_details.jpg;type=image/jpeg" \
--form-string 'schema={
"properties": {
"inn": {
"type": "string",
"description": "ИНН компании, 10 или 12 цифр",
"pattern": "^(\\d{10}|\\d{12})$"
},
"company_name": {
"type": "string",
"description": "Наименование компании"
},
"bank_bik": {
"type": "string",
"description": "БИК банка, указанный в реквизитах компании",
"pattern": "^\\d{9}$"
}
}
}'Укажите при вызове:
${API_KEY}— API-ключ.${SECRET_KEY}— секретный ключ.
Тело запроса передавайте в кодировке UTF-8.
Запрос отправляйте в формате multipart/form-data.
Параметры запроса
| Название | Тип | Обяз.? | По умолч. | Описание |
|---|---|---|---|---|
| file | file | ✓ | Документ для обработки | |
| schema | JSON | ✓ | JSON-объект с описанием структуры и типов данных, которые требуется извлечь. |
Формат schema
Извлекаемые поля задаются внутри объекта properties. Ключ каждого поля является его техническим именем и используется в объектах data и metadata ответа.
Для каждого поля можно указать:
type— ожидаемый тип значения;description— описание данных, которые требуется найти в документе;pattern— регулярное выражение для проверки формата строки.
Что в ответе
Пример ответа
{
"data": {
"inn": "7701234567",
"company_name": "ООО «Вектор Поставка»",
"bank_bik": "044525999"
},
"metadata": {
"inn": {
"confidence": 0.997
},
"company_name": {
"confidence": 0.984
},
"bank_bik": {
"confidence": 0.991
}
}
}
API возвращает объект с результатами извлечения. Он состоит из двух объектов:
- объект
dataсодержит найденные значения. - объект
metadataсодержит метаданные извлечения для каждого поля. Полеconfidenceпредставляет оценку уверенности распознавания в диапазоне от 0 до 1.
Коды ответа на запрос
| HTTP‑код ответа | Описание |
|---|---|
| 200 | Данные успешно извлечены. |
| 400 | Некорректный запрос: не передан файл, не передана схема, схема невалидна или MIME type не поддерживается. |
| 401 | Не переданы ключи авторизации |
| 403 | Переданы несуществующие ключи или недостаточно лимитов/баланса для использования. |
| 413 | Файл слишком большой. |
| 502 | Ошибка обработки на стороне сервиса. |
Ограничения
Максимальная частота запросов — 10 в минуту с одного IP-адреса. Напишите на info@dadata.ru, если этого мало.
Файл в запросе — PDF, JPG, PNG до 20 МБ.
Стоимость
3 ₽ за страницу. Не входит в годовую подписку.