Langsung ke konten utama

Dokumentasi

Dokumentasi API

Buat gambar pertama Anda dalam empat langkah. API berada di https://api.cheapvids.com dan setiap panggilan memerlukan kunci API Anda.

Panduan terperinci dan referensi API hanya tersedia dalam bahasa Inggris.

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.png
import 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

Alat