Перейти к основному содержанию
POST
/
v1
/
media
Создать генерацию медиа
curl --request POST \
  --url https://polza.ai/api/v1/media \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "topaz/image-upscale",
  "input": {
    "prompt": "а",
    "upscale_factor": "8",
    "images": [
      {
        "type": "url",
        "data": "https://polza-s3.devd.pro/f/212452/2026/02/t_f122d0d823faf2fb.jpg"
      }
    ]
  },
  "async": true
}
'
{
  "id": "gen_581761234567890123",
  "object": "media.generation",
  "status": "pending",
  "created": 1703001234,
  "model": "google/gemini-2.5-flash-image",
  "completed_at": 1703001244,
  "data": "<unknown>",
  "usage": {
    "input_units": 1,
    "output_units": 1,
    "duration_seconds": 5,
    "input_tokens": 10,
    "output_tokens": 0,
    "total_tokens": 10,
    "cost_rub": 1.5,
    "cost": 1.5
  },
  "error": {
    "code": "BAD_GATEWAY",
    "message": "Ошибка генерации медиа контента"
  },
  "content": "Банан и яблоко — это фрукты.",
  "reasoning_summary": "Preparing image generation prompt with camera settings...",
  "warnings": [
    "Параметр isEnhance не поддерживается OpenRouter и будет проигнорирован"
  ]
}

О Media API

Универсальный эндпоинт для генерации медиа контента. Поддерживает различные модели и провайдеров через единый интерфейс.

Общие параметры

ПараметрТипОбязательныйОписание
modelstringДаID модели для генерации
inputobjectДаПараметры генерации (зависят от модели)
asyncbooleanНетПринудительный асинхронный режим
userstringНетИдентификатор конечного пользователя
providerobjectНетКонфигурация роутинга по провайдерам

Передача файлов (URL и base64)

Для моделей, поддерживающих image-to-image или video-to-video, медиа файлы передаются в массиве images или videos. Каждый элемент — объект с полями:
ПолеТипОписание
type"url" | "base64"Формат данных
datastringURL файла или base64-строка (с data URI или без)

Пример с base64

curl -X POST "https://polza.ai/api/v1/media" \
  -H "Authorization: Bearer <POLZA_AI_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedream-3",
    "input": {
      "prompt": "Сделай изображение ярче и добавь закат на фоне",
      "images": [
        {
          "type": "base64",
          "data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..."
        }
      ]
    }
  }'
Можно комбинировать URL и base64 в одном запросе:
{
  "model": "gpt-image-1",
  "input": {
    "prompt": "Объедини эти изображения в коллаж",
    "images": [
      { "type": "url", "data": "https://example.com/photo1.png" },
      { "type": "base64", "data": "data:image/jpeg;base64,/9j/4AAQSkZJRg..." }
    ]
  }
}
Base64 поддерживается как с data URI (data:image/png;base64,...), так и без — просто строка base64. Если провайдер не поддерживает base64 напрямую, файл автоматически загружается в хранилище и передаётся как URL.

Типы контента

  • Изображения (Nano Banana, Seedream, GPT Image и др.)
  • Видео (Veo, Wan, Kling, Seedance, Sora и др.)
  • Аудио — синтез речи (TTS) и распознавание речи (STT)

Хранение результатов

При генерации медиа контента Polza.ai автоматически:
  1. Скачивает результат у AI провайдера на собственное хранилище
  2. Хранит файлы 7 дней для повторного доступа
  3. Раздаёт через CDN для быстрого доступа внутри России
После истечения 7 дней файлы автоматически удаляются. Для постоянного хранения используйте Storage API с политикой PERMANENT.

Руководства по моделям

Подробные примеры, параметры и особенности каждой модели — в руководствах:

Ответ

Возвращает объект Media Status со статусом pending:
{
  "id": "aig_abc123",
  "object": "media.generation",
  "status": "pending",
  "created": 1703001244,
  "model": "google/veo3"
}
Используйте GET /v1/media/ для проверки статуса и получения результата.

Авторизации

Authorization
string
header
обязательно

API ключ передаётся в заголовке: Authorization: Bearer <POLZA_AI_API_KEY>

Тело

application/json
model
string
обязательно

ID модели для генерации

Пример:

"topaz/image-upscale"

input
object
обязательно

Входные параметры генерации. Поля зависят от модели (см. документацию по моделям).

Пример:
{
  "prompt": "а",
  "upscale_factor": "8",
  "images": [
    {
      "type": "url",
      "data": "https://polza-s3.devd.pro/f/212452/2026/02/t_f122d0d823faf2fb.jpg"
    }
  ]
}
provider
object

Настройки роутинга провайдеров

async
boolean
по умолчанию:false

Асинхронный режим генерации. При true возвращается taskId для опроса статуса

Пример:

true

user
string

Уникальный идентификатор конечного пользователя для отслеживания и предотвращения злоупотреблений

Ответ

id
string
обязательно

Уникальный идентификатор генерации

Пример:

"gen_581761234567890123"

object
string
обязательно

Тип объекта

Пример:

"media.generation"

status
enum<string>
обязательно

Статус генерации

Доступные опции:
pending,
processing,
completed,
failed,
cancelled
Пример:

"pending"

created
number
обязательно

Временная метка создания (Unix timestamp)

Пример:

1703001234

model
string
обязательно

ID модели, которая генерирует контент

Пример:

"google/gemini-2.5-flash-image"

completed_at
number

Временная метка завершения (Unix timestamp)

Пример:

1703001244

data

Данные сгенерированного контента

usage
object

Информация об использовании ресурсов

error
object

Информация об ошибке (если failed)

content
string

Текстовый ответ модели (если вернула текст вместо/вместе с изображением)

Пример:

"Банан и яблоко — это фрукты."

reasoning_summary
string

Краткое резюме рассуждений модели

Пример:

"Preparing image generation prompt with camera settings..."

warnings
string[]

Предупреждения (неподдерживаемые параметры и т.д.)

Пример:
[
  "Параметр isEnhance не поддерживается OpenRouter и будет проигнорирован"
]