/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
Ativar tarefas assíncronas no console
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 a /ai/v1/tasks/* quando a tarefa foi identificada como imagem ou vídeo. Tarefas LLM mantêm o contrato de erros existente. Consultas sem tipo de mídia especificado e sem uma Task obtida continuam usando o contrato de erros geral.
- Falha na solicitação atual: um status HTTP diferente de 2xx indica falha na criação, consulta ou download atual. Consulte Falhas de solicitações HTTP.
- Falha na execução da tarefa: a consulta retorna HTTP 200, mas a tarefa tem
status=failede o motivo consta no campoerror. Consulte Falhas na execução de tarefas. - Falha na leitura do resultado de um item: a lista retorna HTTP 200, mas uma tarefa contém
output_error. Consulte Falhas na leitura de resultados individuais.
message apresenta o texto em inglês retornado pela API, e a coluna de explicação descreve seu significado e como proceder. Os erros de validação mostram mensagens gerais; a resposta real pode especificar campos e restrições. Identifique o tipo de erro por code, sem depender de uma correspondência exata com o texto completo de message.
Relatar um erro HTTP 5xx
Falhas de solicitações HTTP
Os status HTTP abaixo se aplicam à falha da solicitação atual. Consulte a tabela de falhas na execução de tarefas para erros de tarefas já criadas.Parâmetros da solicitação e mídia de entrada
- Tamanho da mídia: tarefas de imagem acima do limite retornam
image_too_large; outras tarefas de mídia retornammedia_too_large. Tarefas de vídeo também usammedia_too_largeao enviar imagens de referência. Consulte o limite na mensagem ou emerror.details.max_bytes. - Tamanho total da solicitação:
request_too_largeindica que o corpo HTTP excede 32 MiB, incluindo texto, parâmetros e mídia codificada incorporada. Ao enviar apenas uma URL, o link conta no corpo; o arquivo de destino ainda precisa respeitar os limites de mídia do modelo. - Tamanho real:
error.details.actual_bytessó é fornecido quando o tamanho completo é conhecido. O campo pode ser omitido se a leitura por URL for interrompida ao atingir o limite de leitura.
error.details.allowed_mime_types ou a lista de formatos da mensagem. Se não houver lista, consulte o Schema do modelo.
Marcadores nas mensagens
{media_kind}: tipo real de mídia. Quando confirmado, as mensagens deinvalid_media_dataemedia_url_unreachabletambém usamimageouvideo.{max_bytes}: limite em bytes. Se o limite da imagem for desconhecido, a mensagem seráThe image is too large. Reduce the image size and try again.{allowed_formats}: lista de formatos permitidos. Erros de formato podem acrescentarUse one of: {allowed_formats}.
Solicitações de geração e resultados retornados
Conta e permissões
Disponibilidade do serviço e limites de requisições
provider_unavailable indica uma falha confirmada do provedor de modelos. Um status genérico 429 ou 4xx, isoladamente, não confirma problemas de cota, moderação de conteúdo ou parâmetros.
Consulta de tarefas e download de resultados
Falhas na execução de tarefas
Após a criação de uma tarefa, falhas de geração são indicadas porstatus=failed e pelo campo error da tarefa. Uma consulta bem-sucedida continua retornando HTTP 200.
message dos erros de tamanho termina com submit a new task., orientando a reduzir a mídia e enviar uma nova tarefa.
output_blocked indica um bloqueio confirmado sem imagem utilizável; esta geração não é cobrada. Para output_policy_violation, aplicam-se as regras de cobrança existentes para moderação. Consulte os registros de faturamento para cobranças anteriores.
Falhas na leitura de resultados individuais
Alguns itens das listas de tarefas de imagem e vídeo podem incluiroutput_error:
output=[]. Seus campos id, status, error e a paginação são preservados; outras tarefas legíveis não são afetadas. Mesmo com status=completed, verifique output_error antes de considerar o resultado acessível.
Contate o suporte com output_error.tid. Se o campo não incluir tid, forneça o ID da solicitação nos cabeçalhos da resposta atual. Esse erro não altera o estado da tarefa nem as cobranças e não aciona um Webhook.
Itens com falha de leitura na lista unificada /ai/v1/tasks podem retornar expires_at=null; os resultados continuam sujeitos ao período de retenção original. As listas específicas de imagens e vídeos preservam o horário de expiração obtido.
Esse tratamento se aplica somente quando não é possível ler o resultado de um item e não há alternativa disponível. Falhas na consulta do lote inteiro pela API unificada de tarefas continuam retornando um erro HTTP; a mesma falha na consulta de detalhes continua retornando HTTP 500.
Documentação relacionada: API de imagens · API de vídeo · Tarefas assíncronas
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