Trabajos de IA
Crear una imagen o un SVG, o aplicar un estilo, tarda unos segundos, así que la API trabaja con trabajos asíncronos: un solo recurso, /jobs, para todos.
El flujo
- Crea el trabajo con
POST /jobs, indicando sutypey suinput(y, si quieres, unaIdempotency-Key). La API responde202y la cabeceraLocationcon la URL del trabajo. - Consulta esa URL cada 1 o 2 segundos (Consultar un trabajo), o indica una
webhook_urly recibirás el resultado (Webhooks). - Cuando
statusseasucceededofailed, ha terminado.
Tipos
type | Qué hace | Coste |
|---|---|---|
generate_image | Imagen nueva desde una descripción. | 1 crédito |
restyle_image | Un estilo (o un cambio descrito) aplicado a una imagen de tu biblioteca. | 1 crédito |
generate_svg | Un SVG o un sprite de 2 a 6 iconos. | 1 crédito por icono |
Estados
status | Significado |
|---|---|
queued | El trabajo está en cola. |
processing | La IA está trabajando. |
succeeded | Listo: el resultado está en asset y en tu biblioteca. |
failed | No se pudo completar: el motivo está en error.code y los créditos se han devuelto. |
Ejemplo
POST /jobs · 202 · cabeceras
Location: /api/v1/jobs/394730eb-3747-4fd2-9e06-9a945e9f12fbPOST /jobs · 202
{
"id": "394730eb-3747-4fd2-9e06-9a945e9f12fb",
"type": "generate_image",
"status": "queued",
"style": null,
"asset": null,
"reply": null,
"error": null,
"credits_remaining": 19,
"webhook_url": null,
"created_at": "2026-10-12T10:10:32.061Z",
"updated_at": "2026-10-12T10:10:32.061Z"
}GET /jobs/{id} · 200 (succeeded)
{
"id": "394730eb-3747-4fd2-9e06-9a945e9f12fb",
"type": "generate_image",
"status": "succeeded",
"style": null,
"asset": {
"id": "ba0f0e44-38f6-497a-86d7-0fa26638ef4f",
"url": "https://creavibe.app/media/recursos/017dfef2-eaf5-429a-86f3-307b8bf36189/fe9c605529e44f34b85de1305c39c239.png",
"thumbnail_url": "https://creavibe.app/media/miniaturas/recurso/51a5e906ffa3464f874b1156cc35212e.webp",
"type": "image",
"source": "generated",
"name": "A red apple on a wooden table, soft daylight",
"font_family": null,
"width": 896,
"height": 1152,
"size_bytes": 1181799,
"created_at": "2026-10-12T10:10:40.432Z"
},
"reply": null,
"error": null,
"credits_remaining": 15,
"webhook_url": null,
"created_at": "2026-10-12T10:10:32.061Z",
"updated_at": "2026-10-12T10:10:32.084Z"
}Si falla
Un trabajo fallido devuelve los créditos y explica el motivo en error.code:
error.code | Motivo |
|---|---|
content_flagged | La IA rechazó la imagen o el resultado por posible contenido sensible. |
timeout | La IA tardó demasiado. |
busy | La IA está saturada: vuelve a intentarlo en un minuto. |
failed | Cualquier otro fallo de la IA. |
GET /jobs/{id} · 200 (failed)
{
"id": "394730eb-3747-4fd2-9e06-9a945e9f12fb",
"type": "generate_image",
"status": "failed",
"style": null,
"asset": null,
"reply": null,
"error": {
"code": "content_flagged",
"message": "The AI rejected the image for possibly sensitive content."
},
"credits_remaining": 15,
"webhook_url": null,
"created_at": "2026-10-12T10:10:32.061Z",
"updated_at": "2026-10-12T10:10:32.084Z"
}Una imagen suele estar lista en menos de un minuto. Si un trabajo sigue sin terminar al cabo de unos minutos, consulta tu biblioteca más tarde.