Jana

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).

ParameterPenerangan
server1 atau 2
modelModel dari /catalog
modet2v (teks ke video), sfv (start-frame ke video), i2v (gambar ke video), r2v (rujukan ke video), img (gambar)
promptTeks prompt
ratioNisbah bidang, cth 16:9
resolutionResolusi, cth 720p
durationTempoh dalam saat
images[]Fail gambar rujukan (pilihan, boleh berbilang)
videoFail 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

KodMaksud
401API key tiada atau tidak sah
422Input tidak sah atau kredit tidak mencukupi
502Server 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.

Endpointhttps://jana.papakacak.com/mcp (Streamable HTTP, JSON)
AuthAuthorization: Bearer sk-jana-KEY-PAKEJ-ANDA atau letak key dalam URL: https://jana.papakacak.com/mcp/sk-jana-KEY-PAKEJ-ANDA
Alatjana_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.