Перейти к основному содержанию
GET
/
v1
/
media
/
{id}
Получить статус генерации
curl --request GET \
  --url https://polza.ai/api/v1/media/{id} \
  --header 'Authorization: Bearer <token>'
{
  "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 и будет проигнорирован"
  ]
}

Polling

Рекомендуется проверять статус с интервалом 3-5 секунд для изображений и 5-10 секунд для видео.

Статусы

СтатусОписание
pendingВ очереди
processingГенерация выполняется
completedГотово — результат в поле data
failedОшибка — подробности в поле error

Ответ (completed)

{
  "id": "aig_abc123",
  "object": "media.generation",
  "status": "completed",
  "created": 1703001244,
  "model": "veo3.1",
  "data": {
    "url": "https://cdn.polza.ai/video.mp4"
  },
  "usage": {
    "cost_rub": 5.00,
    "cost": 5.00
  }
}

Примеры polling

import requests
import time

def wait_for_media(api_key, media_id, interval=5, max_wait=300):
    url = f'https://polza.ai/api/v1/media/{media_id}'
    headers = {'Authorization': f'Bearer {api_key}'}
    elapsed = 0

    while elapsed < max_wait:
        response = requests.get(url, headers=headers)
        data = response.json()

        if data['status'] == 'completed':
            return data
        elif data['status'] == 'failed':
            raise Exception(f"Генерация не удалась: {data.get('error')}")

        time.sleep(interval)
        elapsed += interval

    raise TimeoutError("Превышено время ожидания")

result = wait_for_media('YOUR_API_KEY', 'aig_abc123')
print(f"Результат: {result['data']['url']}")
Результаты хранятся 7 дней на CDN. Для постоянного хранения используйте Storage API.

Авторизации

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

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

Параметры пути

id
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 и будет проигнорирован"
]