Skip to main content
A AIHubMix oferece três grupos de APIs de tarefas: /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/tasks fornece uma visão unificada somente leitura das tarefas de imagem, vídeo e LLM.
Para referenciar materiais de pessoas reais em vídeos Doubao Seedance, siga o guia de uso de materiais de pessoas reais no Doubao para concluir a confirmação pessoal e preparar os materiais antes de criar a tarefa de vídeo.

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.
Se as tarefas assíncronas não estiverem ativadas, as requisições de criação de imagens e vídeos retornarão 403 async_not_enabled.

Início rápido

O exemplo a seguir cria um vídeo com wan2.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:
Os endpoints de lista de modelos e de esquema de modelos são públicos e não exigem Bearer Token. Os demais endpoints exigem autenticação.
/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 de output 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 o model_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. Use type=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.
As duas solicitações usam o mesmo endpoint. O filtro 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.
O valor de 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.
O endpoint retorna 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-t2v aceita duration, size e seed, mas não aceita resolution, aspect_ratio, frame_images, input_references nem generate_audio.
  • qwen-image-2.0 aceita n, size, seed, negative_prompt, image e images, mas não aceita aspect_ratio nem mask.
O conjunto de campos padrão não significa que todos os modelos aceitam todos os campos. Enviar um campo não aceito pelo modelo atual retorna um erro de parâmetro.

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
O escopo pode mudar. Consulte a lista desta página. A recuperação também exige que as tarefas assíncronas estejam ativadas para a conta atual. Se qualquer uma dessas condições não for atendida, a requisição LLM original continuará funcionando normalmente, mas nenhuma tarefa de recuperação será salva após a desconexão do cliente.

Como criar uma tarefa de imagem

Imagem síncrona

Quando async é omitido ou definido como false, a API aguarda a conclusão da geração e retorna o objeto de tarefa:
As tarefas síncronas de imagem também são registradas. Se a conexão do cliente for interrompida ou a resposta de criação for perdida, use GET /ai/v1/images para localizar a tarefa.

Imagem assíncrona

Quando async é definido como o booleano true, a API retorna imediatamente o objeto de tarefa e a geração continua em segundo plano:
Consulte a tarefa assíncrona de imagem com 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 aceitam Prefer: 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

As APIs de detalhes de mídia podem retornar um status atualizado. Por isso, use a API de detalhes da imagem ou do vídeo correspondente para fazer polling.

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:
A lista de mídia retorna um instantâneo da tarefa no momento da consulta e não atualiza ativamente o status.

Como usar a API de tarefas unificadas

A API de tarefas unificadas aceita os seguintes filtros:
Detalhes da tarefa unificada:
Item de output unificado de uma tarefa de mídia:
Para um único resultado, solicite diretamente /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 cada output[].content_url do objeto de tarefa de mídia:
O caminho de download de mídia da imagem é /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

Os resultados podem expirar e podem ter limite de downloads. Um resultado expirado retorna 410 artifact_expired. Exceder o limite de downloads retorna 429 too_many_downloads.

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 2xx indica recebimento bem-sucedido.
  • HTTP 5xx, erros de rede ou timeout acionam uma nova tentativa.
  • HTTP 3xx e 4xx não acionam novas tentativas.
  • São feitas no máximo 6 entregas, com intervalos de 1, 4, 16, 64 e 256 segundos.
O destinatário deve salvar event_id e retornar imediatamente 2xx ao receber novamente o mesmo evento.
O Webhook no nível da tarefa não possui uma chave de assinatura independente. Se precisar verificar a assinatura, configure uma assinatura de Webhook no nível da conta e mantenha a consulta dos detalhes da tarefa como forma de confirmar o resultado.

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:
O item de 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.
Atualmente, as tarefas de recuperação de interrupção de LLM não enviam Webhooks no nível da tarefa. A interrupção do cliente não interrompe o processamento da requisição pela plataforma. A chamada continua sendo cobrada conforme as regras da API original.

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 linhas invalid_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