Google Flow API で Google Flow Agent とチャットする方法

8分で読めます • 2026年10月17日(2026年11月10日更新)

useapi.net はサードパーティの API です。Google とは提携しておらず、Google の承認も受けていません。

目次

  1. はじめに
  2. 始める前に
  3. チャットの流れ
  4. ステップ1:チャットを始める
  5. ステップ2:返信をストリーミングで受け取る
  6. ステップ3:消費を承認する
  7. ステップ4:メディアを受け取る
  8. ステップ5:続ける、または修正する
  9. ステップ6:チャットの読み取り、一覧、名前の変更、削除
  10. ステップ7:承認、指示、デフォルトモデルの設定
  11. AI アシスタントから同じことをする
  12. 例
  13. よくある質問
  14. おわりに

はじめに

useapi.net の Google Flow API を使うと、Google Flow に組み込まれたクリエイティブアシスタント Google Flow Agent とコードからチャットできます。curl 1回でチャットを始め、返信をストリーミングで受け取り、エージェントが使いたいクレジットを承認し、作られた画像と動画をダウンロードします。Google は Flow Agent を Google Flow のウェブアプリの中でしか提供しておらず、公開 API はありません(2026年11月時点)。useapi.net は Google と提携していないサードパーティの API で、チャットは無料・有料を問わずお使いの Google Flow アカウントで動きます。エージェントとのチャット自体はクレジットを使わず、エージェントが作る画像と動画には Google Flow の通常の料金がかかります。

このガイドは、実際の1回の実行を最初から最後まで追ったものです。セラミックのコーヒーマグの商品写真2枚と、そのマグの6秒の動画をエージェントに頼み、消費を承認してメディアを受け取り、続けて修正を頼んで、その修正は却下しました。以下のレスポンスはすべてその実行のもので、一部を省略し、アカウントのメールアドレスを置き換えています。

作業の計画はエージェント自身が立てます。プロジェクトの設定に沿ってツールとモデルを選び、会話全体を Google 側に保持するので、数時間後や数日後でも文脈をすべて保ったままチャットを続けられます。ルールと制限はすべて Agent の概要にまとめています。

始める前に

useapi.net の API トークンと、Google Flow のセットアップで接続した Google アカウントが必要です。エージェントは無料アカウントを含むすべての Google AI のプランで使え、生成できるものはアカウントのプランで決まります。POST /images や POST /videos と同じです。

ターンごとに CAPTCHA を1回使います。API がお使いの CAPTCHA プロバイダー、または最初のアカウントに付く無料の CAPTCHA クレジットで解決するので、そのために何かを送る必要はありません。

以下の手順では curl、jq と3つのシェル変数を使います。

export USEAPI_TOKEN="user:12345-..."   # useapi.net の API トークン
export EMAIL="[email protected]"           # 接続済みの Google Flow アカウント
API="https://api.useapi.net/v1/google-flow/agent"

以下の呼び出しはすべて Postman コレクションにもあります。

チャットの流れ

ターンとは、あなたからのメッセージ1つと、それに応えてエージェントが行うすべてのことです。チャットは1ターンずつ進みます。

  1. POST /agent/chats でチャットを始めると、202 と chatId が返ります。
  2. GET /agent/chats/chatId/stream で、エージェントの動きを Server-Sent Events でリアルタイムに追います。
  3. エージェントはクレジットを使う前に止まって確認を求めます。POST /agent/chats/chatId/approval で答えます。
  4. POST /agent/chats/chatId/messages で次のメッセージを送ります。
  5. GET /agent/chats/chatId でチャット全体を、新しいメディアのリンク付きで読みます。

ステップ1:チャットを始める

依頼内容を message として送ります。呼び出しは Google がターンを受け付けた時点で返ります。普通は数秒ですが最大で約100秒かかることがあるので、curl には150秒のタイムアウトを付けます。

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."
  }'

今回は約10秒で 202 が返りました。

{
  "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 にはアカウントとプロジェクトが含まれるので、以降の呼び出しではどちらも不要です。: と @ を含むため、パスに入れるときは URL エンコードします。両方の形を保存しておきます。

CHATID="c-u12345-email:[email protected]:74262ac8-...-bot:google-flow"
CHAT=$(jq -rn --arg v "$CHATID" '$v|@uri')

projectId を省くと、チャットはアカウント自身のエージェント用プロジェクトに入ります。このプロジェクトは最初のチャットで作られ、My Agents Work Fri, Oct 16 のような名前が付き、エージェントの作業を Google Flow の他のメディアと分けておけます。どのメッセージにも、POST /videos と同じ @ メンションの書き方で、画像を最大7枚、動画1本、音声5つ、キャラクター7人まで添付できます。詳しくは POST /agent/chats をご覧ください。

ステップ2:返信をストリーミングで受け取る

イベントが届いた順に表示されるよう、-N を付けてストリームを開きます。ブラウザーの EventSource は Authorization ヘッダーを送れないので、アプリでは fetch() か任意の HTTP クライアントを使ってください。

curl -s -N "$API/chats/$CHAT/stream" \
  -H "Authorization: Bearer $USEAPI_TOKEN"

新しいストリームは、まず chat イベントを送り、チャットの履歴を再生してから replayed を送ります。replayed より後はすべてリアルタイムです。今回は接続した時点で最初のターンがすでに終わっていたので、再生の中に出てきました。エージェントは計画を述べたあと、画像2枚と動画1本に10クレジットを使う許可を求めました(ui などの長いフィールドは省略)。

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}

対応が必要なイベント:

イベント 意味
message エージェントの完結したメッセージ1つ:テキスト、思考、ツール呼び出し、ツールの結果
approval エージェントが Flow クレジットを cost だけ使う前に許可を求めている
turn ターンの終了:completed、waiting_approval、または error 付きの failed
media エージェントが作った画像か動画、またはその状態の変化。completed になると url 付き

keepalive は15秒ごとに届きます。1つのストリームでターンをまたいでチャット全体を追えるので、承認やメッセージ送信の間も開いたままにしておきます。切れた場合は、最後の id を Last-Event-ID ヘッダーに入れて再接続すれば、続きから受け取れます。ストリームを閉じてもターンは動き続けるので、何も失われません。

ステップ3:消費を承認する

ask の承認モードでは、エージェントは何かを使う前に止まります。チャットの status は waiting_approval になり、approval イベントに費用が出ます。約4分以内に approve、always、reject のいずれかで答えます。

curl -s --max-time 150 -X POST "$API/chats/$CHAT/approval" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "decision": "approve" }'

2026年11月10日に Google が Flow Agent を変更して以来、答えは確認を求めたターンの続きになり(ここではターン1で、新しいターン2ではありません)、Google はそのターンがまだ開いている間、つまり確認から約4分以内しか受け付けません。それより遅い答えは 409 になります。メッセージを送り直すか、ステップ7でプロジェクトを approval: "auto" にして、エージェントが確認しないようにしてください。以下の実行はこの変更の前に記録したもので、答えによってターン2が始まっています。また、ツール名(generate_video_from_text)は現在 generate_image と generate_video として返されます。

答えるとエージェントが作業を再開します。

{
  "chatId": "c-u12345-email:[email protected]:74262ac8-...-bot:google-flow",
  "email": "[email protected]",
  "turn": 2,
  "status": "running"
}

開いたストリームでは、ターン2が動画をキューに入れ、画像を2枚作り、約30秒以内に終わりました。エージェントの choices(Option 1、Option 2)は、Google Flow のウェブアプリが結果ごとに表示するタイルです。

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 は承認したうえでプロジェクトを auto モードに切り替えるので、そのプロジェクトのどのチャットでもエージェントは確認しなくなります。reject は却下で、ステップ5で使っています。確認を待っている間に新しいメッセージを送ると 409 になります。先に確認に答えてください。

ステップ4:メディアを受け取る

画像はターンが終わった時点でできあがっています。動画は普通その1〜2分後に完成し、完成するとストリームが動画の2つ目の media イベントを送ります。今回はターンの終了から1分足らずで届きました。

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}

リンクが新しいうちに、各 url をダウンロードします。

curl -s -L -o mug-steam.mp4 "https://flow-content.google/video/5732c66d-...?Expires=...&Signature=..."

リンクは Google を指していて、発行から約6時間で期限が切れます。新しいリンクは GET /agent/chats/chatId でチャットを読み直すか、referenceId を使って GET /assets/mediaGenerationId で1件ずつ取得します。referenceId は、POST /images、POST /videos、次のエージェントへのメッセージで referenceImage_N や referenceVideo_1 としても使えます。画像2枚と 1280×720 の動画は例にあります。

この実行で使ったのは10クレジットです。Nano Banana 2.1 の画像2枚はこのアカウントのプランでは0クレジット、6秒の Omni 1.1 Flash の動画が10クレジットでした。

ステップ5:続ける、または修正する

次のメッセージを同じチャットに送ります。Google が会話を保持しているので、エージェントは「その動画」がどれかを分かっています。

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." }'

"turn": 3 で 202 が返り、エージェントは今度は12クレジットの許可を求めました。

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"}

動画はもう手元にあったので、却下しました。

curl -s --max-time 150 -X POST "$API/chats/$CHAT/approval" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "decision": "reject" }'

ターン4は返信だけで終わり、新しい画像や動画はなく、クレジットも使われませんでした。

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"}

ターンの実行中にメッセージを送ると 409 になるので、先に turn イベントを待ってください。エージェントの選択肢から1つを選ぶには、Google Flow のウェブアプリと同じように、その選択肢のテキストを次のメッセージとして送ります。

ステップ6:チャットの読み取り、一覧、名前の変更、削除

チャット全体はいつでも Google から読めます。各ターンには、あなたのメッセージ、エージェントが行ったすべてのこと、新しいリンク付きのメディアが入っています。

curl -s "$API/chats/$CHAT" -H "Authorization: Bearer $USEAPI_TOKEN"

4ターン後のチャット(agent の項目と media は省略、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 が自動で付けました。何も動いていないときの status は idle で、エージェントが承認を待っている間は pendingApproval に費用が入ります。?media=false を付けると、リンクを更新しない分だけ速く読めます。

アカウントのチャットを、最新のやり取りが新しい順に一覧します。一覧は Google から取得するので、同じプロジェクトで Google Flow のウェブアプリから始めたチャットも含まれ、chatId をなくしたときもここから見つけられます。

curl -s "$API/chats?email=$EMAIL" -H "Authorization: Bearer $USEAPI_TOKEN"

チャットの名前を変更します。新しいタイトルは 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"
}

変更後の一覧:

{
  "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
    }
  ]
}

チャットの会話を削除します。本文なしの 204 が返り、チャットは一覧と Google Flow のウェブアプリから消えます。チャットで作った画像と動画はプロジェクトに残ります。

curl -s -X DELETE "$API/chats/$CHAT" -H "Authorization: Bearer $USEAPI_TOKEN"

ターンの実行中は、名前の変更と削除は 409 になります。

ステップ7:承認、指示、デフォルトモデルの設定

Google Flow のプロジェクトにはそれぞれエージェントの設定があり、Google Flow のウェブアプリのエージェントパネルと同じものです。GET /agent/settings は設定を読み、アカウントの Google のプランで使える画像と動画のモデルを、そのプランでの画像1枚・動画1本の費用とともに一覧します。

curl -s "$API/settings?email=$EMAIL" -H "Authorization: Bearer $USEAPI_TOKEN"

PUT /agent/settings は送ったフィールドだけを変更します。実行の前に、ask モードとデフォルトを設定しました。

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 }
  }'

レスポンスは変更後のプロジェクトの設定です。

{
  "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 はそのアカウントのプランでの画像1枚・動画1本の最低費用なので、長い動画や解像度の高い動画はもっとかかります。今回の6秒・720p の Omni 1.1 Flash の動画は10、8秒の修正版なら12でした。お使いのプランでは数字が違うこともあります。設定のフィールド:

  • approval:ask(エージェントが止まって費用を示す)または auto(確認せずに使う)。
  • instructions:プロジェクトのすべてのチャットでエージェントが従う常設の指示を最大3つ。それぞれに参照画像を付けられます。配列はプロジェクトの指示を置き換えるので、全部まとめて送ってください。
  • imageDefaults と videoDefaults:メッセージで特に指定がないときにエージェントが使うモデル、アスペクト比、枚数・本数。models から選びます。

設定は、Google Flow のウェブアプリでのチャットも含め、プロジェクトのすべてのチャットに適用されます。

AI アシスタントから同じことをする

ホスト型の Google Flow MCP サーバーは、Claude Code、Cursor、VS Code などの MCP クライアントに同じチャットを12個のツールとして提供し、インストールは何も要りません。Claude Code では:

claude mcp add --transport http useapi-google-flow https://api.useapi.net/v1/google-flow/mcp --header "Authorization: Bearer YOUR_API_TOKEN"

あとはアシスタントに、マグの商品写真を普通の言葉で頼むだけです。アシスタントは flow_agent_chat で依頼を送り、クレジットを使いたいというエージェントの確認に flow_agent_answer_approval で答えます。サーバーは公式の MCP Registry に net.useapi/google-flow として登録されています。

先に完成したチャットクライアントを見たい場合は、ライブデモを開いてください。API トークンを貼り付けてアカウントを選べば、画像と動画をチャットの中に表示しながらエージェントとチャットでき、添付、承認カード、設定も使えます。ソースはビルド不要の小さなファイル5つで、GitHub の google-flow-api/demo にあり、Agent ライブデモのページで各機能と API 呼び出しの対応を説明しています。

例

この実行で作られたもので、手を加えていません。プロンプトは、こちらの依頼をもとにエージェント自身が書いたものです。

Nano Banana 2.1 » セージグリーンのマグの商品写真2枚(ターン2)
Google Flow Agent の結果:やわらかな朝の光の中、明るいオーク材のテーブルに置かれたマットなセージグリーンのセラミックマグ。Nano Banana 2.1 で生成
Option 1、「Ceramic coffee mug on table」
Google Flow Agent の結果:朝日の中、コーヒーの入ったセージグリーンのマグと真鍮のスプーン、開いた本のクローズアップ。Nano Banana 2.1 で生成
Option 2、クローズアップ

どちらも 1024×1024 の JPEG で、このアカウントのプランでは0クレジットです。

Omni 1.1 Flash » マグから湯気が立ちのぼる6秒の動画(ターン2)

1280×720、音声付き、6秒、10クレジット。

関連チュートリアル:Google Flow API で作る Veo 3.1 の動画、Omni Flash で作る音声付きの動画、Google Flow API で作る Nano Banana の画像。

よくある質問

  • Google Flow Agent の API はありますか? useapi.net ならあります。Agent API でチャットを始め、返信を Server-Sent Events でストリーミングし、承認に答え、画像と動画を受け取れます。無料アカウントを含むすべての Google AI のプランで使えます。Google は Flow Agent を Google Flow のウェブアプリの中でしか提供しておらず、独自の公開 API はありません(2026年11月時点)。
  • Google Flow Agent とのチャットにはいくらかかりますか? useapi.net では、チャット自体は Flow クレジットを使わず、エージェントが作るものに Google Flow の通常の料金がかかります。その料金は使う前に ask モードで表示されます。今回の6秒・720p の Omni 1.1 Flash の動画は、Google AI Ultra $199.99 で $0.08、公式の Gemini API では $0.61 です(2026年11月時点)。
  • Google Flow のウェブアプリで始めたチャットは API に出てきますか? useapi.net では、同じプロジェクトにあれば出てきます。GET /agent/chats で一覧でき、上のどのエンドポイントも使えます。API で始めたチャットもウェブアプリに表示されます。エージェント用以外のプロジェクトで作業するには、GET /assets/projects/email の projectId を渡します。
  • ストリームを開いておく代わりに webhook を使えますか? useapi.net なら使えます。POST /agent/chats、メッセージの呼び出し、承認の呼び出しに replyUrl を渡すと、ターンの終了時に API がそのターンのメッセージ、メディア、状態、未回答の承認を1回の POST で送ります。動画はたいていまだ queued の状態で届くので、リンクは GET かストリームの media イベントで取得してください。
  • 制限はありますか? useapi.net では、1つのチャットは1ターンずつ進み、1つのアカウントで同時に動くのは最大3ターン、1ターンは最長10分です。これは Google 自身の制限です。Google はアカウントごとの1日のエージェントメッセージ数にも上限を設けていますが、数は公開していません。上限に達すると、API はそのアカウントに UTC の午前0時まで 429 を返します。制限をご覧ください。

おわりに

ご質問は Discord サーバー または Telegram チャンネルへどうぞ。

コード例は GitHub リポジトリにあり、demo/ にはエージェントのチャットクライアントも入っています。

AI アシスタントに Google Flow Agent とのチャットを任せることもできます。ホスト型の Google Flow MCP サーバーは、お使いの Google Flow アカウントで Claude Code、Cursor、VS Code から使えます。

API を使い始める

月額15ドルのサブスクリプション1つで、useapi.net のすべての API を使えます。トークン1つで、すべてのサービスに対応します。各サービスにご自身のアカウントを最大3つまで接続でき、REST API、負荷分散、ポーリングは useapi.net が担当します。アカウントを増やしたい場合は、サブスクリプションを1つ追加するごとに月額10ドルで、各サービスのアカウントが3つずつ増えます。

登録する — 月額15ドル 暗号資産で支払う

海外で使えるクレジットカードがない場合は、暗号資産で登録することもできます(暗号資産での支払いは返金できません)。料金とボリュームプランはサブスクリプションのページをご覧ください。Stripe でお支払いの場合、初回購入から14日以内で、成功した生成が50回未満であれば全額返金されます。すでに登録済みの場合は、新たに購入せず Stripe カスタマーポータルで数量を変更してください。