Dokumentasi
Dokumentasi API
Buat gambar pertama Anda dalam empat langkah. API berada di https://api.cheapvids.com dan setiap panggilan memerlukan kunci API Anda.
Mulai cepat
1. Dapatkan kunci API
Kunci API dibuka setelah pembayaran USDT pertama Anda. Buat satu di halaman pengembang akun Anda; kunci hanya ditampilkan sekali, jadi simpan di variabel lingkungan. Simpan di server Anda.
2. Buat tugas
Kirim model, prompt, dan grup yang akan ditagih. Parameter plan wajib diisi: "studio" atau "credits". Sistem tidak pernah mengganti grup untuk Anda.
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. Baca hasilnya
Tunggu dengan ?wait=60 sampai tugas selesai, lalu unduh file dari output.url. CheapVids meneruskan hasil selama jangka waktu terbatas setelah selesai (24 jam secara default), jadi segera unduh.
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. Atau terima webhook
Daftarkan endpoint HTTPS untuk menerima peristiwa generation.started, generation.completed, dan generation.failed, yang ditandatangani dengan HMAC-SHA256. Setiap peristiwa dikirim paling banyak 4 kali: pengiriman pertama dan 3 percobaan ulang setelah 10, 60, dan 300 detik.
X-CheapVids-Event: generation.completed
X-CheapVids-Delivery: 0190a1b2-0000-7000-8000-000000000001
X-CheapVids-Signature: t=1760000000,v1=64e08ed860b53ecdca19eb0ef68dccefd1c7f3135a0a0e273d34a878d48b8ed5
