Gerações e estados
Base REST: https://infinityflow.stream/api/v1. Os corpos de criação são JSON. POST /generations exige Idempotency-Key em formato UUID e escopo generations:write.
{ "prompt": "Uma cidade futurista vista ao amanhecer", "title": "Abertura da campanha", "mediaKind": "video", "model": "studio-video", "aspect": "16:9", "durationSeconds": 10, "outputCount": 1, "referenceIds": []}| Campo | Regra |
|---|---|
prompt |
Obrigatório; de 1 a 4.000 caracteres após remover espaços externos |
title |
Opcional; até 100 caracteres |
mediaKind |
video ou image; informe explicitamente para maior clareza |
model |
studio-video para vídeo; studio-image para imagem |
aspect |
Obrigatório: 16:9 ou 9:16 |
durationSeconds |
Vídeo padrão de 10 segundos; valores diferentes não são aceitos |
outputCount |
Um output por job; use lote para várias gerações |
projectId |
UUID de projeto pertencente à conta; omitido usa o projeto padrão |
referenceIds |
Até 3 UUIDs de imagens privadas válidas, sem repetição |
Não envie resolução, duração maior, IDs de fornecedor ou parâmetros de modelo não publicados. Consulte GET /models para capacidades realmente disponíveis.
Estados públicos
Seção intitulada “Estados públicos”| Estado | O que fazer |
|---|---|
queued |
Pedido salvo, aguardando capacidade elegível |
processing |
Preparação, submissão, execução ou recuperação em andamento |
succeeded |
Arquivo disponível dentro da retenção, conforme saída/expiração |
failed |
Pedido terminou sem resultado disponível; examine o estado salvo antes de nova criação |
cancelled |
Cancelado antes da submissão |
attention_required |
Resultado da submissão incerto ou intervenção necessária; não repetir cegamente |
GET /generations/{id} retorna { "generation": ... }, com createdAt, updatedAt, readyAt, expiresAt e outputs. Cada saída informa disponibilidade e URLs autorizadas. Nunca infira conclusão só pelo tempo decorrido.
Histórico
Seção intitulada “Histórico”GET /generations?projectId=UUID&cursor=CURSOR retorna até 24 itens visíveis e nextCursor. Use o cursor retornado exatamente como recebido, codificado com URLSearchParams; ele contém timestamp e ID para não perder itens de um lote criado no mesmo instante.
Cancelamento
Seção intitulada “Cancelamento”POST /generations/{id}/cancel só cancela pedidos sem submissão iniciada e sem lease ativa impeditiva. Se o servidor responder 409, consulte o pedido original. Cancelar não é interromper uma geração já enviada e não é permissão para reexecutar um resultado incerto.