Início rápido
O endpoint nativo de imagens é síncrono por padrão. Defina o booleanoasync como true para criar uma tarefa em segundo plano. O exemplo usa qwen-image-2.0.
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.
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
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.
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.
Respostas e códigos de erro
Esta seção se aplica a/ai/v1/images/* e às tarefas de imagem. Para erros de vídeo, consulte a API de vídeo.
- 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
Se a solicitação retornar HTTP
5xx, envie um relato e inclua error.tid.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. 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.
As listas de imagens e vídeos preservam o expires_at obtido. 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.
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