Загрузить PDF-файлы для извлечения данных
POST
/upload
const url = 'https://passports.dev.techcon-ml.ru/upload';const form = new FormData();form.append('files', 'example');
const options = {method: 'POST'};
options.body = form;
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://passports.dev.techcon-ml.ru/upload \ --header 'Content-Type: multipart/form-data' \ --form files=exampleПринимает один или несколько PDF через multipart/form-data. При наличии заголовка Accept: application/json возвращает JSON со списком задач. Иначе — редирект 303 на главную страницу. Повторно загруженные файлы возвращают результат из кэша мгновенно (status=SUCCESS).
Request Bodyrequired
Заголовок раздела «Request Bodyrequired»Media typemultipart/form-data
Body_upload_file_upload_post
object
files
required
Files
PDF-файлы для обработки
Array<string>
Responses
Заголовок раздела «Responses»JSON со списком созданных задач (только при заголовке Accept: application/json)
Media typeapplication/json
UploadResponse
object
tasks
required
Tasks
Array<object>
UploadTaskItemobject
id
required
Id
UUID созданной задачи
string
status
required
Status
PENDING (новый файл) или SUCCESS (из кэша)
string
Example
{ "tasks": [ { "id": "3f1a2b4c-...", "status": "PENDING" }, { "id": "7e9d0c1a-...", "status": "SUCCESS" } ]}Редирект на / для браузерных запросов
Не авторизован или токен истёк
Media typeapplication/json
ApiErrorResponse
object
ok
Ok
boolean
error
required
ApiErrorDetail
object
code
required
Code
Машиночитаемый код ошибки (UPPER_SNAKE_CASE)
string
message
required
Message
Человекочитаемое описание ошибки
string
Example
{ "ok": false}Validation Error
Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationErrorobject
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}Превышен лимит запросов (20/час с одного IP)
Media typeapplication/json
ApiErrorResponse
object
ok
Ok
boolean
error
required
ApiErrorDetail
object
code
required
Code
Машиночитаемый код ошибки (UPPER_SNAKE_CASE)
string
message
required
Message
Человекочитаемое описание ошибки
string
Example
{ "ok": false}