Файлы

Любой файл — результат, референс из запроса, ваша загрузка — объект file (схема File) со сроком жизни 1 день (retention.files_days в GET /v1/key). Нужен дольше — скачайте.

Ссылка на файл

url подписан до конца срока и не меняется — можно отдать пользователю или встроить на страницу (media.souz.ai, CORS *, работают Range и ?download=1). После срока байты удаляются: у объекта expired: true без url, ссылка отвечает 410 file_expired. Неверная подпись — 403 invalid_signature.

Загрузка — POST /v1/files

multipart/form-data, часть file (purpose SDK OpenAI принимается и ни на что не влияет). Полученный file_… подставляйте в поля запроса вместо байтов.

ТипФорматыПредел
картинкиpng, jpeg, webp50 МиБ; JPEG до 300 Мп, остальные — см. референсы; хранятся как есть, без метаданных
видеоmp4, mov200 МиБ; сохраняются как есть
звукwav, mp315 МиБ; сохраняются как есть

Отвергнутый файл — 400 invalid_input (413 — слишком большой) с detail[].

curl https://api.souz.ai/v1/files \
  -H "Authorization: Bearer $SOUZ_API_KEY" \
  -F file=@reference.png

Список и удаление

GET /v1/files, GET /v1/files/{id}, DELETE /v1/files/{id} — как files.list, files.retrieve и files.delete SDK OpenAI; удаление отвечает {"id", "object": "file", "deleted": true}. Чужой файл неотличим от несуществующего: 404 file_not_found.