Imagine
Descreva a cena em português, do seu jeito. Se quiser, mande uma foto ou um vídeo de referência.
Descreva em português o que você imagina e receba o vídeo ou a imagem pronta. Pelo chat, pela API REST ou pelos seus agentes via MCP.
Vídeos e imagens criados aqui na plataforma, a partir de uma frase. Escolha um, recrie com o seu toque ou comece do zero.
Vídeos de até 60 segundos, imagens, referências por foto ou vídeo e conversas que lembram o que você já pediu.
Descreva a cena em português, do seu jeito. Se quiser, mande uma foto ou um vídeo de referência.
Vídeo 16:9 de 10 s · pronto em 40–90 s
Escolha vídeo ou imagem, a proporção e a duração, e acompanhe a geração ali mesmo.
Baixe o MP4, copie o link ou use o resultado como referência para a próxima cena. Tudo fica salvo na conversa.
Uma API REST enxuta, um chat por workspace e um servidor MCP. Sem navegador virtual aberto e sem cluster de GPU para manter.
Envie o prompt, a proporção e, se quiser, imagens de referência.
POST/v1/videos
Consulte pelo id: queued → generating → done.
GET/v1/videos/{id}
Quando terminar, o campo url toca ou baixa o vídeo, em 16:9, 9:16 e outras proporções.
Só cobra quando o vídeo sai. Se o pedido terminar em failed, o valor volta inteiro.
__BASE__
AUTHBearer <API_KEY>
# 1. Criar o pedido de vídeo curl -X POST "__BASE__/v1/videos" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{"prompt":"a sea turtle swimming over a coral reef","aspect_ratio":"9:16"}' # 2. Consultar o resultado pelo id (a cada 5 segundos) curl "__BASE__/v1/videos/<id>" \ -H "Authorization: Bearer $API_KEY"
const BASE = '__BASE__'; const headers = { Authorization: `Bearer ${API_KEY}`, 'Content-Type': 'application/json' }; const { id } = await (await fetch(`${BASE}/v1/videos`, { method: 'POST', headers, body: JSON.stringify({ prompt: 'a sea turtle swimming over a coral reef', aspect_ratio: '9:16' }), })).json(); let job; do { await new Promise(r => setTimeout(r, 5000)); job = await (await fetch(`${BASE}/v1/videos/${id}`, { headers })).json(); } while (job.status === 'queued' || job.status === 'generating'); console.log(job.status === 'done' ? job.url : job.error);
import time, requests BASE = "__BASE__" H = {"Authorization": f"Bearer {API_KEY}"} job_id = requests.post(f"{BASE}/v1/videos", headers=H, json={ "prompt": "a sea turtle swimming over a coral reef", "aspect_ratio": "9:16", }).json()["id"] while True: time.sleep(5) job = requests.get(f"{BASE}/v1/videos/{job_id}", headers=H).json() if job["status"] in ("done", "failed"): break print(job["url"] if job["status"] == "done" else job["error"])
// GET /v1/videos/{id} → 200 OK { "id": "5f3e9c2f-4ac4-455f-ab73-03c07e8f8079", "status": "done", "prompt": "a sea turtle swimming over a coral reef", "aspect_ratio": "9:16", "duration_seconds": null, "url": "__BASE__/v1/videos/5f3e9c2f-4ac4-455f-ab73-03c07e8f8079/preview", "source": "local", "download_url": "__BASE__/v1/videos/5f3e9c2f-4ac4-455f-ab73-03c07e8f8079/download", "preview_url": "__BASE__/v1/videos/5f3e9c2f-4ac4-455f-ab73-03c07e8f8079/preview", "media_type": "video", "expires_at": "2026-10-21T14:54:12.301Z", "error": null, "created_at": "2026-10-20T14:52:54.877Z", "finished_at": "2026-10-20T14:54:12.301Z" }
Para quem cria todo dia: vídeos e imagens sem limite durante o mês, com prioridade na fila.
Pagamento por Pix ou com uma key de plano.
Um saldo único de créditos para vídeos e imagens: cada vídeo de 10 s usa 100 créditos e cada imagem usa 20. Geração sem limite no Max.
Para começar a criar
≈ R$ 1 por vídeo de 10 s
Começar agora→Para quem publica toda semana
≈ R$ 1 por vídeo de 10 s · o dobro do Starter
Escolher Pro→Para quem cria todo dia
Preço fixo: crie quanto quiser
Quero o MAX→Pagamento por Pix ou com uma key de plano. Se um pedido falhar, os créditos voltam inteiros.
Instale em segundos, direto do navegador: ícone na tela inicial, abre em tela cheia e está sempre na versão mais nova. Sem loja e sem ocupar espaço.