/ai/v1/images para imagens, /ai/v1/videos para vídeos e /ai/v1/tasks para registros unificados de tarefas.
- A geração de imagens é síncrona por padrão e se torna assíncrona com
async: true. - A geração de vídeos é sempre assíncrona.
- As APIs de detalhes de imagens e vídeos fornecem o status mais recente das tarefas de mídia.
/ai/v1/tasksfornece uma visão unificada somente leitura das tarefas de imagem, vídeo e LLM.
Tutorial em vídeo: tarefas assíncronas
Explica o funcionamento geral das tarefas assíncronas e demonstra o fluxo
completo de chamadas usando a geração assíncrona de imagens como exemplo.
Ativar tarefas assíncronas no console
Antes de usar as APIs de tarefas de mídia
/ai/v1, ative as tarefas
assíncronas para a conta atual.Início rápido
O exemplo a seguir cria um vídeo comwan2.6-t2v. Esse modelo aceita duration e size. Os campos válidos podem variar conforme o modelo.
Como escolher entre os três grupos de APIs
A Base URL é
https://aihubmix.com. A autenticação usa Bearer Token:
/ai/v1/tasks não oferece uma API de criação. Imagens e vídeos devem ser
criados pelas APIs de geração de mídia correspondentes. As tarefas de
recuperação de LLM são salvas automaticamente pela plataforma após a
interrupção do cliente.Diferenças entre as APIs de mídia e de tarefas unificadas
As APIs de detalhes de mídia e de tarefas unificadas retornam os mesmos campos de nível superior, mas os itens deoutput e o comportamento de consulta são diferentes.
Para acompanhar o status de uma geração de mídia, use a API de detalhes de imagem ou vídeo. Para filtrar tarefas de forma unificada, ler metadados de resultados ou recuperar uma resposta LLM, use
/ai/v1/tasks.
Como descobrir modelos de mídia assíncronos e obter seus esquemas
O fluxo de descoberta tem duas etapas. Primeiro, obtenha no catálogo público os modelos de texto para imagem ou texto para vídeo compatíveis com as APIs assíncronas. Depois, use omodel_id do modelo para obter o esquema de solicitação de seus endpoints.
Listar modelos compatíveis com as APIs assíncronas
O catálogo de modelos usa a mesma fonte de dados do Playground. Usetype=image_generation para modelos de texto para imagem e type=video para modelos de texto para vídeo. Com schema_checked=true, a lista fica limitada a modelos cujo esquema de solicitação foi publicado e revisado.
type aceita atualmente um único valor, então solicite cada tipo de modelo separadamente.
A resposta tem o formato {success, message, data}. Os campos de data relevantes para integrações de mídia assíncrona são os seguintes.
Obter o esquema de solicitação de um modelo
Os campos, enumerações e intervalos numéricos aceitos podem variar conforme o modelo. Antes de enviar uma solicitação de imagem ou vídeo, use o endpoint público abaixo para obter os endpoints disponíveis e os esquemas JSON de solicitação do modelo selecionado.modality na resposta é image ou video. Cada item do array endpoints descreve um protocolo de chamada disponível.
Um modelo pode retornar endpoints
/ai/v1 e endpoints /v1 compatíveis com OpenAI. Os endpoints compatíveis com OpenAI podem ainda não oferecer suporte aos modelos mais recentes, portanto dê preferência aos endpoints /ai/v1. Para as APIs de tarefas assíncronas, selecione o item cujo path seja /ai/v1/images/generations ou /ai/v1/videos e use seu request.schema. Não dependa da posição do item no array endpoints.
Os comandos abaixo extraem diretamente o esquema de solicitação de cada endpoint de tarefa assíncrona.
404 model_not_found quando o modelo não existe ou não possui endpoints detectáveis. Ele retorna 500 endpoints_unavailable quando os dados dos endpoints estão temporariamente indisponíveis.
Modelos e campos compatíveis
Os protocolos de imagem e vídeo definem campos padrão entre modelos, mas cada modelo restringe campos, enumerações e intervalos numéricos conforme seus recursos. Antes da chamada, obtenha as restrições atuais no endpoint de esquema do modelo. Por exemplo:wan2.6-t2vaceitaduration,sizeeseed, mas não aceitaresolution,aspect_ratio,frame_images,input_referencesnemgenerate_audio.qwen-image-2.0aceitan,size,seed,negative_prompt,imageeimages, mas não aceitaaspect_rationemmask.
Modelos para recuperação de interrupção de LLM
Atualmente, os seguintes modelos são compatíveis:- gpt-5.6-sol
- gpt-5.5-pro
- gpt-5.4-pro
- gpt-5.2-pro
- claude-fable-5
- claude-opus-5
Como criar uma tarefa de imagem
Imagem síncrona
Quandoasync é omitido ou definido como false, a API aguarda a conclusão da geração e retorna o objeto de tarefa:
GET /ai/v1/images para localizar a tarefa.
Imagem assíncrona
Quandoasync é definido como o booleano true, a API retorna imediatamente o objeto de tarefa e a geração continua em segundo plano:
GET /ai/v1/images/{id}. Após a conclusão, solicite diretamente o content_url de cada item de output. Essa URL já contém o result_id da imagem correspondente.
O campo
async de uma requisição de imagem deve ser booleano. webhook_url e
webhook_events_filter só podem ser usados com async: true.Campos padrão de imagem
Como criar uma tarefa de vídeo
As requisições de vídeo são sempre assíncronas e não aceitamPrefer: wait para aguardar de forma síncrona. O protocolo padrão usa o inteiro duration em segundos:
Campos padrão de vídeo
Estrutura de um item de
input_references:
type pode ser image_url, video_url ou audio_url.
Estrutura de um item de frame_images:
frame_type pode ser first_frame ou last_frame.
Objeto de tarefa de mídia
As APIs específicas de imagem e vídeo retornam a seguinte estrutura:
Item de
output de mídia:
Descrição dos status
O cliente pode consultar a tarefa a cada 15 segundos até que o status seja
completed, failed ou cancelled. Esse intervalo de 15 segundos é uma recomendação de polling do cliente, não uma limitação do protocolo do servidor.
Como consultar tarefas de mídia
Consultar detalhes da mídia
Consultar a lista de mídia
Se a resposta de criação for perdida, localize o ID da tarefa na lista da mídia correspondente:Como usar a API de tarefas unificadas
A API de tarefas unificadas aceita os seguintes filtros:
Detalhes da tarefa unificada:
output unificado de uma tarefa de mídia:
/ai/v1/tasks/{id}/content. Para tarefas com vários resultados, solicite /ai/v1/tasks/{id}/content/{result_id}. Sem o ID do resultado, a API retorna 400 result_id_required.
As APIs de lista, detalhes e conteúdo das tarefas unificadas são isoladas pelo
Bearer Token usado para criar a tarefa. Outra API Key da mesma conta não pode
ler essa tarefa.
Como baixar resultados de mídia
Baixar imagens
Quando a imagem estiver concluída, solicite cadaoutput[].content_url do objeto de tarefa de mídia:
/ai/v1/images/{id}/content/{result_id}. O objeto de tarefa de mídia não expõe result_id separadamente. O cliente pode usar content_url diretamente.
Quando b64_json não estiver vazio, decodifique esse campo diretamente em Base64.
Baixar vídeo
Como usar Webhook
Imagens assíncronas e vídeos aceitam Webhooks no nível da tarefa:webhook_url aceita no máximo 512 caracteres e não pode apontar para a máquina local, uma rede privada ou outro endereço restrito. Quando webhook_events_filter é omitido, a plataforma envia completed, failed e cancelled. Quando informado explicitamente, o array não pode estar vazio nem conter duplicatas e deve ser usado com webhook_url.
Quando webhook_url não é enviado na requisição, imagens assíncronas e vídeos tentam usar o endereço de callback padrão configurado na conta. Um endereço padrão inválido é ignorado e não impede a criação da tarefa.
Requisição de callback
results só aparece quando o resultado foi arquivado. O download ainda exige um Bearer Token.
Novas tentativas e desduplicação
A plataforma usa entrega pelo menos uma vez. O mesmo evento pode ser enviado mais de uma vez:- HTTP
2xxindica recebimento bem-sucedido. - HTTP
5xx, erros de rede ou timeout acionam uma nova tentativa. - HTTP
3xxe4xxnão acionam novas tentativas. - São feitas no máximo 6 entregas, com intervalos de 1, 4, 16, 64 e 256 segundos.
event_id e retornar imediatamente 2xx ao receber novamente o mesmo evento.
Como funciona a recuperação de interrupção de LLM
A recuperação de interrupção de LLM permite obter a resposta final após a desconexão do cliente. O formato da requisição, o comportamento de streaming e o formato da resposta não mudam. Nenhum ID de tarefa é retornado antecipadamente no início da requisição. As condições abaixo devem ser atendidas ao mesmo tempo:
A plataforma só cria uma tarefa de recuperação e salva o JSON ou SSE final quando detecta que a resposta não foi entregue por completo e o cliente se desconectou. Uma requisição LLM concluída normalmente e entregue integralmente ao cliente não cria uma tarefa de recuperação.
Os cabeçalhos de resposta de LLM incluem
X-Aihubmix-Request-Id. O cliente deve salvar esse valor o quanto antes para localizar a requisição correspondente no console. Atualmente, a API pública de tarefas não permite filtrar pelo ID da requisição. É possível consultar as tarefas LLM recentes por modelo e data de criação:
output unificado de uma tarefa LLM contém type=response, content_type, content_url e truncated. GET /ai/v1/tasks/{id}/content retorna o JSON ou SSE original salvo.
Respostas e códigos de erro
Esta seção se aplica a/ai/v1/images/*, /ai/v1/videos/* e às tarefas de mídia com
object=image ou object=video em /ai/v1/tasks/*. O cliente deve tratar tanto respostas
HTTP não 2xx quanto o estado terminal HTTP 200 com status=failed.
Enviar feedback sobre erros HTTP 5xx
Se a requisição retornar HTTP
5xx, envie feedback e inclua error.tid.Erros HTTP não 2xx
As linhasinvalid_request e schema_violation mostram mensagens de fallback. Quando o serviço
consegue identificar um campo ou uma restrição, ele retorna um message dinâmico; o cliente deve
usar code para classificar o erro e não comparar message com um texto fixo.
O
message de media_form_unsupported é gerado a partir de uma causa confirmada:
Por exemplo, se um modelo aceita PNG, JPEG, WebP, HEIC e HEIF, uma imagem GIF retorna:
HTTP 200 + Task com status=failed
Uma consulta bem-sucedida não significa que a geração foi concluída com sucesso. Quando a tarefa
possui status=failed, o cliente obtém a causa em error.code e error.message:
Exemplo completo de vídeo
Perguntas frequentes
As tarefas de mídia devem ser consultadas em/ai/v1/tasks/{id} ou na API de detalhes de mídia?
Use a API de detalhes de mídia para acompanhar o status da geração: /ai/v1/images/{id} para imagens e /ai/v1/videos/{id} para vídeos. /ai/v1/tasks/{id} retorna um instantâneo somente leitura.
Por que o campo seconds em uma requisição de vídeo causa erro de parâmetro?
O protocolo padrão /ai/v1/videos usa o inteiro duration em segundos. Os valores permitidos dependem dos parâmetros aceitos pelo modelo correspondente.
Por que resolution causa erro de parâmetro em alguns modelos de vídeo?
O protocolo padrão de vídeo contém resolution e size, mas cada modelo pode restringir os campos. Por exemplo, wan2.6-t2v usa size e não aceita resolution.
Como localizar uma tarefa de mídia depois de perder a resposta de criação?
Solicite GET /ai/v1/images para imagens ou GET /ai/v1/videos para vídeos. As listas aceitam os parâmetros de paginação after, limit e order.
Por que os campos de output são diferentes entre as duas APIs de detalhes?
A API de detalhes de mídia fornece os campos simplificados necessários para download direto. A API de tarefas unificadas também fornece result_id e content_type, além de truncated para respostas LLM arquivadas.
O que fazer se o Webhook não for recebido?
Verifique se o endereço de callback pode ser acessado publicamente e retorna 2xx rapidamente. Em seguida, consulte o status final pela API de detalhes de mídia.
Última atualização: 2026-08-12