Documentação
Documentação da API
Crie sua primeira imagem em quatro passos. A API fica em https://api.cheapvids.com e toda chamada precisa da sua chave de API.
Início rápido
1. Obtenha uma chave de API
As chaves de API são liberadas após o seu primeiro pagamento em USDT. Crie uma na página de desenvolvedor da sua conta; ela é exibida uma única vez, então guarde-a em uma variável de ambiente. Mantenha-a no seu servidor.
2. Crie uma geração
Envie o modelo, o prompt e o grupo a ser cobrado. O parâmetro plan é obrigatório: "studio" ou "credits". O sistema nunca troca de grupo por você.
curl https://api.cheapvids.com/v1/generations \
-H "Authorization: Bearer $CHEAPVIDS_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"plan":"credits","model":"nano-banana-2","params":{"prompt":"A lighthouse at dusk"}}'3. Leia o resultado
Aguarde com ?wait=60 até a geração ser concluída e então baixe o arquivo em output.url. O CheapVids repassa os resultados por um período limitado após a conclusão (24 horas por padrão), então baixe imediatamente.
curl "https://api.cheapvids.com/v1/generations/$GENERATION_ID?wait=60" \
-H "Authorization: Bearer $CHEAPVIDS_API_KEY"
# status "completed": download output.url right away
curl -L "$OUTPUT_URL" -o result.pngimport os, uuid, requests
API = "https://api.cheapvids.com/v1"
s = requests.Session()
s.headers["Authorization"] = f"Bearer {os.environ['CHEAPVIDS_API_KEY']}"
body = {"plan": "credits", "model": "nano-banana-2", "params": {"prompt": "A lighthouse at dusk"}}
r = s.post(f"{API}/generations", json=body, headers={"Idempotency-Key": str(uuid.uuid4())}, timeout=120)
r.raise_for_status()
job = r.json()
while job["status"] not in ("completed", "failed", "cancelled"):
r = s.get(f"{API}/generations/{job['id']}", params={"wait": 60}, timeout=90)
r.raise_for_status()
job = r.json()
if job["status"] == "completed":
r = s.get(f"{API}/generations/{job['id']}/content", timeout=120)
r.raise_for_status()
open("result.png", "wb").write(r.content)import { writeFile } from "node:fs/promises";
const API = "https://api.cheapvids.com/v1";
const auth = { Authorization: "Bearer " + process.env.CHEAPVIDS_API_KEY };
async function call(path, init = {}) {
const res = await fetch(API + path, { ...init, headers: { ...auth, ...init.headers } });
if (!res.ok) throw new Error(res.status + " " + (await res.text()));
return res;
}
const body = { plan: "credits", model: "nano-banana-2", params: { prompt: "A lighthouse at dusk" } };
let job = await (await call("/generations", {
method: "POST",
headers: { "Content-Type": "application/json", "Idempotency-Key": crypto.randomUUID() },
body: JSON.stringify(body),
})).json();
while (!["completed", "failed", "cancelled"].includes(job.status)) {
job = await (await call("/generations/" + job.id + "?wait=60")).json();
}
if (job.status === "completed") {
const res = await call("/generations/" + job.id + "/content");
await writeFile("result.png", Buffer.from(await res.arrayBuffer()));
}4. Ou receba um webhook
Registre um endpoint HTTPS para receber os eventos generation.started, generation.completed e generation.failed, assinados com HMAC-SHA256. Cada evento é enviado no máximo 4 vezes: o primeiro envio e 3 novas tentativas após 10, 60 e 300 segundos.
X-CheapVids-Event: generation.completed
X-CheapVids-Delivery: 0190a1b2-0000-7000-8000-000000000001
X-CheapVids-Signature: t=1760000000,v1=64e08ed860b53ecdca19eb0ef68dccefd1c7f3135a0a0e273d34a878d48b8ed5
