curl --request POST \
--url https://polza.ai/api/v1/media/{id}/operations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"operation": "extend",
"params": {
"prompt": "Продолжение сцены",
"seeds": 12345
},
"async": false
}
'import requests
url = "https://polza.ai/api/v1/media/{id}/operations"
payload = {
"operation": "extend",
"params": {
"prompt": "Продолжение сцены",
"seeds": 12345
},
"async": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
operation: 'extend',
params: {prompt: 'Продолжение сцены', seeds: 12345},
async: false
})
};
fetch('https://polza.ai/api/v1/media/{id}/operations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://polza.ai/api/v1/media/{id}/operations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'operation' => 'extend',
'params' => [
'prompt' => 'Продолжение сцены',
'seeds' => 12345
],
'async' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://polza.ai/api/v1/media/{id}/operations"
payload := strings.NewReader("{\n \"operation\": \"extend\",\n \"params\": {\n \"prompt\": \"Продолжение сцены\",\n \"seeds\": 12345\n },\n \"async\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://polza.ai/api/v1/media/{id}/operations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"operation\": \"extend\",\n \"params\": {\n \"prompt\": \"Продолжение сцены\",\n \"seeds\": 12345\n },\n \"async\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://polza.ai/api/v1/media/{id}/operations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"operation\": \"extend\",\n \"params\": {\n \"prompt\": \"Продолжение сцены\",\n \"seeds\": 12345\n },\n \"async\": false\n}"
response = http.request(request)
puts response.read_body{
"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": "Ошибка генерации медиа контента",
"metadata": {
"raw": "content policy violation",
"provider_name": "alibaba"
}
},
"content": "Банан и яблоко — это фрукты.",
"reasoning_summary": "Preparing image generation prompt with camera settings...",
"warnings": [
"Параметр isEnhance не поддерживается и будет проигнорирован"
]
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}POST Media Operations
Выполнение операций над существующими медиа (extend, upscale)
curl --request POST \
--url https://polza.ai/api/v1/media/{id}/operations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"operation": "extend",
"params": {
"prompt": "Продолжение сцены",
"seeds": 12345
},
"async": false
}
'import requests
url = "https://polza.ai/api/v1/media/{id}/operations"
payload = {
"operation": "extend",
"params": {
"prompt": "Продолжение сцены",
"seeds": 12345
},
"async": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
operation: 'extend',
params: {prompt: 'Продолжение сцены', seeds: 12345},
async: false
})
};
fetch('https://polza.ai/api/v1/media/{id}/operations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://polza.ai/api/v1/media/{id}/operations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'operation' => 'extend',
'params' => [
'prompt' => 'Продолжение сцены',
'seeds' => 12345
],
'async' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://polza.ai/api/v1/media/{id}/operations"
payload := strings.NewReader("{\n \"operation\": \"extend\",\n \"params\": {\n \"prompt\": \"Продолжение сцены\",\n \"seeds\": 12345\n },\n \"async\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://polza.ai/api/v1/media/{id}/operations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"operation\": \"extend\",\n \"params\": {\n \"prompt\": \"Продолжение сцены\",\n \"seeds\": 12345\n },\n \"async\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://polza.ai/api/v1/media/{id}/operations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"operation\": \"extend\",\n \"params\": {\n \"prompt\": \"Продолжение сцены\",\n \"seeds\": 12345\n },\n \"async\": false\n}"
response = http.request(request)
puts response.read_body{
"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": "Ошибка генерации медиа контента",
"metadata": {
"raw": "content policy violation",
"provider_name": "alibaba"
}
},
"content": "Банан и яблоко — это фрукты.",
"reasoning_summary": "Preparing image generation prompt with camera settings...",
"warnings": [
"Параметр isEnhance не поддерживается и будет проигнорирован"
]
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Недопустимое значение параметра",
"trace_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {},
"metadata": {
"reason": "noProvidersForModel",
"raw": "The parameter `duration` specified in the request is not valid",
"provider_name": "alibaba"
}
},
"trace_id": "550e8400-e29b-41d4-a716-446655440000"
}Операции над медиа
После генерации медиа контента можно выполнять дополнительные операции:| Операция | Описание | Тип |
|---|---|---|
extend | Продление видео | Асинхронная |
upscale_1080p | Увеличение разрешения до 1080p | Синхронная |
upscale_4k | Увеличение разрешения до 4K | Синхронная |
Синхронные vs Асинхронные операции
Синхронные операции (upscale)
Результат возвращается сразу в полеdata:
{
"id": "aig_abc123",
"object": "media.generation",
"status": "completed",
"created": 1703001244,
"model": "google/gemini-2.5-flash-image",
"data": {
"url": "https://storage.polza.ai/video_1080p.mp4"
}
}
Асинхронные операции (extend)
Создаётся новая генерация со статусомpending:
{
"id": "aig_xyz789",
"object": "media.generation",
"status": "pending",
"created": 1703001244,
"model": "pending"
}
Параметр async
async: false(по умолчанию) — ждёт результат до 120 секундasync: true— сразу возвращает ID новой генерации
Примеры
Продление видео (extend)
curl -X POST "https://polza.ai/api/v1/media/aig_abc123/operations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"operation": "extend",
"params": {
"prompt": "Камера отдаляется, показывая панораму города"
}
}'
Увеличение разрешения (upscale)
curl -X POST "https://polza.ai/api/v1/media/aig_abc123/operations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"operation": "upscale_1080p"
}'
Параметры операции extend
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Да | Промпт для продолжения видео |
seeds | number | Нет | Seed для воспроизводимости |
duration | number | Нет | Длительность продления (3-10 сек) |
Авторизации
API ключ передаётся в заголовке: Authorization: Bearer <POLZA_AI_API_KEY>
Параметры пути
Тело
ID операции
extend, upscale_1080p, upscale_4k "extend"
Параметры операции. Зависят от типа операции.
{
"prompt": "Продолжение сцены",
"seeds": 12345
}
Асинхронный режим. При true сразу возвращает ID операции, результат получить через GET /v2/media/:id
false
Ответ
Результат операции. status: processing с id исходной генерации означает, что провайдер ещё готовит результат (например, upscale_1080p сразу после генерации): повторите тот же запрос позже, за такой ответ оплата не списывается.
Уникальный идентификатор генерации
"gen_581761234567890123"
Тип объекта
"media.generation"
Статус генерации
pending, processing, completed, failed, cancelled "pending"
Временная метка создания (Unix timestamp)
1703001234
ID модели, которая генерирует контент
"google/gemini-2.5-flash-image"
Временная метка завершения (Unix timestamp)
1703001244
Данные сгенерированного контента
Информация об использовании ресурсов
Show child attributes
Show child attributes
Информация об ошибке (если failed)
Show child attributes
Show child attributes
Текстовый ответ модели (если вернула текст вместо/вместе с изображением)
"Банан и яблоко — это фрукты."
Краткое резюме рассуждений модели
"Preparing image generation prompt with camera settings..."
Предупреждения (неподдерживаемые параметры и т.д.)
[
"Параметр isEnhance не поддерживается и будет проигнорирован"
]
Была ли эта страница полезной?