Загрузить изображения для сборки PDF
const url = 'https://passports.dev.techcon-ml.ru/api/v1/upload-images';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/api/v1/upload-images \ --header 'Content-Type: multipart/form-data' \ --form files=exampleПринимает изображения через multipart/form-data. Поддерживаемые форматы: jpg, jpeg, png, tiff, bmp, webp. Возвращает список изображений с превью (base64 data URL, ~10–30 КБ на изображение) для drag-and-drop упорядочивания. Файлы с неподдерживаемым расширением или повреждённые пропускаются. Возвращает 400 если ни один файл не прошёл валидацию.
Request Bodyrequired
Заголовок раздела «Request Bodyrequired»object
Изображения для сборки PDF
Responses
Заголовок раздела «Responses»Список загруженных изображений с превью
object
object
UUID изображения во временном хранилище
Оригинальное имя файла
Data URL превью (data:image/jpeg;base64,…)
Начальный порядок (по имени файла, 0-based)
Example
{ "images": [ { "filename": "scan_page1.png", "id": "3f1a2b4c-1234-5678-abcd-ef1234567890", "order": 0, "thumb_url": "data:image/jpeg;base64,/9j/4AAQ..." } ]}Нет допустимых изображений или превышен лимит
object
object
Машиночитаемый код ошибки (UPPER_SNAKE_CASE)
Человекочитаемое описание ошибки
Example
{ "ok": false}Не авторизован или токен истёк
object
object
Машиночитаемый код ошибки (UPPER_SNAKE_CASE)
Человекочитаемое описание ошибки
Example
{ "ok": false}Validation Error
object
object
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}