API · Referencia
Resultado de la generación
GET /v1/requests/{request_id} — obtenga el resultado terminado con enlaces a la imagen, el vídeo o el audio; mientras el trabajo sigue en curso, la API devuelve 202.
Obtenga la generación terminada con enlaces a sus medios. Mientras el trabajo está en cola o en ejecución, la llamada devuelve 202: vuelva a intentarlo más tarde.
Playground
API-ключ в заголовке Authorization со схемой Bearer:
Authorization: Bearer <CLIPIA_API_KEY>Передавайте полную строку, включая префикс схемы Bearer и пробел.
Также принимаются Authorization: Key <ключ> и заголовок
X-Api-Key: <ключ> — выбирайте удобную схему.
Ключ создаётся в консоли разработчика (clipia.ai/developer, вкладка
«API-ключи») и показывается один раз. Формат: clipia_live_… (боевой), clipia_test_… (песочница).
Sandbox / тестовый режим. Ключ с префиксом clipia_test_… работает в
песочнице: submit не списывает кредиты и не запускает реальную
генерацию — он мгновенно возвращает status: COMPLETED с детерминированным
mock-результатом (фиксированный sample-ассет на media.clipia.ai). Поле
cost показывает расчётную стоимость, но она не списывается. Вебхуки
приходят тем же подписанным механизмом (HMAC-SHA256). Режим предназначен
для отладки интеграции до подключения боевого ключа.
In: header
Path Parameters
Идентификатор запроса генерации, полученный при submit.
uuidResponse Body
curl -X GET "https://api.clipia.ai/v1/requests/764cabcf-b745-4b3e-ae38-1200304cf45b"{
"request_id": "764cabcf-b745-4b3e-ae38-1200304cf45b",
"status": "COMPLETED",
"model": "nano-banana-2",
"output": {
"images": [
{
"url": "https://media.clipia.ai/works/8f3a1c7e.webp",
"original_url": "https://media.clipia.ai/works/8f3a1c7e.png"
}
]
},
"cost": 12,
"created_at": "2026-06-01T12:00:00Z",
"completed_at": "2026-06-01T12:00:18Z"
}{
"request_id": "764cabcf-b745-4b3e-ae38-1200304cf45b",
"status": "IN_PROGRESS",
"queue_position": null,
"progress": 70
}{
"error": {
"type": "invalid_request_error",
"code": "invalid_api_key",
"message": "API-ключ отсутствует, неверный или отозван."
}
}{
"error": {
"type": "invalid_request_error",
"code": "not_found",
"message": "Запрос с таким идентификатором не найден."
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Retry after the reset window.",
"retry_after_seconds": 12
}
}GET /v1/requests/:id devuelve el resultado con un campo output y el código 200 cuando el trabajo alcanza un estado terminal (COMPLETED, FAILED o CANCELED). Todos los enlaces apuntan a la CDN media.clipia.ai. No se necesita ningún permiso adicional de la clave.
/v1/requests/:idSolicitud
Prop
Type
curl https://api.clipia.ai/v1/requests/764cabcf-b745-4b3e-ae38-1200304cf45b \
-H "Authorization: Bearer $CLIPIA_KEY"const result = await clipia.queue.result('764cabcf-b745-4b3e-ae38-1200304cf45b');
// Mientras el trabajo está en ejecución, la API devuelve 202 y el SDK establece pending: true.
if (result.pending) {
console.log('still running:', result.status);
} else {
console.log(result.output?.images?.[0]?.url);
}result = client.result("764cabcf-b745-4b3e-ae38-1200304cf45b")
# Mientras el trabajo está en ejecución, la API devuelve 202 y el SDK establece pending = True.
if result.pending:
print("still running:", result.status)
else:
print(result.output["images"][0]["url"])Imagen
{
"request_id": "764cabcf-b745-4b3e-ae38-1200304cf45b",
"status": "COMPLETED",
"model": "nano-banana-2",
"output": {
"images": [
{
"url": "https://media.clipia.ai/....webp",
"original_url": "https://media.clipia.ai/....png"
}
]
},
"cost": 12,
"created_at": "2026-10-09T12:00:00Z",
"completed_at": "2026-10-09T12:00:18Z"
}output.images es una matriz. url es una copia WebP optimizada para mostrarla; original_url es el archivo original a máxima calidad. Solo la primera imagen de la matriz tiene original_url.
Vídeo
{
"request_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"status": "COMPLETED",
"model": "seedance-2-fast-i2v",
"output": {
"video": {
"url": "https://media.clipia.ai/....mp4",
"original_url": "https://media.clipia.ai/....mp4",
"thumbnail_url": "https://media.clipia.ai/....webp"
}
},
"cost": 40,
"created_at": "2026-10-09T12:00:00Z",
"completed_at": "2026-10-09T12:00:42Z"
}output.video es un objeto con url. Los campos original_url y thumbnail_url (un fotograma de vista previa) pueden faltar.
Audio
{
"output": {
"audio": { "url": "https://media.clipia.ai/....mp3" }
}
}Sin dimensiones ni duración
Las respuestas reales no tienen los campos width, height ni duration. Si los necesita, léalos del propio archivo. En el entorno de pruebas, las muestras sí incluyen dimensiones: no base su lógica en ellas.
Campos de la respuesta
Prop
Type
Avisos
Si pediste sonido, pero la pista de audio no superó la comprobación de seguridad del modelo, el servidor repite la generación una vez sin sonido. La solicitud termina como COMPLETED y la respuesta incluye además el array warnings:
{
"status": "COMPLETED",
"output": { "video": { "url": "https://media.clipia.ai/....mp4" } },
"warnings": [
{
"code": "audio_dropped",
"parameter": "generate_audio",
"message": "The audio track did not pass the model's safety check, so the video is generated without sound. The price of the request is unchanged."
}
]
}El coste de la solicitud no cambia. El campo warnings se omite cuando no hay nada que avisar, y también en FAILED y CANCELED. El mismo array llega con la respuesta 202 y con el estado de la solicitud mientras el vídeo sin sonido se sigue generando. De momento es el único motivo; interpreta un code desconocido como «el parámetro no se aplicó».
Códigos de respuesta
| HTTP | Cuándo | Cuerpo |
|---|---|---|
200 | COMPLETED | resultado con output |
200 | FAILED | error: { code, message }, code es "GENERATION_FAILED" por defecto |
200 | CANCELED | respuesta terminal; output suele estar vacío |
202 | IN_QUEUE / IN_PROGRESS | { request_id, status }: vuelva a intentarlo más tarde |
400 | identificador mal formado | message: invalid_request_id |
404 | no existe la solicitud | code: not_found, message: request_not_found |
El código 202 es previsible
202 solo aparece mientras el trabajo no ha terminado. FAILED y CANCELED son respuestas finales con el código 200. En caso de FAILED, los créditos reservados se reembolsan íntegramente. error.code suele ser GENERATION_FAILED, y error.message es una descripción breve sin detalles internos. Base su lógica en status, no en el texto del mensaje.
Estado de la solicitud
GET /v1/requests/{request_id}/status — una consulta ligera del estado y el progreso de una generación por su request_id. No se necesita ningún permiso adicional de la clave.
Catálogo de modelos
GET /v1/models — los modelos de imagen, vídeo y audio de Clipia con slugs exactos, esquema de entrada y precios, incluidos los slugs que contienen una barra.