Dokumentasi API
Automasikan penjanaan video melalui REST API. API key = key dompet akaun anda (lihat Panel → API key). Key bermula dengan sk-jana- dan berkongsi baki kredit akaun anda.
Pengesahan
Hantar header berikut pada setiap permintaan:
Authorization: Bearer sk-jana-xxxxxxxx
Base URL: https://jana.papakacak.com/api/v1
GET /api/v1/me
Maklumat key dan baki kuota.
curl https://jana.papakacak.com/api/v1/me \ -H "Authorization: Bearer sk-jana-xxxxxxxx"
Respons:
{
"ok": true,
"key": {
"label": "Pakej Starter",
"quota": 50,
"used": 3,
"remaining": 47,
"status": "active"
}
}
GET /api/v1/catalog
Senarai server, model, mod dan kos kredit yang tersedia.
curl https://jana.papakacak.com/api/v1/catalog \ -H "Authorization: Bearer sk-jana-xxxxxxxx"
POST /api/v1/generate
Mulakan janaan baharu (multipart/form-data).
| Parameter | Penerangan |
|---|---|
server | 1 atau 2 |
model | Model dari /catalog |
mode | t2v (teks ke video), sfv (start-frame ke video), i2v (gambar ke video), r2v (rujukan ke video), img (gambar) |
prompt | Teks prompt |
ratio | Nisbah bidang, cth 16:9 |
resolution | Resolusi, cth 720p |
duration | Tempoh dalam saat |
images[] | Fail gambar rujukan (pilihan, boleh berbilang) |
video | Fail video rujukan (pilihan) |
curl -X POST https://jana.papakacak.com/api/v1/generate \ -H "Authorization: Bearer sk-jana-xxxxxxxx" \ -F server=1 -F model=MODEL_ID -F mode=t2v \ -F "prompt=Seekor kucing berjalan di pasar malam" \ -F ratio=16:9 -F resolution=720p -F duration=5 # dengan gambar rujukan curl -X POST https://jana.papakacak.com/api/v1/generate \ -H "Authorization: Bearer sk-jana-xxxxxxxx" \ -F server=1 -F model=MODEL_ID -F mode=i2v \ -F "prompt=Kamera zoom perlahan" \ -F "images[]=@gambar.jpg"
GET /api/v1/jobs/{id}
Semak status janaan.
curl https://jana.papakacak.com/api/v1/jobs/123 \ -H "Authorization: Bearer sk-jana-xxxxxxxx"
Respons:
{
"ok": true,
"job": {
"id": 123,
"status": "processing",
"credits": 20,
"download_url": null
}
}
status ialah processing, done atau failed. Poll setiap 3 hingga 5 saat sehingga status bukan processing. Jangan poll lebih laju.
GET /api/v1/jobs/{id}/download
Muat turun fail video apabila status done.
curl -L https://jana.papakacak.com/api/v1/jobs/123/download \ -H "Authorization: Bearer sk-jana-xxxxxxxx" -o video.mp4
Kod ralat
| Kod | Maksud |
|---|---|
401 | API key tiada atau tidak sah |
422 | Input tidak sah atau kredit tidak mencukupi |
502 | Server sibuk. Kredit dipulangkan automatik, cuba lagi sebentar |
Connector MCP (untuk Claude, ChatGPT, Cursor, n8n)
Jana ada pelayan MCP (Model Context Protocol) terbina dalam. Sambungkan sekali, lepas tu suruh AI anda jana video terus: "jana video kucing makan nasi lemak, 9:16, server 1". AI akan panggil alat jana_generate, tunggu dengan jana_wait, dan beri pautan download.
| Endpoint | https://jana.papakacak.com/mcp (Streamable HTTP, JSON) |
|---|---|
| Auth | Authorization: Bearer sk-jana-KEY-PAKEJ-ANDA atau letak key dalam URL: https://jana.papakacak.com/mcp/sk-jana-KEY-PAKEJ-ANDA |
| Alat | jana_catalog · jana_balance · jana_generate · jana_status · jana_wait · jana_history |
Claude Code
claude mcp add --transport http jana https://jana.papakacak.com/mcp --header "Authorization: Bearer sk-jana-KEY-PAKEJ-ANDA"
Claude Desktop / claude.ai (Custom Connector): Settings → Connectors → Add custom connector → URL https://jana.papakacak.com/mcp/sk-jana-KEY-PAKEJ-ANDA (key dalam URL, tiada OAuth).
Cursor (.cursor/mcp.json) / Windsurf / ChatGPT (Developer mode → Connectors → URL):
{
"mcpServers": {
"jana": {
"url": "https://jana.papakacak.com/mcp",
"headers": { "Authorization": "Bearer sk-jana-KEY-PAKEJ-ANDA" }
}
}
}
Rujukan gambar/video melalui MCP dihantar sebagai URL awam (image_urls, video_url). Hasil siap diberi sebagai download_url bertandatangan, sah 24 jam, tanpa auth, supaya AI boleh terus muat turun atau pasang dalam workflow.
Key = pakej yang anda beli (lihat Panel). Sesiapa yang ada key boleh guna bakinya. Kalau terdedah, minta admin matikan key itu.