DaData.ru
↑ Все API

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.

Параметры запроса

НазваниеТипОбяз.?По умолч.Описание
filefile✓Документ для обработки
schemaJSON✓ 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 ₽ за страницу. Не входит в годовую подписку.