REST API

Файлы и хранилище

Загрузите файл через POST /api/files, получите input-ready объект и вставьте его прямо в input[].

Загрузка файла

POST /api/files

Тело — multipart/form-data с полем file.

bash
curl -X POST https://agent.aist-ai.com/api/files \
  -H "Authorization: Bearer <jwt>" \
  -H "Accept: application/json" \
  -F "file=@document.pdf"

Ответ — объект, готовый к вставке прямо в input[]:

ответ
{
  "type": "file",
  "file": {
    "id": "42",                        // всегда строка
    "name": "document.pdf",
    "mime_type": "application/pdf",
    "provider_data": { "path": "uploads/…/document.pdf" }
  }
}

Ограничения

ПараметрЗначение
Макс. размер1 024 000 КБ (~1 ГБ)
ФорматыЛюбые: архивы, офисные документы, исходники, аудио, видео, неизвестные бинарные файлы. Файл с расширением текста или кода (.txt, .md, .py, …) должен и правда быть текстом — иначе 422 с errors.file.

Правила валидации совпадают с Aist Backend — загрузка проксируется туда напрямую. Файл хранится как загружен: картинки не ужимаются, GIF остаётся анимированным. Ассистент работает с исходником — конвертирует, распаковывает, читает, а что не умеет показать, отдаёт файлом.

Базовый URL хранилища

GET /api/storage/base

Возвращает публичный базовый URL хранилища. Склейте его с provider_data.path, чтобы получить прямую ссылку на скачивание файла (например, сгенерированного изображения из output).

ответ
{ "url": "https://storage.aist.example" }
js
const downloadUrl = `${base.url}/${file.provider_data.path}`;
JWT нужен только для запроса GET /api/storage/base. Само скачивание файла по полученной ссылке авторизации не требует.