Error & Batasan
Kode status
| Kode | Arti |
|---|---|
| 400 | Bad request — field hilang/invalid (misal prompt hilang, action invalid, body JSON invalid) |
| 401 | Unauthorized — API key/Bearer token hilang atau invalid |
| 402 | Kredit kurang — response-nya ada balance dan required |
| 403 | Forbidden — key valid tapi nggak active, atau resource bukan milik pemanggil |
| 404 | Not found — resource-nya nggak ada atau bukan punya lo |
| 409 | Conflict — race idempotency key di report() |
| 429 | Rate limited — lihat bagian bawah |
| 503 | Provider generation lagi nggak tersedia pas submit — kredit direfund otomatis |
Rate limit
Submit generation (POST /api/gen/image, POST /api/gen/video) dibatasin 10 request per menit per user (bukan per IP — beberapa instance agent Hermes bisa share satu IP). Kalau kelewat limit, balikin:
json
429
{ "error": "Rate limit tercapai (10 request/menit). Coba lagi dalam 42 detik." }
// Headers: Retry-After: 42, X-RateLimit-Reset: 1751970000000Batasan ukuran request
| Field | Batas |
|---|---|
| Prompt gambar | 1.000 karakter |
| Prompt video | 2.000 karakter |
URL referensi gambar (imageUrls) | Maks 5, harus HTTPS |
| Upload file referensi video | 10 MB, cuma JPEG/PNG/WebP |
clientRef | 200 karakter |
Stall timeout (di server)
| Tipe job | Stall setelah |
|---|---|
| Generate gambar | 15 menit |
| Generate video | 30 menit |
Job yang stall atau gagal selalu auto-refund, tercatat di CreditTransaction.