Cách trò chuyện với Google Flow Agent qua Google Flow API
8 phút đọc • 17 tháng 10 năm 2026 (10 tháng 11 năm 2026)
useapi.net là API của bên thứ ba, không liên kết với Google và không được Google bảo trợ.
Mục lục
- Giới thiệu
- Trước khi bắt đầu
- Một cuộc chat diễn ra thế nào
- Bước 1: Bắt đầu chat
- Bước 2: Nhận phản hồi qua stream
- Bước 3: Phê duyệt khoản chi
- Bước 4: Lấy media
- Bước 5: Tiếp tục hoặc chỉnh sửa
- Bước 6: Đọc, liệt kê, đổi tên và xóa cuộc chat
- Bước 7: Cài đặt phê duyệt, chỉ dẫn và model mặc định
- Làm điều tương tự từ trợ lý AI
- Ví dụ
- Câu hỏi thường gặp
- Kết luận
Giới thiệu
Google Flow API của useapi.net cho phép code của bạn trò chuyện với Google Flow Agent, trợ lý sáng tạo có sẵn trong Google Flow: bắt đầu chat bằng một lệnh curl, nhận phản hồi theo dạng stream, phê duyệt khoản agent muốn chi và tải về ảnh, video mà nó tạo. Google chỉ cung cấp Flow Agent bên trong ứng dụng web Google Flow, không có API công khai (tính đến tháng 11/2026). useapi.net là API của bên thứ ba, không liên kết với Google, và cuộc chat chạy trên tài khoản Google Flow của bạn, miễn phí hay trả phí đều được. Trò chuyện với agent không tốn credit, còn ảnh và video nó tạo có giá thông thường của Google Flow.
Hướng dẫn này là một lần chạy thật, từ đầu đến cuối. Chúng tôi nhờ agent chụp hai ảnh sản phẩm một chiếc cốc gốm và làm một video 6 giây về nó, phê duyệt khoản chi, lấy file về, rồi yêu cầu sửa lại và từ chối bản sửa đó. Mọi phản hồi bên dưới đều lấy từ lần chạy này, đã rút gọn và thay email tài khoản.
Agent tự lên kế hoạch công việc. Nó chọn công cụ và model theo cài đặt của project, và lưu toàn bộ cuộc trò chuyện phía Google, nên một cuộc chat có thể tiếp tục sau nhiều giờ hay nhiều ngày mà vẫn đủ ngữ cảnh. Tổng quan Agent trình bày mọi quy tắc và giới hạn.
Trước khi bắt đầu
Bạn cần một API token của useapi.net và một tài khoản Google đã kết nối qua Cài đặt Google Flow. Agent chạy trên mọi gói Google AI, kể cả tài khoản miễn phí, và những gì nó tạo được tùy theo gói của tài khoản, giống như POST /images và POST /videos.
Mỗi lượt dùng một captcha, do API giải bằng nhà cung cấp captcha của bạn hoặc bằng lượt giải captcha miễn phí của tài khoản đầu tiên. Bạn không cần gửi gì cho việc này.
Các bước dùng curl, jq và ba biến shell:
export USEAPI_TOKEN="user:12345-..." # API token useapi.net của bạn
export EMAIL="[email protected]" # một tài khoản Google Flow đã kết nối
API="https://api.useapi.net/v1/google-flow/agent"
Mọi lệnh gọi bên dưới cũng có trong Postman collection.
Một cuộc chat diễn ra thế nào
Một lượt (turn) là một tin nhắn của bạn và mọi việc agent làm để trả lời. Mỗi cuộc chat chạy từng lượt một:
- POST /agent/chats bắt đầu cuộc chat và trả về
202kèmchatId. - GET /agent/chats/
chatId/stream theo dõi agent trực tiếp qua Server-Sent Events. - Khi agent muốn dùng credit, nó dừng lại và hỏi. POST /agent/chats/
chatId/approval trả lời. - POST /agent/chats/
chatId/messages gửi tin nhắn tiếp theo. - GET /agent/chats/
chatIdđọc toàn bộ cuộc chat, với link media mới.
Bước 1: Bắt đầu chat
Gửi yêu cầu trong message. Lệnh gọi trả về ngay khi Google nhận lượt, thường mất vài giây và có thể lên tới khoảng 100 giây, nên hãy đặt timeout 150 giây cho curl:
curl -s --max-time 150 -X POST "$API/chats" \
-H "Authorization: Bearer $USEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "'"$EMAIL"'",
"message": "Create two product shots of a matte sage-green ceramic coffee mug on a light oak table in soft morning window light, square format, with Nano Banana 2.1. Then make one 6 second video of the same mug with steam slowly rising from the coffee, with Omni 1.1 Flash."
}'
Lệnh của chúng tôi trả về 202 sau khoảng 10 giây:
{
"chatId": "c-u12345-email:[email protected]:74262ac8-a54f-4ad7-80d7-3d44a4d6c6c1-chat:55023a0f-5e70-4545-bb4a-d878038dcf35-bot:google-flow",
"email": "[email protected]",
"turn": 1,
"status": "running"
}
chatId đã chứa tài khoản và project, nên các lệnh gọi sau không cần hai thứ này nữa. Nó có : và @, nên hãy mã hóa URL khi đặt vào đường dẫn. Giữ cả hai dạng:
CHATID="c-u12345-email:[email protected]:74262ac8-...-bot:google-flow"
CHAT=$(jq -rn --arg v "$CHATID" '$v|@uri')
Nếu không có projectId, cuộc chat nằm trong project agent riêng của tài khoản, được tạo ở lần chat đầu tiên với tên kiểu My Agents Work Fri, Oct 16, giúp tách việc của agent khỏi các media Google Flow khác của bạn. Bạn cũng có thể đính kèm tối đa 7 ảnh, một video, 5 giọng và 7 nhân vật vào bất kỳ tin nhắn nào, với cùng cú pháp nhắc @ như POST /videos, xem POST /agent/chats.
Bước 2: Nhận phản hồi qua stream
Mở stream với -N để sự kiện hiện ra ngay khi tới. EventSource của trình duyệt không gửi được header Authorization, nên trong ứng dụng hãy dùng fetch() hoặc bất kỳ HTTP client nào:
curl -s -N "$API/chats/$CHAT/stream" \
-H "Authorization: Bearer $USEAPI_TOKEN"
Một stream mới trước tiên gửi sự kiện chat, phát lại lịch sử cuộc chat, rồi gửi replayed. Mọi thứ sau replayed là trực tiếp. Ở đây lượt đầu đã xong khi chúng tôi kết nối, nên nó đến trong phần phát lại. Agent nêu kế hoạch, rồi xin phép dùng 10 credit cho 2 ảnh và 1 video (đã bỏ ui và các trường dài khác):
event: chat
data: {"chatId":"c-u12345-email:[email protected]:74262ac8-...-bot:google-flow","status":"waiting_approval","turns":1}
id: 1:505e78d7-bd79-4938-b0ec-8117bdb933dc
event: message
data: {"id":"1:505e78d7-...","turn":1,"items":[{"kind":"text","text":"I'm going to generate two images of a matte sage-green ceramic coffee mug, then I'll create a 6-second video of the same mug with rising steam using Omni 1.1 Flash."}]}
id: 1:00c21a03-a687-4173-9fd9-190fcdf2447b
event: message
data: {"id":"1:00c21a03-...","turn":1,"items":[{"kind":"tool_call","tool":"open_chat_panel","args":{"_synthetic":true}},{"kind":"tool_call","tool":"ask_for_permission","args":{"num_total":3,"total_cost":10,"num_videos":1,"num_images":2}}]}
id: 1:approval
event: approval
data: {"turn":1,"cost":10,"images":2,"videos":1,"total":3}
event: replayed
data: {"turns":1}
Các sự kiện bạn cần xử lý:
| Sự kiện | Ý nghĩa |
|---|---|
message | Một tin nhắn hoàn chỉnh của agent: văn bản, suy nghĩ, lệnh gọi công cụ và kết quả |
approval | Agent xin phép trước khi dùng cost credit Flow |
turn | Một lượt kết thúc: completed, waiting_approval hoặc failed kèm error |
media | Ảnh hoặc video agent tạo, hoặc thay đổi trạng thái của nó, có url khi completed |
Cứ 15 giây có một keepalive. Một stream bao trọn cả cuộc chat qua nhiều lượt, nên cứ để nó mở trong lúc bạn phê duyệt và gửi tin nhắn. Nếu bị ngắt, kết nối lại với id cuối cùng trong header Last-Event-ID, stream sẽ tiếp tục từ chỗ đã dừng. Lượt vẫn chạy khi bạn đóng stream, nên không mất gì.
Bước 3: Phê duyệt khoản chi
Ở chế độ phê duyệt ask, agent dừng lại trước khi chi bất cứ thứ gì. status của cuộc chat là waiting_approval và sự kiện approval cho thấy chi phí. Trả lời bằng approve, always hoặc reject trong khoảng 4 phút:
curl -s --max-time 150 -X POST "$API/chats/$CHAT/approval" \
-H "Authorization: Bearer $USEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "decision": "approve" }'
Từ khi Google thay đổi Flow Agent vào ngày 10/11/2026, câu trả lời tiếp nối lượt đã hỏi (ở đây là lượt 1, không phải một lượt 2 mới), và Google chỉ nhận nó khi lượt đó còn mở, khoảng 4 phút sau khi hỏi. Trả lời muộn hơn sẽ nhận 409: hãy gửi lại tin nhắn, hoặc đặt project thành approval: "auto" ở bước 7 để agent không bao giờ hỏi. Lần chạy bên dưới được ghi trước thay đổi này, nên câu trả lời của nó mở ra lượt 2, và tên công cụ trong đó (generate_video_from_text) giờ được trả về là generate_image và generate_video.
Câu trả lời cho agent làm việc tiếp:
{
"chatId": "c-u12345-email:[email protected]:74262ac8-...-bot:google-flow",
"email": "[email protected]",
"turn": 2,
"status": "running"
}
Trên stream đang mở, lượt 2 đưa video vào hàng đợi, tạo xong hai ảnh và kết thúc trong khoảng 30 giây. choices của agent (Option 1, Option 2) là các ô mà ứng dụng web Google Flow hiển thị cho mỗi kết quả:
id: 2:5feb253e-0848-422a-bcb8-936995b3c0df
event: message
data: {"id":"2:5feb253e-...","turn":2,"items":[{"kind":"tool_result","tool":"generate_video_from_text","result":{"status":"queued","media_id":"5732c66d-a971-4cd0-92d2-508ef0aecc07","display_name":"Steam rising from coffee mug","model_key":"abra_t2v_6s","aspect_ratio":"VIDEO_ASPECT_RATIO_LANDSCAPE"}}]}
id: 2:m:5732c66d-a971-4cd0-92d2-508ef0aecc07
event: media
data: {"turn":2,"referenceId":"user:12345-email:6a6f...-video:5732c66d-a971-4cd0-92d2-508ef0aecc07","mediaId":"5732c66d-a971-4cd0-92d2-508ef0aecc07","type":"video","status":"queued","tool":"generate_video_from_text","model":"abra_t2v_6s","displayName":"Steam rising from coffee mug"}
id: 2:m:377ecb33-ab2c-4bce-92d4-7bfcf53a9af2
event: media
data: {"turn":2,"referenceId":"user:12345-email:6a6f...-image:377ecb33-ab2c-4bce-92d4-7bfcf53a9af2","mediaId":"377ecb33-ab2c-4bce-92d4-7bfcf53a9af2","type":"image","status":"completed","tool":"generate_image","displayName":"Ceramic coffee mug on table","url":"https://flow-content.google/image/377ecb33-...?Expires=...&Signature=..."}
id: 2:4e37b051-c49c-4331-bc0c-06ccc539b950
event: message
data: {"id":"2:4e37b051-...","turn":2,"items":[{"kind":"text","text":"I've generated your two product shots. Your 6-second video has been scheduled and is waiting in the queue due to high demand. Feel free to check back in a few minutes."}]}
id: 2:end
event: turn
data: {"turn":2,"status":"completed"}
always phê duyệt và đồng thời chuyển project sang chế độ auto, nên agent thôi hỏi trong mọi cuộc chat của project. reject từ chối, như ở bước 5. Khi một yêu cầu đang chờ, tin nhắn mới sẽ nhận 409: hãy trả lời yêu cầu trước.
Bước 4: Lấy media
Ảnh sẵn sàng khi lượt kết thúc. Video thường xong sau đó một hai phút, và khi xong stream gửi thêm một sự kiện media thứ hai cho video. Video của chúng tôi tới chưa đầy một phút sau khi lượt kết thúc:
id: 2:m:5732c66d-a971-4cd0-92d2-508ef0aecc07
event: media
data: {"turn":2,"referenceId":"user:12345-email:6a6f...-video:5732c66d-a971-4cd0-92d2-508ef0aecc07","mediaId":"5732c66d-a971-4cd0-92d2-508ef0aecc07","type":"video","status":"completed","tool":"generate_video_from_text","model":"abra_t2v_6s","displayName":"Steam rising from coffee mug","url":"https://flow-content.google/video/5732c66d-...?Expires=...&Signature=...","durationSec":6}
Tải từng url về khi link còn mới:
curl -s -L -o mug-steam.mp4 "https://flow-content.google/video/5732c66d-...?Expires=...&Signature=..."
Các link trỏ tới Google và hết hạn khoảng 6 giờ sau khi được cấp. Đọc lại cuộc chat bằng GET /agent/chats/chatId để có link mới, hoặc lấy link của một mục từ GET /assets/mediaGenerationId bằng referenceId của nó. referenceId cũng dùng được làm referenceImage_N hoặc referenceVideo_1 trong POST /images, POST /videos và tin nhắn tiếp theo gửi agent. Hai ảnh và video 1280×720 có trong phần Ví dụ.
Lần chạy tốn 10 credit: hai ảnh Nano Banana 2.1 tốn 0 trên gói của tài khoản này, còn video Omni 1.1 Flash 6 giây tốn 10.
Bước 5: Tiếp tục hoặc chỉnh sửa
Gửi tin nhắn tiếp theo vào cùng cuộc chat. Google giữ cuộc trò chuyện, nên agent biết “video đó” là video nào:
curl -s --max-time 150 -X POST "$API/chats/$CHAT/messages" \
-H "Authorization: Bearer $USEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "message": "Nice. Revise the video: make it 8 seconds, with a slow camera push-in toward the mug while the steam rises." }'
Lệnh trả về 202 với "turn": 3, và agent lại xin phép, lần này 12 credit:
id: 3:approval
event: approval
data: {"turn":3,"cost":12,"images":0,"videos":1,"total":1}
id: 3:end
event: turn
data: {"turn":3,"status":"waiting_approval"}
Chúng tôi đã có video rồi, nên từ chối:
curl -s --max-time 150 -X POST "$API/chats/$CHAT/approval" \
-H "Authorization: Bearer $USEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "decision": "reject" }'
Lượt 4 kết thúc bằng một câu trả lời, không có ảnh hay video mới, và không tốn credit nào:
id: 4:91e06fb7-ba5b-4e32-b2a6-ce210be491ba
event: message
data: {"id":"4:91e06fb7-...","turn":4,"items":[{"kind":"text","text":"I've cancelled that generation. Are there any changes you'd like to make to the prompt or concept before we try again?"}]}
id: 4:end
event: turn
data: {"turn":4,"status":"completed"}
Gửi tin nhắn khi một lượt đang chạy sẽ nhận 409, nên hãy chờ sự kiện turn trước. Để chọn một trong các lựa chọn của agent, gửi văn bản của lựa chọn đó làm tin nhắn tiếp theo, giống như ứng dụng web Google Flow.
Bước 6: Đọc, liệt kê, đổi tên và xóa cuộc chat
Đọc toàn bộ cuộc chat từ Google bất cứ lúc nào. Mỗi lượt có tin nhắn của bạn, mọi việc agent đã làm và media với link mới:
curl -s "$API/chats/$CHAT" -H "Authorization: Bearer $USEAPI_TOKEN"
Cuộc chat của chúng tôi sau bốn lượt (đã rút gọn các mục agent và media, bỏ ui):
{
"chatId": "c-u12345-email:[email protected]:74262ac8-...-bot:google-flow",
"email": "[email protected]",
"projectId": "74262ac8-a54f-4ad7-80d7-3d44a4d6c6c1",
"title": "Sage Green Ceramic Mug Concept",
"created": "2026-10-18T00:47:54.000Z",
"updated": "2026-10-18T00:50:47.236Z",
"status": "idle",
"pendingApproval": null,
"lastError": null,
"turns": [
{
"turn": 1,
"message": { "text": "Create two product shots of a matte sage-green ceramic coffee mug ...", "references": [] },
"agent": [
{ "kind": "text", "text": "I'm going to generate two images of a matte sage-green ceramic coffee mug, then I'll create a 6-second video ..." },
{ "kind": "tool_call", "tool": "ask_for_permission", "args": { "num_total": 3, "total_cost": 10, "num_videos": 1, "num_images": 2 } }
],
"media": []
},
{
"turn": 2,
"message": { "text": "Approve", "references": [] },
"agent": [
{ "kind": "tool_call", "tool": "generate_video_from_text", "args": { "duration": 6, "aspect_ratio": "16:9", "model_display_name": "Omni 1.1 Flash", "prompt": "Cinematic product video of a matte sage-green ceramic coffee mug ..." } },
{ "kind": "tool_call", "tool": "generate_image", "args": { "aspect_ratio": "1:1", "prompt": "A professional product shot of a matte sage-green ceramic coffee mug ..." } },
{ "kind": "text", "text": "I've generated your two product shots. Your 6-second video has been scheduled ..." }
],
"media": [
{ "referenceId": "user:12345-email:6a6f...-video:5732c66d-...", "type": "video", "status": "completed", "model": "abra_t2v_6s", "displayName": "Steam rising from coffee mug", "url": "https://flow-content.google/video/5732c66d-...", "durationSec": 6 },
{ "referenceId": "user:12345-email:6a6f...-image:377ecb33-...", "type": "image", "status": "completed", "displayName": "Ceramic coffee mug on table", "url": "https://flow-content.google/image/377ecb33-..." },
{ "referenceId": "user:12345-email:6a6f...-image:a2d3cd0c-...", "type": "image", "status": "completed", "displayName": "Ceramic coffee mug on wooden sur…", "url": "https://flow-content.google/image/a2d3cd0c-..." }
]
},
{ "turn": 3, "message": { "text": "Nice. Revise the video: make it 8 seconds, ...", "references": [] }, "agent": ["..."], "media": [] },
{
"turn": 4,
"message": { "text": "Reject", "references": [] },
"agent": [{ "kind": "text", "text": "I've cancelled that generation. Are there any changes you'd like to make to the prompt or concept before we try again?" }],
"media": []
}
]
}
Google tự đặt tên cho cuộc chat. status là idle khi không có gì đang chạy, và pendingApproval giữ chi phí trong lúc agent chờ. Thêm ?media=false để đọc nhanh hơn, không làm mới link.
Liệt kê các cuộc chat của một tài khoản, mới hoạt động gần nhất ở trên. Danh sách lấy từ Google, nên cũng có các cuộc chat bắt đầu trong ứng dụng web Google Flow ở cùng project, và đây là cách tìm lại chatId bị mất:
curl -s "$API/chats?email=$EMAIL" -H "Authorization: Bearer $USEAPI_TOKEN"
Đổi tên cuộc chat. Tên mới cũng hiện trong ứng dụng web Google Flow:
curl -s -X PATCH "$API/chats/$CHAT" \
-H "Authorization: Bearer $USEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "title": "Sage mug product shoot" }'
{
"chatId": "c-u12345-email:[email protected]:74262ac8-...-bot:google-flow",
"title": "Sage mug product shoot"
}
Sau đó danh sách là:
{
"chats": [
{
"chatId": "c-u12345-email:[email protected]:74262ac8-...-chat:55023a0f-...-bot:google-flow",
"email": "[email protected]",
"title": "Sage mug product shoot",
"created": "2026-10-18T00:47:54.000Z",
"updated": "2026-10-18T00:51:01.773Z",
"running": false
},
{
"chatId": "c-u12345-email:[email protected]:74262ac8-...-chat:1d9d42ed-...-bot:google-flow",
"email": "[email protected]",
"title": "Stylish Female Character Action Sequence",
"created": "2026-10-17T03:50:34.000Z",
"updated": "2026-10-17T04:57:26.375Z",
"running": false
}
]
}
Xóa nội dung một cuộc chat. Lệnh trả về 204 không có body, cuộc chat biến mất khỏi danh sách và ứng dụng web Google Flow, còn ảnh và video nó đã tạo vẫn ở lại trong project:
curl -s -X DELETE "$API/chats/$CHAT" -H "Authorization: Bearer $USEAPI_TOKEN"
Đổi tên và xóa trả về 409 khi một lượt đang chạy.
Bước 7: Cài đặt phê duyệt, chỉ dẫn và model mặc định
Mỗi project Google Flow có cài đặt agent riêng, giống bảng agent trong ứng dụng web Google Flow. GET /agent/settings đọc chúng, đồng thời liệt kê các model ảnh và video mà gói Google của tài khoản có, kèm chi phí một ảnh hoặc một video trên gói đó:
curl -s "$API/settings?email=$EMAIL" -H "Authorization: Bearer $USEAPI_TOKEN"
PUT /agent/settings chỉ đổi những trường bạn gửi. Trước lần chạy, chúng tôi đặt chế độ ask và các giá trị mặc định:
curl -s -X PUT "$API/settings" \
-H "Authorization: Bearer $USEAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "'"$EMAIL"'",
"approval": "ask",
"imageDefaults": { "model": "nano-banana-2", "aspectRatio": "1:1", "count": 2 },
"videoDefaults": { "model": "omni-flash", "aspectRatio": "16:9", "count": 1 }
}'
Phản hồi là cài đặt của project sau khi thay đổi:
{
"projectId": "74262ac8-a54f-4ad7-80d7-3d44a4d6c6c1",
"approval": "ask",
"instructions": [],
"imageDefaults": { "model": "nano-banana-2", "aspectRatio": "1:1", "count": 2 },
"videoDefaults": { "model": "omni-flash", "aspectRatio": "16:9", "count": 1 },
"models": {
"image": [
{ "model": "nano-banana-pro", "label": "Nano Banana Pro", "credits": 0 },
{ "model": "nano-banana-2-lite", "label": "Nano Banana 2 Lite", "credits": 0 },
{ "model": "nano-banana-2", "label": "Nano Banana 2.1", "credits": 0 }
],
"video": [
{ "model": "omni-flash", "label": "Omni 1.1 Flash", "credits": 4 },
{ "model": "veo-3.1-lite", "label": "Veo 3.1 - Lite", "credits": 5 },
{ "model": "veo-3.1-fast", "label": "Veo 3.1 - Fast", "credits": 10 },
{ "model": "veo-3.1-quality", "label": "Veo 3.1 - Quality", "credits": 100 }
]
}
}
credits là chi phí thấp nhất của một ảnh hoặc một video trên gói của tài khoản, nên video dài hơn hoặc độ phân giải cao hơn sẽ tốn hơn: video Omni 1.1 Flash 6 giây 720p của chúng tôi tốn 10, còn bản sửa 8 giây lẽ ra tốn 12. Gói của bạn có thể hiện số khác. Các trường cài đặt:
approval:ask(agent dừng lại và cho thấy chi phí) hoặcauto(chi mà không hỏi).instructions: tối đa 3 chỉ dẫn cố định mà agent tuân theo trong mọi cuộc chat của project, mỗi chỉ dẫn có thể kèm ảnh tham chiếu. Mảng này thay thế các chỉ dẫn của project, nên hãy gửi cả danh sách.imageDefaultsvàvideoDefaults: model, tỷ lệ khung hình và số lượng agent dùng khi tin nhắn không nói khác, chọn từmodels.
Cài đặt áp dụng cho mọi cuộc chat trong project, kể cả các cuộc chat trong ứng dụng web Google Flow.
Làm điều tương tự từ trợ lý AI
MCP server Google Flow được host sẵn cung cấp cho Claude Code, Cursor, VS Code và các MCP client khác cùng tính năng chat này dưới dạng 12 công cụ, không cần cài gì. Trong Claude Code:
claude mcp add --transport http useapi-google-flow https://api.useapi.net/v1/google-flow/mcp --header "Authorization: Bearer YOUR_API_TOKEN"
Rồi chỉ cần nhờ trợ lý chụp ảnh chiếc cốc bằng lời thường. Trợ lý gửi yêu cầu bằng flow_agent_chat và trả lời yêu cầu dùng credit của agent bằng flow_agent_answer_approval. Server có trong MCP Registry chính thức với tên net.useapi/google-flow.
Muốn xem trước một chat client hoàn chỉnh, hãy mở bản demo trực tiếp. Dán API token, chọn tài khoản và trò chuyện với agent, có ảnh và video ngay trong khung chat, file đính kèm, thẻ phê duyệt và cài đặt. Mã nguồn là năm file nhỏ không cần bước build, trên GitHub tại google-flow-api/demo, và trang Agent Live Demo ghép mỗi tính năng với lệnh gọi API của nó.
Ví dụ
Những gì lần chạy này tạo ra, không chỉnh sửa. Prompt là do chính agent viết từ yêu cầu của chúng tôi.
Nano Banana 2.1 » hai ảnh sản phẩm chiếc cốc màu xanh xô thơm (lượt 2)
Cả hai đều là JPEG 1024×1024, 0 credit trên gói của tài khoản này.
Omni 1.1 Flash » 6 giây hơi nước bốc lên từ chiếc cốc (lượt 2)
1280×720 có âm thanh, 6 giây, 10 credit.
Hướng dẫn liên quan: video Veo 3.1 qua Google Flow API, video có âm thanh gốc với Omni Flash và ảnh Nano Banana qua Google Flow API.
Câu hỏi thường gặp
- Có API cho Google Flow Agent không? Qua useapi.net thì có: Agent API bắt đầu chat, stream phản hồi qua Server-Sent Events, trả lời phê duyệt và trả về ảnh, video, trên mọi gói Google AI, kể cả tài khoản miễn phí. Google chỉ cung cấp Flow Agent bên trong ứng dụng web Google Flow, không có API công khai riêng (tính đến tháng 11/2026).
- Trò chuyện với Google Flow Agent tốn bao nhiêu? Qua useapi.net, trò chuyện không tốn credit Flow, còn những gì agent tạo có giá thông thường của Google Flow, và chế độ
askhiện giá đó trước khi chi. Video Omni 1.1 Flash 6 giây 720p trong lần chạy này có giá $0,08 trên Google AI Ultra $199,99, so với $0,61 trên Gemini API chính thức (tính đến tháng 11/2026). - Cuộc chat bắt đầu trong ứng dụng web Google Flow có hiện trong API không? Qua useapi.net thì có, khi chúng ở cùng project. GET /agent/chats liệt kê chúng, và mọi endpoint ở trên đều dùng được với chúng. Cuộc chat bắt đầu qua API cũng hiện trong ứng dụng web. Truyền
projectIdtừ GET /assets/projects/emailđể làm việc trong một project khác project riêng của agent. - Có thể nhận webhook thay vì giữ stream mở không? Qua useapi.net thì được. Truyền
replyUrlcho POST /agent/chats, lệnh gửi tin nhắn hoặc lệnh phê duyệt, và khi lượt kết thúc API sẽ gửi mộtPOSTgồm tin nhắn, media, trạng thái và yêu cầu phê duyệt đang chờ (nếu có) của lượt đó. Video thường tới đó khi vẫn cònqueued, nên hãy lấy link của chúng bằng GET hoặc từ sự kiệnmediacủa stream. - Có những giới hạn nào? Qua useapi.net, mỗi cuộc chat chạy từng lượt một, mỗi tài khoản chạy tối đa 3 lượt cùng lúc, và một lượt kéo dài tối đa 10 phút, đây là giới hạn của chính Google. Google cũng giới hạn số tin nhắn gửi agent mỗi ngày cho mỗi tài khoản mà không công bố con số, và API trả về
429cho tài khoản đó tới nửa đêm UTC. Xem Giới hạn.
Kết luận
Ghé Discord Server hoặc
Telegram Channel của chúng tôi cho mọi câu hỏi hỗ trợ.
Xem repo GitHub của chúng tôi với các ví dụ code, gồm cả chat client của agent trong demo/.
Trợ lý AI cũng có thể trò chuyện với Google Flow Agent thay bạn: MCP server Google Flow được host sẵn chạy với Claude Code, Cursor và VS Code, trên tài khoản Google Flow của bạn.
Bắt đầu dùng API
Một gói đăng ký $15/tháng dùng được mọi API trên useapi.net: một token cho tất cả dịch vụ. Mỗi dịch vụ bạn kết nối tối đa 3 tài khoản của riêng mình, còn useapi.net lo REST API, cân bằng tải và polling. Cần thêm tài khoản? Mỗi gói đăng ký thêm giá $10/tháng và cho thêm 3 tài khoản ở mỗi dịch vụ.
Đăng ký — $15/tháng Thanh toán bằng tiền mã hóa
Không có thẻ thanh toán quốc tế? Bạn có thể đăng ký bằng tiền mã hóa (thanh toán bằng tiền mã hóa không được hoàn tiền). Giá và các gói số lượng lớn có trên trang đăng ký. Nếu thanh toán qua Stripe, bạn được hoàn tiền toàn bộ trong 14 ngày kể từ lần mua đầu tiên khi có dưới 50 lượt tạo thành công. Đã đăng ký rồi? Hãy đổi số lượng trong Stripe Customer Portal thay vì mua lại.

