Saltar al contenido principal
AIHubMix ofrece tres grupos de endpoints de tareas: /ai/v1/images para imágenes, /ai/v1/videos para videos y /ai/v1/tasks para registros unificados de tareas.
  • La generación de imágenes es síncrona de forma predeterminada y se ejecuta de forma asíncrona al enviar async: true.
  • La generación de videos siempre es asíncrona.
  • Los endpoints de detalles de imágenes y videos permiten obtener el estado más reciente de las tareas multimedia.
  • /ai/v1/tasks proporciona una vista unificada y de solo lectura de las tareas de imagen, video y LLM.
Si un video de Doubao Seedance necesita referencias a recursos de personas reales, completa la confirmación de la propia persona y prepara los recursos siguiendo la guía de recursos de personas reales de Doubao antes de crear la tarea de video.

Tutorial en video: tareas asíncronas

Explica el funcionamiento general de las tareas asíncronas y muestra un flujo completo de generación asíncrona de imágenes.

Activa las tareas asíncronas en la consola

Antes de usar los endpoints de tareas multimedia de /ai/v1, activa las tareas asíncronas para la cuenta actual.
Si las tareas asíncronas no están activadas, las solicitudes de creación de tareas de imagen y video devuelven 403 async_not_enabled.

Inicio rápido

El siguiente ejemplo usa wan2.6-t2v para crear un video. Este modelo acepta duration y size; los campos válidos pueden variar según el modelo.

Cómo elegir entre los tres grupos de endpoints

La URL base es https://aihubmix.com. La autenticación usa un Bearer Token:
Los endpoints de lista de modelos y de esquema de modelos son públicos y no requieren Bearer Token. Los demás endpoints requieren autenticación.
/ai/v1/tasks no ofrece un endpoint de creación. Las imágenes y los videos deben crearse mediante los endpoints de generación multimedia correspondientes. La plataforma guarda automáticamente las tareas de recuperación de LLM después de una interrupción del cliente.

Diferencias entre los endpoints multimedia y los de tareas unificadas

Los endpoints de detalles multimedia y los endpoints de tareas unificadas devuelven los mismos campos de nivel superior, pero los elementos de output y el comportamiento de consulta son distintos: Por lo tanto, usa el endpoint de detalles de imagen o video para sondear el estado de generación multimedia. Usa /ai/v1/tasks para filtrar tareas de forma unificada, leer metadatos de resultados o recuperar respuestas LLM.

Cómo descubrir modelos multimedia asíncronos y obtener sus esquemas

El proceso de descubrimiento tiene dos pasos. Primero, obtén del catálogo público los modelos de texto a imagen o texto a video compatibles con las API asíncronas. Después, usa el model_id del modelo para obtener el esquema de solicitud de sus endpoints.

Listar modelos compatibles con las API asíncronas

El catálogo de modelos usa la misma fuente de datos que Playground. Usa type=image_generation para los modelos de texto a imagen y type=video para los modelos de texto a video. Al añadir schema_checked=true, la lista se limita a los modelos cuyo esquema de solicitud se ha publicado y revisado.
Ambas solicitudes usan el mismo endpoint. El filtro type acepta actualmente un solo valor, por lo que debes solicitar cada tipo de modelo por separado. La respuesta tiene la forma {success, message, data}. Los siguientes campos de data son relevantes para las integraciones multimedia asíncronas.

Obtener el esquema de solicitud de un modelo

Los campos, las enumeraciones y los rangos numéricos compatibles pueden variar según el modelo. Antes de enviar una solicitud de imagen o video, usa el siguiente endpoint público para obtener los endpoints disponibles y los esquemas JSON de solicitud del modelo seleccionado.
El valor de modality en la respuesta es image o video. Cada elemento del array endpoints describe un protocolo de llamada disponible. Un modelo puede devolver endpoints /ai/v1 y endpoints /v1 compatibles con OpenAI. Es posible que los endpoints compatibles con OpenAI todavía no admitan los modelos más recientes, por lo que se recomienda usar primero los endpoints /ai/v1. Para las API de tareas asíncronas, selecciona el elemento cuyo path sea /ai/v1/images/generations o /ai/v1/videos y utiliza su request.schema. No dependas de la posición de un elemento en el array endpoints. Los siguientes comandos extraen directamente el esquema de solicitud de cada endpoint de tareas asíncronas.
El endpoint devuelve 404 model_not_found si el modelo no existe o no tiene endpoints detectables. Devuelve 500 endpoints_unavailable cuando los datos de los endpoints no están disponibles temporalmente.

Modelos y campos compatibles

Los protocolos de imagen y video definen campos estándar entre modelos, pero cada modelo restringe los campos, las enumeraciones y los rangos numéricos según sus capacidades. Antes de realizar una solicitud, obtén las restricciones actuales del modelo desde el endpoint de esquema del modelo. Por ejemplo:
  • wan2.6-t2v admite duration, size y seed. No acepta resolution, aspect_ratio, frame_images, input_references ni generate_audio.
  • qwen-image-2.0 admite n, size, seed, negative_prompt, image e images. No acepta aspect_ratio ni mask.
El conjunto de campos estándar no implica que todos los modelos admitan todos los campos. Si se envía un campo no compatible con el modelo actual, se devuelve un error de parámetros.

Modelos para la recuperación de LLM tras una interrupción

Actualmente se admiten los siguientes modelos:
  • gpt-5.6-sol
  • gpt-5.5-pro
  • gpt-5.4-pro
  • gpt-5.2-pro
  • claude-fable-5
  • claude-opus-5
El alcance de compatibilidad puede cambiar. Consulta la lista de esta página. Para usar la recuperación tras una interrupción, la cuenta actual también debe tener activadas las tareas asíncronas. Si alguna condición no se cumple, la solicitud LLM original sigue ejecutándose con normalidad, pero no se guarda una tarea de recuperación después de que el cliente se desconecte.

Cómo crear tareas de imagen

Imágenes síncronas

Cuando se omite async o se establece en false, el endpoint espera a que finalice la generación y devuelve un objeto de tarea:
Las tareas de imagen síncronas también guardan un registro de tarea. Si se interrumpe la conexión del cliente o se pierde la respuesta de creación, usa GET /ai/v1/images para encontrar la tarea correspondiente.

Imágenes asíncronas

Cuando async se establece en el valor booleano true, el endpoint devuelve inmediatamente un objeto de tarea y la generación continúa en segundo plano:
Usa GET /ai/v1/images/{id} para consultar una tarea de imagen asíncrona. Cuando termine, solicita directamente el content_url de cada elemento de output; esta URL ya contiene el result_id de la imagen correspondiente.
async en una solicitud de imagen debe ser un valor booleano. webhook_url y webhook_events_filter solo pueden usarse con async: true.

Campos estándar de imagen


Cómo crear tareas de video

Las solicitudes de video siempre son asíncronas y no admiten cambiar a una espera síncrona mediante Prefer: wait. El protocolo estándar usa el entero duration para indicar la cantidad de segundos:

Campos estándar de video

Estructura de un elemento de input_references:
type puede ser image_url, video_url o audio_url. Estructura de un elemento de frame_images:
frame_type puede ser first_frame o last_frame.

Objeto de tarea multimedia

Los endpoints específicos de imagen y video devuelven la siguiente estructura:
Elemento output multimedia:

Estados de tarea

Los clientes pueden consultar el estado cada 15 segundos hasta que cambie a completed, failed o cancelled. Los 15 segundos son una recomendación de sondeo para el cliente, no un límite del protocolo del servidor.

Cómo consultar tareas multimedia

Consultar detalles multimedia

Los endpoints de detalles multimedia pueden devolver un estado actualizado de la tarea. Por ello, el sondeo multimedia debe usar el endpoint de detalles de imagen o video correspondiente.

Consultar la lista de tareas multimedia

Si se pierde la respuesta de creación, puedes recuperar el ID de la tarea mediante la lista multimedia correspondiente:
Las listas multimedia devuelven instantáneas de las tareas en el momento de la consulta y no actualizan activamente su estado.

Cómo usar el endpoint de tareas unificadas

El endpoint de tareas unificadas admite los siguientes filtros:
Detalles de una tarea unificada:
Elemento output unificado de una tarea multimedia:
Para una tarea de un solo artefacto, solicita directamente /ai/v1/tasks/{id}/content. Para una tarea con varios artefactos, solicita /ai/v1/tasks/{id}/content/{result_id}. Si no se especifica el ID del resultado, se devuelve 400 result_id_required.
Los endpoints de lista, detalles y contenido de tareas unificadas están aislados por el Bearer Token usado para crear la tarea. Otras API Keys de la misma cuenta no pueden leerla.

Cómo descargar resultados multimedia

Descargar imágenes

Cuando termine la tarea de imagen, solicita cada output[].content_url del objeto de tarea multimedia:
La ruta de descarga multimedia de imágenes es /ai/v1/images/{id}/content/{result_id}. El objeto de tarea multimedia no expone result_id por separado, por lo que el cliente puede usar directamente content_url. Cuando b64_json no esté vacío, puede descodificarse directamente desde Base64.

Descargar videos

Los resultados pueden caducar y puede haber límites de descarga. Un resultado caducado devuelve 410 artifact_expired; superar el límite de descargas devuelve 429 too_many_downloads.

Cómo usar Webhooks

Las imágenes y los videos asíncronos admiten Webhooks a nivel de tarea:
webhook_url admite hasta 512 caracteres y no puede apuntar a localhost, redes privadas ni otras direcciones restringidas. Cuando se omite webhook_events_filter, la plataforma envía completed, failed y cancelled. Cuando se proporciona explícitamente, la matriz no puede estar vacía ni contener duplicados, y debe usarse junto con webhook_url. Cuando la solicitud no incluye webhook_url, las imágenes y los videos asíncronos intentan usar la URL de devolución de llamada predeterminada configurada en la cuenta. Una URL predeterminada no válida se ignora y no impide la creación de la tarea.

Solicitud de devolución de llamada

results solo aparece cuando los resultados se han archivado. Las descargas siguen requiriendo un Bearer Token.

Reintentos y deduplicación

La plataforma usa una entrega al menos una vez, por lo que el mismo evento puede entregarse más de una vez:
  • HTTP 2xx indica que se recibió correctamente.
  • HTTP 5xx, los errores de red o los tiempos de espera agotados activan un reintento.
  • HTTP 3xx y 4xx no se vuelven a intentar.
  • Se realizan hasta 6 intentos de entrega, con intervalos de 1, 4, 16, 64 y 256 segundos.
El receptor debe guardar event_id y devolver 2xx inmediatamente cuando vuelva a recibir el mismo evento.
Los Webhooks a nivel de tarea no incluyen una clave de firma independiente. Si se requiere verificar la firma, configura una suscripción de Webhook a nivel de cuenta y conserva la consulta de detalles de la tarea como método para confirmar los resultados.

Cómo funciona la recuperación de LLM tras una interrupción

La recuperación de LLM tras una interrupción permite obtener la respuesta final después de que el cliente se desconecte. El método de solicitud, el comportamiento de streaming y el formato de respuesta permanecen sin cambios. Tampoco se devuelve un ID de tarea por anticipado al iniciar la solicitud. Deben cumplirse todas las condiciones siguientes: La plataforma solo crea una tarea de recuperación y guarda el JSON o SSE final cuando detecta que la respuesta no se ha entregado por completo y que el cliente se ha desconectado. Las solicitudes LLM que terminan con normalidad y se entregan por completo al cliente no crean tareas de recuperación. Los encabezados de respuesta LLM contienen X-Aihubmix-Request-Id. El cliente debe guardar este valor lo antes posible para localizar la solicitud correspondiente en la consola. La API pública de tareas no permite actualmente filtrar por ID de solicitud; las tareas LLM recientes pueden consultarse por modelo y hora de creación:
El elemento output unificado de una tarea LLM contiene type=response, content_type, content_url y truncated. GET /ai/v1/tasks/{id}/content devuelve el JSON o SSE original guardado.
Las tareas de recuperación de LLM tras una interrupción no envían actualmente Webhooks a nivel de tarea. Una interrupción del cliente no detiene el procesamiento de la solicitud por parte de la plataforma y la llamada se sigue facturando según las reglas del endpoint original.

Respuestas y códigos de error

Esta sección se aplica a /ai/v1/images/*, /ai/v1/videos/* y a /ai/v1/tasks/* cuando la tarea se ha identificado como imagen o vídeo. Las tareas LLM mantienen su contrato de errores existente. Las consultas sin tipo de medio especificado y sin una Task recuperada siguen usando el contrato de errores general.
  • Fallo de la solicitud actual: un estado HTTP distinto de 2xx indica que ha fallado la creación, consulta o descarga actual. Consulta Fallos de solicitudes HTTP.
  • Fallo de ejecución de la tarea: la consulta devuelve HTTP 200, pero la tarea tiene status=failed y el motivo aparece en su campo error. Consulta Fallos de ejecución de tareas.
  • Fallo al leer el resultado de una entrada: la lista devuelve HTTP 200, pero una tarea incluye output_error. Consulta Fallos al leer resultados individuales.
La columna message muestra el texto en inglés devuelto por la API; la columna de explicación describe su significado y cómo actuar. Los errores de validación muestran mensajes generales; la respuesta real puede precisar los campos y las restricciones. Usa code para identificar el tipo de error, sin depender de una coincidencia exacta con el texto completo de message.

Notificar un error HTTP 5xx

Si la solicitud devuelve HTTP 5xx, envía un informe e incluye error.tid.

Fallos de solicitudes HTTP

Los estados HTTP de las tablas siguientes corresponden al fallo de la solicitud actual. Los fallos de ejecución de tareas ya creadas se describen en la tabla de fallos de ejecución de tareas.

Parámetros de la solicitud y medios de entrada

Límites de tamaño
  • Tamaño del medio: las tareas de imagen que superan el límite devuelven image_too_large; las demás tareas multimedia devuelven media_too_large. Las tareas de vídeo también usan media_too_large al cargar imágenes de referencia. Consulta el límite en el mensaje de error o en error.details.max_bytes.
  • Tamaño total de la solicitud: request_too_large indica que el cuerpo HTTP supera los 32 MiB, incluidos el texto, los parámetros y los medios codificados. Si solo envías una URL, el enlace cuenta como parte del cuerpo; el archivo de destino debe seguir cumpliendo los límites multimedia del modelo.
  • Tamaño real: error.details.actual_bytes solo se incluye cuando se conoce el tamaño completo. Puede omitirse si la lectura de una URL se detiene al alcanzar el límite de lectura.
Formatos compatibles Dependen del modelo seleccionado. Consulta primero error.details.allowed_mime_types o la lista de formatos del mensaje de error. Si no hay lista, consulta el Schema del modelo. Marcadores de posición de los mensajes
  • {media_kind}: tipo real de medio. Cuando se conoce, los mensajes de invalid_media_data y media_url_unreachable también usan image o video.
  • {max_bytes}: límite en bytes. Si no se conoce el límite de la imagen, el mensaje es The image is too large. Reduce the image size and try again.
  • {allowed_formats}: lista de formatos permitidos. Los errores de formato pueden añadir Use one of: {allowed_formats}.

Solicitudes de generación y resultados devueltos

Cuenta y permisos

Disponibilidad del servicio y límites de solicitudes

provider_unavailable indica un fallo confirmado del proveedor de modelos. Un estado genérico 429 o 4xx no permite identificar por sí solo problemas de cuota, moderación de contenido o parámetros.

Consulta de tareas y descarga de resultados

Fallos de ejecución de tareas

Cuando una tarea ya creada falla durante la generación, se indica mediante status=failed y el campo error de la tarea. Una consulta correcta sigue devolviendo HTTP 200.
Los errores de medios de entrada también pueden aparecer en una Task fallida y tienen el mismo significado que en la tabla anterior. Una consulta correcta sigue devolviendo HTTP 200. El message de los errores de tamaño termina en submit a new task., indicando que debes reducir el tamaño y enviar una nueva tarea. output_blocked indica un bloqueo confirmado sin imagen utilizable; esta generación no se cobra. Para output_policy_violation se aplican las reglas de cobro existentes para moderación. Consulta los registros de facturación para los cargos anteriores.

Fallos al leer resultados individuales

Algunas entradas de las listas de tareas de imagen y vídeo pueden incluir output_error:
Este campo indica que no se pudo leer el resultado de esa entrada en esta consulta. La lista sigue devolviendo HTTP 200 y esa entrada tiene output=[]. Se conservan su id, status, error y la paginación, y las demás tareas legibles no se ven afectadas. Comprueba output_error incluso con status=completed antes de considerar disponible el resultado. Contacta con soporte e indica output_error.tid. Si el campo no incluye tid, proporciona el ID de solicitud de las cabeceras de la respuesta actual. Este error no cambia el estado de la tarea ni los cargos y no activa un Webhook. Las entradas con errores de lectura en la lista unificada /ai/v1/tasks pueden devolver expires_at=null; los resultados siguen sujetos al periodo de conservación original. Las listas específicas de imágenes y vídeos conservan la fecha de caducidad obtenida. Este tratamiento solo se aplica cuando no se puede leer el resultado de una entrada y no hay una alternativa disponible. Un fallo de consulta de todo el lote en la API unificada de tareas sigue devolviendo un error HTTP; el mismo fallo al consultar detalles sigue devolviendo HTTP 500. Documentación relacionada: API de imágenes · API de vídeo · Tareas asíncronas

Ejemplo completo de video


Preguntas frecuentes

¿Las tareas multimedia deben consultarse mediante /ai/v1/tasks/{id} o mediante el endpoint de detalles multimedia? Usa el endpoint de detalles multimedia para sondear el estado de generación: /ai/v1/images/{id} para imágenes y /ai/v1/videos/{id} para videos. /ai/v1/tasks/{id} devuelve una instantánea de solo lectura. ¿Por qué seconds en una solicitud de video devuelve un error de parámetros? El protocolo estándar de /ai/v1/videos usa el entero duration, expresado en segundos. Los valores permitidos dependen de los parámetros compatibles con el modelo correspondiente. ¿Por qué resolution devuelve un error de parámetros con algunos modelos de video? El protocolo de video estándar incluye resolution y size, pero cada modelo restringe los campos. Por ejemplo, wan2.6-t2v usa size y no acepta resolution. ¿Cómo se recupera una tarea multimedia si se pierde la respuesta de creación? Solicita GET /ai/v1/images para imágenes o GET /ai/v1/videos para videos. Las listas admiten los parámetros de paginación after, limit y order. ¿Por qué los dos endpoints de detalles tienen campos output diferentes? Los endpoints de detalles multimedia proporcionan los campos simplificados necesarios para la descarga directa. Los endpoints de tareas unificadas también proporcionan result_id y content_type, además de truncated para respuestas LLM archivadas. ¿Qué debo hacer si no se recibe un Webhook? Confirma que la URL de devolución de llamada sea accesible públicamente y devuelva 2xx con rapidez. Después, consulta el estado final mediante el endpoint de detalles multimedia.
Última actualización: 2026-08-12