# Общая информация о сервисах

## Краткое описание сервисов

* [Классификация документов](https://docs.dbrain.io/servisy/document-classification) — сортируем документы по типу.
* [Извлечение данных из документов](https://docs.dbrain.io/servisy/izvlechenie-dannykh) — извлекаем данные из изображений документов и возвращаем их в структурированном виде.
* [Проверка документов](https://docs.dbrain.io/servisy/proverka-dokumentov) — находим признаки подделки файла с документом, проверяем качество изображений и наличие подписей и печатей. Также можем проверить документ по базам данных.
* [Операции с лицами](https://docs.dbrain.io/servisy/operacii-s-licami) — сравниваем лицо человека с фото на документе и даём оценку их схожести. Также умеем проверять «живость» человека.
* [Базовый OCR](https://docs.dbrain.io/servisy/fulltext-recognition) — возвращаем весь найденный текст из любых изображений документов.
* [Ручная верификация](https://docs.dbrain.io/servisy/manual-recognition) — вручную проверяем результаты извлечения текста в онлайн-режиме.

## Форматы файлов

Обрабатываем одностраничные файлы любого формата. Многостраничные файлы — только форматов PDF и DJVU:

<table><thead><tr><th>Формат</th><th data-type="checkbox">Одностраничный</th><th data-type="checkbox">Многостраничный</th></tr></thead><tbody><tr><td>JPEG/JPG</td><td>true</td><td>false</td></tr><tr><td>PDF</td><td>true</td><td>true</td></tr><tr><td>PNG</td><td>true</td><td>false</td></tr><tr><td>TIFF</td><td>true</td><td>false</td></tr><tr><td>BMP</td><td>true</td><td>false</td></tr><tr><td>GIF</td><td>true</td><td>false</td></tr><tr><td>HEIC</td><td>true</td><td>false</td></tr><tr><td>HEIF</td><td>true</td><td>false</td></tr><tr><td>DJVU</td><td>true</td><td>true</td></tr></tbody></table>

{% hint style="info" %}
Размер файлов должен быть не более 30 Mb и не менее 1 Kb
{% endhint %}

## Формат запросов и ответов

Сервис принимает запросы в формате `multipart/form-data`.

В ответах формата JSON используется кодировка `UTF-8`.

## Универсальные параметры запроса к API

Все сервисы Dbrain поддерживают этот набор параметров. Использовать их необязательно, но они могут помочь решить вашу задачу.

#### Асинхронный запрос

{% hint style="success" %}
**async — boolean**
{% endhint %}

Поведение по умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе `async=true`. В ответ на запрос сервис вернёт в `response body` параметр `task_id`. Например:

```json
"task_id": "96b8ccc950a70699927036842c624d7c"
```

Используйте этот `task_id`, чтобы получить результаты классификации в методе `result`:

```bash
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
```

Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды.

#### Тегирование запроса

{% hint style="success" %}
**task\_tags — string array**
{% endhint %}

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре `task_tags` удобный вам тег. Например, `task_tags=id_13`

## Тело запроса к API

В любом сервисе Dbrain изображение нужно передавать в теле запроса. В сервисе [«Сравнение лиц»](https://docs.dbrain.io/servisy/operacii-s-licami/sravnenie-lic) нужно передать два изображения в атрибутах `image1` и `image2`.

#### **Изображение**

{% hint style="success" %}
**image — string ($binary)**
{% endhint %}

Обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

## HTTP-коды ответа на запрос

Сервисы Dbrain возвращают универсальный набор HTTP-статусов. Рассказываем, что значит каждый статус и что с ним делать.

### `200 OK`

Это наилучший код ответа. Он означает, что всё работает: сервис успешно обработал запрос и вернул запрошенные данные.

### `202 Accepted`

Наш сервис принял запрос в обработку, но ответ ещё не готов. Повторите запрос через 1-2 секунды.

### `403 License is Invalid`

В запросе не указан токен, или есть проблемы с лицензией. Например, истёк срок действия лицензии или превышено число запросов. Проверьте корректность параметра token в запросе. Если token указан верно, напишите нам в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>

### `404 Not Found`

Задача с таким task\_id не найдена. Проверьте корректность параметра task\_id в запросе.

### `405 Method Not Allowed`

Вы использовали неверный тип запроса. Например, отправили GET вместо POST.

### `413 Content Too Large`

Вы отправили слишком большой файл. Файл должен быть меньше 30 Мб. Если у вас тяжелый многостраничный файл, разбейте его на несколько файлов перед отправкой. Если файл состоит из одной страницы — сохраните его с меньшим разрешением.

### `415 Unsupported Media Type`

Вы отправили слишком маленький файл. Он должен быть больше 1 Кб.

### `422 Unprocessable Content`

Скорее всего, вы передали неправильный content-type тела запроса. Возможно, вы отправили текст вместо файла. Проверьте запрос.

### `500 Internal Server Error`

Внутренняя ошибка сервиса Dbrain. Как правило, сопровождается пояснением. Попробуйте повторить запрос. Если это не решило проблему, напишите нам в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>.

### `502 Bad Gateway`

Проблемы с роутингом соединения до сервисов Dbrain. Возможно, проблема на вашей стороне. Проверьте сетевые настройки.

### `503 Service Unavailable`

Сервис недоступен. Возможно, он перегружен. Попробуйте повторить запрос позже. Если появился такой статус, мы тоже о нём знаем и уже решаем проблему.

## Проверка работоспособности сервиса

Отправьте GET-запрос на адрес `https://latest.dbrain.io/healthcheck`.

В ответ вы получите код состояния HTTP `200` с `Content-Type: application/json` и телом ответа `{"success": true}`.

Если пришёл любой другой код, значит, есть проблемы с сервисом и мы уже их устраняем.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dbrain.io/obshaya-informaciya/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
