POST /videos/generations
Live
Abrir no ChatGPT
(opens in new tab)Última verificação: 2026-09-08Endpoint
POST /videos/generationsCrie uma tarefa de vídeo assíncrona. A Base URL é
https://api.modelrush.ai/v1.Requisição
Campos: model e os campos obrigatórios de operations.input_schema. Wan 3 exige duration, resolution, ratio e audio; mode seleciona text-to-video (prompt), image-to-video (first_frame e last_frame opcional) ou reference-to-video (reference_images/reference_videos/reference_audios). Wan 3 aceita prompt_extend (booleano, padrão true). Outros modelos usam seus próprios campos image, video, media ou LoRA; os contratos não são intercambiáveis. Envie
Authorization: Bearer $MODELRUSH_API_KEY nas rotas autenticadas e Content-Type: application/json nos corpos JSON.Resposta
Campos: HTTP 202 com id, status=queued, model, modelrush_region e poll_url. Siga poll_url; o endpoint de estado de vídeo termina com completed ou failed e retorna video_url ao concluir. Guarde os identificadores de requisição ou de geração devolvidos. As saídas geradas e suas referências de arquivo no provedor são removidas do banco de dados do ModelRush 24 horas após a conclusão da requisição; baixe o que você precisar manter.
Erros
Entradas inválidas devolvem uma resposta 4xx com um erro estruturado. Um
403 com adult_attestation_required, portrait_rights_attestation_required ou person_rights_confirmation_required precisa ser resolvido pela pessoa titular da conta e nunca deve ser repetido automaticamente. Repita os 429 conforme o Retry-After; repita as falhas 5xx apenas com uma política de backoff limitada.Referências das APIs dos modelos Spicy
Abra a página do modelo para consultar parâmetros e preços atuais. As quatro páginas Wan 3 incluem uma seção de API abaixo do Playground. GET /v1/models fornece esquemas e acesso permitido à chave; GET /api/model-pricing retorna preços públicos sem autenticação; com uma chave API Bearer válida, retorna os preços aplicáveis à conta.
| Modelo e referência da API | ID do modelo | Endpoint |
|---|---|---|
| Wan 3 Spicy | modelrush/wan3-spicy | POST /v1/videos/generations |
| Wan 3 Pro Spicy | modelrush/wan3-pro-spicy | POST /v1/videos/generations |
| Wan 3 Prime Spicy | modelrush/wan3-prime-spicy | POST /v1/videos/generations |
| Wan 3 Prime Pro Spicy | modelrush/wan3-prime-pro-spicy | POST /v1/videos/generations |
| Wan 2.7 I2V Spicy | modelrush/wan2.7-i2v-spicy | POST /v1/videos/generations |
| Wan 2.2 I2V Spicy | modelrush/wan2.2-i2v-spicy | POST /v1/videos/generations |
| Wan Animate Spicy | modelrush/wan-animate | POST /v1/videos/generations |
| FlashVSR Spicy | modelrush/flashvsr | POST /v1/videos/generations |
GET /v1/videos/generations/:id termina com completed ou failed e retorna video_url em caso de sucesso. GET /v1/predictions/:id usa succeeded e outputs. Siga o contrato do poll_url usado. Os vídeos de referência e de saída do Wan 3 não podem exceder 30 segundos no total. Os quatro níveis Wan 3 Spicy aceitam prompt_extend (booleano, padrão true). LoRA aceita três listas opcionais de pesos, 480P/720P e 5/8 segundos. Wan Animate e FlashVSR usam o endpoint de vídeo com mídia de origem. No FlashVSR, duration deve ser igual à duração do vídeo de entrada arredondada para o segundo inteiro mais próximo (mínimo 1); caso contrário, a solicitação falha com video_duration_mismatch (ou video_duration_unverified se o vídeo não puder ser lido) antes de qualquer cobrança.
Todos os modelos Spicy exigem confirmação de acesso para adultos na conta e uma chave com permissão para o modelo e a capacidade. Guarde as chaves no servidor e reutilize Idempotency-Key onde houver suporte. Wan Animate também exige a estimativa assinada e x-request-id da documentação de vídeo.
Wan Animate: confirme uma estimativa assinada antes do envio
Em novas solicitações de modelrush/wan-animate, remova duration. O servidor mede o vídeo de referência: mais de 0 e no máximo 30 segundos. A saída segue essa duração; 5/8 segundos não controla seu tamanho. A estimativa lê o vídeo e o preço atual sem iniciar geração nem reservar saldo. Confirme billing.maximum_charge_cents (centavos inteiros, arredondados para cima por tarefa). A cobrança final não pode superar esse máximo; a reserva não utilizada é liberada. A estimativa vale por 10 minutos. Os requisitos de conta, acesso à mídia e credenciais continuam válidos.
API pública: POST https://api.modelrush.ai/v1/videos/generations/quote e depois POST https://api.modelrush.ai/v1/videos/generations. Use Authorization: Bearer com uma chave de servidor autorizada para o modelo. Ambiente Agent: POST https://modelrush.ai/api/agent/v1/videos/generations/quote e depois POST https://modelrush.ai/api/agent/v1/videos/generations. Use a credencial Agent com media:write e um Agent run ativo, não uma chave da API pública. A estimativa não cobra uma geração, mas não elimina a assinatura Agent nem outros requisitos do serviço.
- Crie um UUID e salve o identificador e o corpo JSON exato antes do envio. Inclua model, image, video, mode (animate ou replace), resolution (480P ou 720P) e os campos opcionais prompt/seed/region. Omita duration.
- Envie esse corpo à rota de estimativa com Content-Type: application/json e x-request-id: UUID. HTTP 200 retorna quote_token, request_id, expires_at e billing. Confira request_id e mostre o máximo para aprovação.
- Envie o mesmo corpo e x-request-id à rota de geração correspondente. Adicione x-modelrush-video-edit-quote: quote_token. Mantenha conta, Agent run quando aplicável, região, bytes da mídia e configurações. Idempotency-Key não substitui UUID nem assinatura; alterá-lo não autoriza outra tarefa com a mesma estimativa.
- Salve id e poll_url e consulte a rota retornada com sua credencial. O estado de vídeo usa completed/failed; prediction unificado usa succeeded/failed. Não envie outra tarefa para consultar o andamento.
UUID ou assinatura ausente/inválida: HTTP 400 video_edit_quote_required. Estimativa vencida, mídia/configuração ou preço alterado: HTTP 409 video_edit_quote_changed. Não aceite outro máximo automaticamente. Após rejeição definitiva da estimativa, obtenha outra com o mesmo UUID e corpo e confirme novamente. Se nunca tentou enviar e ela venceu, atualize antes de enviar. Em timeout, resposta perdida ou 5xx incerto, mantenha UUID, corpo e assinatura e repita exatamente a geração uma vez para recuperar o resultado. Uma solicitação aceita correspondente é recuperada antes da validação de validade/mídia; não substitua a assinatura vencida durante recuperação incerta. Persistindo a dúvida, pare e investigue pelo ID; não troque UUID para contornar. HTTP 409 idempotency_conflict indica conteúdo diferente sob esse ID: pare. Proteja a estimativa e não registre credenciais.
Solicitações já aceitas antes da mudança podem ser recuperadas com Idempotency-Key e corpo originais, incluindo o antigo duration. A tarefa existente é retornada sem nova reserva nem cobrança. Isso vale apenas para tarefas aceitas correspondentes, não novos pedidos sem assinatura, corpos alterados ou outro UUID. Sem uma tarefa aceita conhecida, migre para a estimativa assinada.
Baixe o exemplo Node.js executável. Configure MODELRUSH_API_KEY para public ou MODELRUSH_AGENT_TOKEN para agent no servidor. O estado contém a assinatura privada; não o inclua no Git. quote nunca envia uma geração. Substitua MAX_CENTS pelo inteiro mostrado somente após aprovação. submit/recover podem reservar saldo e iniciar tarefa paga; fazem uma solicitação, sem repetição automática. refresh mantém UUID/corpo e exige nova revisão; use antes do primeiro envio ou após video_edit_quote_changed definitivo.
shcurl --fail --output wan-animate-quoted-request.mjs https://modelrush.ai/examples/wan-animate-quoted-request.mjscat > wan-animate-body.json <<'JSON'{"model":"modelrush/wan-animate","image":"https://YOUR_HOST/character.png","video":"https://YOUR_HOST/reference.mp4","mode":"animate","resolution":"480P"}JSONnode wan-animate-quoted-request.mjs quote wan-animate-state.json wan-animate-body.json publicnode wan-animate-quoted-request.mjs submit wan-animate-state.json MAX_CENTS# recover: same saved UUID, body and token; no new task IDnode wan-animate-quoted-request.mjs recover wan-animate-state.json MAX_CENTS# refresh: review the returned maximum again before submitnode wan-animate-quoted-request.mjs refresh wan-animate-state.json# Agent: use a separate state file and MODELRUSH_AGENT_TOKENnode wan-animate-quoted-request.mjs quote wan-animate-agent-state.json wan-animate-body.json agent
AnteriorPOST /images/edits
PróximaGET /videos/generations/:id