Google Flow REST API Gateway

Zero-UI High Throughput Engine for Omni 1.1 Flash, Veo 3.1, & Nano Banana 2

v3.0.0 Production (Sub-ms Non-Blocking Queue)
Authentication Header
Pass in header via X-API-Key or Authorization: Bearer
GUNAKAN_API_KEY_ANDA

⚡ 1. Video Generation Endpoints (Useapi Compatible)

POST /v1/google-flow/videos/create Sub-ms Queue (<10ms) T2V / R2V / I2V
Deskripsi: Membuat tugas (job) generasi video baru secara instan tanpa interaksi UI browser. Mendukung mode Text-to-Video murni, Image-to-Video (Start Frame / Frame-In), Frame Interpolation (Start + End Frame), dan Multi-Reference Video (R2V hingga 7 gambar).
📋 Request Body Parameters
Field Tipe Wajib Default Keterangan
prompt string Ya - Deskripsi visual / pergerakan video yang ingin dihasilkan.
model string Tidak "omni-flash" Pilihan model: "omni-flash" (Omni 1.1 Flash), "veo-3.1-lite", "veo-3.1-lite-lower-priority".
duration integer Tidak 8 Durasi video dalam detik. Omni: 4, 6, 8, 10 | Veo: 4, 6, 8.
aspectRatio string Tidak "16:9" Rasio aspek: "16:9" (Landscape), "9:16" (Portrait/Vertical), "1:1" (Square), "4:3".
count integer Tidak 1 Jumlah variasi video yang di-generate (1 s/d 4).
referenceImages array[string] Tidak [] Daftar URL gambar referensi (R2V). Omni Flash: maks 7 gambar | Veo 3.1: maks 3 gambar.
startImage string Tidak null URL / path gambar awal video (Frame-In / Image-to-Video).
endImage string Tidak null URL / path gambar akhir video (Frame-Out / Interpolasi transisi).
account string Tidak null Email akun Google spesifik (opsional, default otomatis Round-Robin load balancer).
💻 Contoh Request Body (JSON)
POST http://139.162.4.227:8088/v1/google-flow/videos/create
Headers:
  X-API-Key: GUNAKAN_API_KEY_ANDA
  Content-Type: application/json

{
  "prompt": "The woman in the black pinafore dress and white blouse moves and steps forward gracefully, 8k cinematic lighting",
  "model": "omni-flash",
  "duration": 4,
  "aspectRatio": "9:16",
  "count": 1,
  "referenceImages": [
    "https://example.com/outfit_reference.jpg"
  ]
}
✅ Response (200 OK — Diterima Instan < 10ms)
{
  "jobId": "f9672d84-5cbb-4953-a295-f79350a41f2f",
  "status": "queued",
  "model": "omni-flash",
  "duration": 4,
  "aspectRatio": "9:16",
  "account": "[email protected]",
  "queuedAt": 1790251200
}
❌ Response Error Contoh
// 401 Unauthorized (Kunci API tidak disertakan)
{ "detail": "Missing API Key. Provide via 'X-API-Key' header or 'Authorization: Bearer '" }

// 403 Forbidden (Kunci API salah)
{ "detail": "Invalid or deactivated API Key" }

🖼️ 2. Image Generation Endpoints (Nano Banana 2 Lite)

POST /v1/google-flow/images/create Up to 14 References Nano Banana 2
Deskripsi: Membuat gambar baru berkecepatan tinggi dengan model Nano Banana 2 Lite. Mendukung hingga 14 gambar referensi untuk konsistensi pose, karakter, dan gaya pencahayaan.
📋 Request Body Parameters
Field Tipe Wajib Default Keterangan
prompt string Ya - Deskripsi gambar yang ingin dibuat.
model string Tidak "nano-banana-2-lite" Model gambar (Nano Banana 2 Lite).
aspectRatio string Tidak "1:1" Rasio aspek: "1:1", "16:9", "9:16", "4:3", "3:4".
count integer Tidak 1 Jumlah variasi gambar (1 s/d 4).
referenceImages array[string] Tidak [] Daftar URL gambar referensi (hingga 14 gambar).
💻 Contoh Request Body (JSON)
POST http://139.162.4.227:8088/v1/google-flow/images/create
Headers:
  X-API-Key: GUNAKAN_API_KEY_ANDA
  Content-Type: application/json

{
  "prompt": "A cute red panda wearing an astronaut helmet floating in deep space, hyper-detailed 8k",
  "model": "nano-banana-2-lite",
  "aspectRatio": "1:1",
  "count": 2,
  "referenceImages": ["https://example.com/pose_ref.jpg"]
}
✅ Response (200 OK)
{
  "jobId": "8412fbea-1129-47ee-aa2d-8154aed88fb6",
  "status": "queued",
  "type": "image",
  "model": "nano-banana-2-lite",
  "aspectRatio": "1:1",
  "account": "[email protected]",
  "queuedAt": 1790251205
}

🔍 3. Live Job Tracking & Direct Signed Video MP4 Retrieval

GET /v1/google-flow/jobs/{jobId} Realtime Status Signed Video MP4
Deskripsi: Memeriksa status pengerjaan job secara real-time. Ketika status mencapai completed (100%), endpoint mengembalikan URL CDN bertanda tangan Google Cloud (Signed URL) untuk file Video MP4 asli (bukan preview thumbnail).
💻 Contoh Request
GET http://139.162.4.227:8088/v1/google-flow/jobs/f9672d84-5cbb-4953-a295-f79350a41f2f
Headers:
  X-API-Key: GUNAKAN_API_KEY_ANDA
⏳ Response Saat Masih Diproses (Status: processing)
{
  "jobId": "f9672d84-5cbb-4953-a295-f79350a41f2f",
  "type": "video",
  "status": "processing",
  "progress": 45,
  "account": "[email protected]",
  "prompt": "The woman in the black pinafore dress...",
  "model": "omni-flash",
  "result": null,
  "error": null,
  "createdAt": "1790251200",
  "updatedAt": "1790251220",
  "elapsedSeconds": 20
}
🎉 Response Saat Selesai 100% (Status: completed)
{
  "jobId": "f9672d84-5cbb-4953-a295-f79350a41f2f",
  "type": "video",
  "status": "completed",
  "progress": 100,
  "account": "[email protected]",
  "prompt": "The woman in the black pinafore dress and white blouse moves and steps forward gracefully...",
  "model": "omni-flash",
  "result": {
    "videos": [
      {
        "id": "e9a389d3-85a9-4c94-9ff9-f35a182c98c1",
        "video_url": "https://flow-content.google/video/e9a389d3-85a9-4c94-9ff9-f35a182c98c1?Expires=1790277572&KeyName=labs-flow-prod-cdn-key&Signature=nSZ6Q3XcwBR_6Fp3dc4Y2Qe-Ljc",
        "poster_url": "https://flow-content.google/image/e9a389d3-85a9-4c94-9ff9-f35a182c98c1?Expires=1790277572&KeyName=labs-flow-prod-cdn-key&Signature=...",
        "local_file": "/root/api-google-flow/output/e9a389d3-85a9-4c94-9ff9-f35a182c98c1.mp4",
        "size_bytes": 1154813
      }
    ]
  },
  "error": null,
  "createdAt": "1790251200",
  "updatedAt": "1790251235",
  "elapsedSeconds": 35
}
GET /v1/google-flow/jobs Dashboard / List
Deskripsi: Mengambil daftar semua pekerjaan yang sedang atau telah diproses di seluruh sistem dengan filter status dan pagination.
// Query Parameters:
// ?status=completed (queued, processing, completed, failed)
// ?type=video (video, image)
// ?limit=20&offset=0

GET http://139.162.4.227:8088/v1/google-flow/jobs?status=completed&limit=10
Headers:
  X-API-Key: GUNAKAN_API_KEY_ANDA

👥 4. Multi-Account Pool & Model Catalog

GET /v1/google-flow/models
Deskripsi: Mengembalikan daftar katalog model resmi yang didukung beserta kapabilitas durasi, resolusi, rasio aspek, dan batas referensi.
GET http://139.162.4.227:8088/v1/google-flow/models
Headers:
  X-API-Key: GUNAKAN_API_KEY_ANDA

// Response 200 OK
{
  "models": [
    {
      "id": "omni-flash",
      "name": "Omni 1.1 Flash",
      "type": "video",
      "durations": [4, 6, 8, 10],
      "aspectRatios": ["16:9", "9:16", "1:1", "4:3"],
      "resolutions": ["360p", "720p", "1080p"],
      "maxReferences": 7,
      "supportsStartFrame": true,
      "supportsEndFrame": true,
      "supportsMultiR2V": true,
      "default": true
    },
    {
      "id": "veo-3.1-lite",
      "name": "Veo 3.1 Lite (Priority)",
      "type": "video",
      "durations": [4, 6, 8],
      "aspectRatios": ["16:9", "9:16", "1:1"],
      "resolutions": ["720p", "1080p"],
      "maxReferences": 3,
      "supportsStartFrame": true,
      "supportsEndFrame": true,
      "supportsMultiR2V": true,
      "default": false
    },
    {
      "id": "nano-banana-2-lite",
      "name": "Nano Banana 2 Lite",
      "type": "image",
      "aspectRatios": ["1:1", "16:9", "9:16", "4:3", "3:4"],
      "resolutions": ["1K", "2K", "4K"],
      "maxReferences": 14,
      "default": true
    }
  ]
}
POST /v1/google-flow/accounts/add
Deskripsi: Menambahkan atau memperbarui akun Google ke dalam Session Pool tanpa perlu interaksi browser. Sistem akan otomatis mendistribusikan request antar akun aktif secara Round-Robin.
POST http://139.162.4.227:8088/v1/google-flow/accounts/add
Headers:
  X-API-Key: GUNAKAN_API_KEY_ANDA
  Content-Type: application/json

{
  "email": "[email protected]",
  "cookies": "[{\"name\": \"__Secure-3PSID\", \"value\": \"...\", \"domain\": \".google.com\"}]",
  "access_token": "ya29.***"
}

// Response 200 OK
{
  "success": true,
  "email": "[email protected]",
  "message": "Account registered in pool"
}
POST /v1/google-flow/auth/refresh Self-Healing
Deskripsi: Memicu handshake self-healing token secara manual via labs.google/fx/404 untuk memperbarui token ya29 dan kunci sesi XSRF.
POST http://139.162.4.227:8088/v1/google-flow/auth/refresh
Headers:
  X-API-Key: GUNAKAN_API_KEY_ANDA

// Response 200 OK
{
  "success": true,
  "status": "token_refreshed",
  "detail": "refreshed"
}