Получение статуса генерации медиа по ID.
Рекомендуется проверять статус с интервалом 3-5 секунд для изображений и 5-10 секунд для видео.
| Статус | Описание |
|---|
pending | В очереди |
processing | Генерация выполняется |
completed | Готово — результат в поле data |
failed | Ошибка — подробности в поле error |
{
"id": "aig_abc123",
"object": "media.generation",
"status": "completed",
"created": 1703001244,
"model": "google/gemini-3.8-flash",
"data": {
"url": "https://cdn.usellm.ru/f/205141/2026/03/aig_abc123.jpg"
},
"usage": {
"output_units": 1,
"cost_rub": 5.00,
"cost": 5.00
}
}
curl "https://api.usellm.ru/v1/media/aig_abc123" \
-H "Authorization: Bearer <USELLM_API_KEY>"
import requests
import time
def wait_for_media(api_key, media_id, interval=5, max_wait=300):
url = f'https://api.usellm.ru/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('<USELLM_API_KEY>', 'aig_abc123')
print(f"Результат: {result['data']['url']}")
async function waitForMedia(apiKey, mediaId, interval = 5000, maxWait = 300000) {
const url = `https://api.usellm.ru/v1/media/${mediaId}`;
let elapsed = 0;
while (elapsed < maxWait) {
const response = await fetch(url, {
headers: { 'Authorization': `Bearer ${apiKey}` }
});
const data = await response.json();
if (data.status === 'completed') return data;
if (data.status === 'failed') throw new Error(`Ошибка: ${data.error}`);
await new Promise(resolve => setTimeout(resolve, interval));
elapsed += interval;
}
throw new Error('Превышено время ожидания');
}
Результаты хранятся 7 дней на CDN. Для постоянного хранения используйте Storage API.