Como conversar com o Google Flow Agent pela Google Flow API

8 min de leitura • 17 de outubro de 2026 (10 de novembro de 2026)

A useapi.net é uma API de terceiros. Não tem afiliação com o Google nem é endossada por ele.

Sumário

  1. Introdução
  2. Antes de começar
  3. Como funciona um chat
  4. Passo 1: Inicie um chat
  5. Passo 2: Receba a resposta em streaming
  6. Passo 3: Aprove o gasto
  7. Passo 4: Baixe as mídias
  8. Passo 5: Continue ou revise
  9. Passo 6: Leia, liste, renomeie e exclua chats
  10. Passo 7: Configurações de aprovação, instruções e modelos padrão
  11. O mesmo a partir de um assistente de IA
  12. Exemplos
  13. Perguntas frequentes
  14. Conclusão

Introdução

A Google Flow API da useapi.net deixa o seu código conversar com o Google Flow Agent, o assistente criativo que vem dentro do Google Flow: você inicia um chat com um único curl, recebe as respostas em streaming, aprova o que ele quer gastar e baixa as imagens e os vídeos que ele faz. O Google oferece o Flow Agent só dentro do app web do Google Flow, sem API pública (em novembro de 2026). A useapi.net é uma API de terceiros, sem afiliação com o Google, e o chat roda na sua conta do Google Flow, gratuita ou paga. Conversar com o agente não gasta créditos, e as imagens e os vídeos que ele faz custam o preço normal do Google Flow.

Este guia é uma execução real, do começo ao fim. Pedimos ao agente duas fotos de produto de uma caneca de cerâmica e um vídeo de 6 segundos dela, aprovamos o gasto, baixamos as mídias, depois pedimos uma revisão e recusamos essa revisão. Todas as respostas abaixo são dessa execução, resumidas e com o e-mail da conta trocado.

O agente planeja o trabalho sozinho. Ele escolhe as ferramentas e os modelos, guiado pelas configurações do projeto, e guarda a conversa inteira do lado do Google, então um chat pode continuar horas ou dias depois com todo o contexto. A visão geral do Agent cobre todas as regras e limites.

Antes de começar

Você precisa de um token de API da useapi.net e de uma conta do Google conectada pela configuração do Google Flow. O agente funciona em qualquer plano do Google AI, inclusive numa conta gratuita, e o que ele consegue gerar segue o plano da conta, igual ao POST /images e ao POST /videos.

Cada turno usa um captcha, resolvido pela API com os seus provedores de captcha ou com os créditos de captcha grátis da sua primeira conta. Você não precisa enviar nada para isso.

Os passos usam curl, jq e três variáveis de shell:

export USEAPI_TOKEN="user:12345-..."   # o seu token de API da useapi.net
export EMAIL="[email protected]"           # uma conta do Google Flow conectada
API="https://api.useapi.net/v1/google-flow/agent"

Todas as chamadas abaixo também estão na coleção do Postman.

Como funciona um chat

Um turno é uma mensagem sua e tudo o que o agente faz em resposta. Um chat roda um turno por vez:

  1. POST /agent/chats inicia um chat e responde 202 com um chatId.
  2. GET /agent/chats/chatId/stream acompanha o agente ao vivo por Server-Sent Events.
  3. Quando o agente quer gastar créditos, ele para e pergunta. POST /agent/chats/chatId/approval responde.
  4. POST /agent/chats/chatId/messages envia a próxima mensagem.
  5. GET /agent/chats/chatId lê o chat inteiro, com links de mídia novos.

Passo 1: Inicie um chat

Envie o briefing em message. A chamada volta assim que o Google aceita o turno, o que normalmente leva alguns segundos e pode levar até uns 100 segundos, então dê ao curl um timeout de 150 segundos:

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

O nosso respondeu 202 em uns 10 segundos:

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

O chatId já identifica a conta e o projeto, então as próximas chamadas não precisam de nenhum dos dois. Ele contém : e @, então codifique-o para URL no caminho. Guarde as duas formas:

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

Sem projectId, o chat fica no projeto de agente da própria conta, criado no primeiro chat e com um nome como My Agents Work Fri, Oct 16, o que separa o trabalho do agente das suas outras mídias do Google Flow. Você também pode anexar até 7 imagens, um vídeo, 5 vozes e 7 personagens a qualquer mensagem, com a mesma sintaxe de menções @ do POST /videos. Veja POST /agent/chats.

Passo 2: Receba a resposta em streaming

Abra o stream com -N para os eventos aparecerem assim que chegam. O EventSource do navegador não consegue enviar o cabeçalho Authorization, então num app use fetch() ou qualquer cliente HTTP:

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

Um stream novo envia primeiro um evento chat, reproduz o histórico do chat e depois envia replayed. Tudo depois de replayed é ao vivo. Aqui o primeiro turno já tinha terminado quando conectamos, então ele veio na reprodução. O agente apresentou o plano e depois pediu permissão para gastar 10 créditos em 2 imagens e 1 vídeo (ui e outros campos longos omitidos):

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}

Os eventos que pedem alguma ação sua:

Evento O que significa
message Uma mensagem completa do agente: texto, raciocínio, chamadas de ferramenta e resultados
approval O agente pede permissão antes de gastar cost créditos do Flow
turn Um turno terminou: completed, waiting_approval ou failed com um error
media Uma imagem ou um vídeo que o agente fez, ou uma mudança de status, com a url quando completed

Um keepalive chega a cada 15 segundos. Um único stream cobre o chat inteiro, de turno em turno, então deixe-o aberto enquanto aprova e envia mensagens. Se ele cair, reconecte com o último id no cabeçalho Last-Event-ID e ele continua de onde parou. Um turno continua rodando quando você fecha o stream, então nada se perde.

Passo 3: Aprove o gasto

No modo de aprovação ask, o agente para antes de gastar qualquer coisa. O status do chat fica waiting_approval e o evento approval mostra o custo. Responda com approve, always ou reject em até uns 4 minutos:

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

Desde que o Google mudou o Flow Agent em 10 de novembro de 2026, a resposta continua o turno que fez o pedido (aqui o turno 1, não um novo turno 2), e o Google só a aceita enquanto esse turno ainda está aberto, uns 4 minutos depois do pedido. Uma resposta mais tardia recebe 409: envie a mensagem de novo, ou coloque o projeto em approval: "auto" no passo 7 para o agente nunca perguntar. A execução abaixo foi gravada antes da mudança, então a resposta dela iniciou o turno 2, e os nomes de ferramenta dela (generate_video_from_text) agora aparecem como generate_image e generate_video.

A resposta faz o agente voltar a trabalhar:

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

No stream aberto, o turno 2 colocou o vídeo na fila, fez as duas imagens e terminou em uns 30 segundos. As choices do agente (Option 1, Option 2) são os blocos que o app web do Google Flow mostra para cada resultado:

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 aprova e também muda o projeto para o modo auto, então o agente para de perguntar em todos os chats do projeto. reject recusa, como mostra o passo 5. Enquanto um pedido espera, uma nova mensagem recebe 409: responda o pedido primeiro.

Passo 4: Baixe as mídias

As imagens ficam prontas quando o turno termina. Os vídeos costumam ficar prontos um ou dois minutos depois, e o stream envia um segundo evento media para o vídeo quando isso acontece. O nosso chegou menos de um minuto depois do fim do turno:

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}

Baixe cada url enquanto ainda está válida:

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

Os links apontam para o Google e expiram umas 6 horas depois de emitidos. Leia o chat de novo com GET /agent/chats/chatId para ter links novos, ou pegue o link de um item em GET /assets/mediaGenerationId com o referenceId dele. O referenceId também serve como referenceImage_N ou referenceVideo_1 no POST /images, no POST /videos e na sua próxima mensagem ao agente. As duas imagens e o vídeo de 1280×720 estão em Exemplos.

A execução gastou 10 créditos: as duas imagens do Nano Banana 2.1 custaram 0 no plano desta conta, e o vídeo de 6 segundos do Omni 1.1 Flash custou 10.

Passo 5: Continue ou revise

Envie a próxima mensagem para o mesmo chat. O Google guarda a conversa, então o agente sabe qual é “o vídeo”:

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

Ele respondeu 202 com "turn": 3, e o agente pediu permissão de novo, desta vez para 12 créditos:

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

Já tínhamos o nosso vídeo, então recusamos:

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

O turno 4 terminou com uma resposta e nenhuma imagem ou vídeo novo, e nenhum crédito foi gasto:

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

Enviar uma mensagem enquanto um turno roda responde 409, então espere o evento turn primeiro. Para escolher uma das opções do agente, envie o texto da opção como a próxima mensagem, como faz o app web do Google Flow.

Passo 6: Leia, liste, renomeie e exclua chats

Leia o chat inteiro direto do Google a qualquer momento. Cada turno traz a sua mensagem, tudo o que o agente fez e as mídias com links novos:

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

O nosso chat depois dos quatro turnos (itens de agent e media resumidos, ui omitido):

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

O Google deu o título ao chat por conta própria. O status fica idle quando nada está rodando, e pendingApproval guarda o custo enquanto o agente espera. Passe ?media=false para uma leitura mais rápida, sem renovar os links.

Liste os chats de uma conta, com a atividade mais recente primeiro. A lista vem do Google, então ela também traz os chats iniciados no app web do Google Flow no mesmo projeto, e é assim que você encontra um chatId perdido:

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

Renomeie um chat. O novo título aparece também no app web do 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"
}

A lista passou a mostrar:

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

Exclua a conversa de um chat. A resposta é 204 sem corpo, o chat sai da lista e do app web do Google Flow, e as imagens e os vídeos que ele fez continuam no projeto:

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

Renomear e excluir respondem 409 enquanto um turno roda.

Passo 7: Configurações de aprovação, instruções e modelos padrão

Cada projeto do Google Flow tem configurações de agente, as mesmas do painel do agente no app web do Google Flow. GET /agent/settings lê essas configurações e também lista os modelos de imagem e de vídeo que o plano do Google da conta tem, com o custo de uma imagem ou de um vídeo nesse plano:

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

PUT /agent/settings muda só os campos que você envia. Antes da execução, definimos o modo ask e os padrões:

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

A resposta são as configurações do projeto depois da mudança:

{
  "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 é o menor custo de uma imagem ou de um vídeo no plano da conta, então um vídeo mais longo ou de resolução maior custa mais: o nosso vídeo de 6 segundos em 720p do Omni 1.1 Flash custou 10, e a revisão de 8 segundos teria custado 12. O seu plano pode mostrar outros números. Os campos das configurações:

  • approval: ask (o agente para e mostra o custo) ou auto (ele gasta sem perguntar).
  • instructions: até 3 instruções fixas que o agente segue em todos os chats do projeto, cada uma com imagens de referência opcionais. O array substitui as instruções do projeto, então envie a lista completa.
  • imageDefaults e videoDefaults: o modelo, a proporção e a quantidade que o agente usa quando a mensagem não diz outra coisa, escolhidos em models.

As configurações valem para todos os chats do projeto, inclusive os chats no app web do Google Flow.

O mesmo a partir de um assistente de IA

O servidor MCP do Google Flow hospedado dá ao Claude Code, ao Cursor, ao VS Code e a outros clientes MCP o mesmo chat em 12 ferramentas, sem nada para instalar. No Claude Code:

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

Depois é só pedir ao assistente as fotos da caneca com palavras simples. O assistente envia o briefing com flow_agent_chat e responde ao pedido do agente para gastar créditos com flow_agent_answer_approval. O servidor está no MCP Registry oficial como net.useapi/google-flow.

Para ver primeiro um cliente de chat completo, abra a demo ao vivo. Cole o seu token de API, escolha uma conta e converse com o agente, com as imagens e os vídeos dentro do chat, anexos, cartões de aprovação e configurações. O código-fonte são cinco arquivos pequenos, sem etapa de build, no GitHub em google-flow-api/demo, e a página da demo ao vivo do Agent liga cada recurso à chamada de API dele.

Exemplos

O que esta execução fez, sem edição. Os prompts são do próprio agente, escritos a partir do nosso briefing.

Nano Banana 2.1 » duas fotos de produto da caneca verde-sálvia (turno 2)
Resultado do Google Flow Agent: uma caneca de cerâmica verde-sálvia fosca numa mesa de carvalho claro, na luz suave da manhã, feita com o Nano Banana 2.1
Option 1, "Ceramic coffee mug on table"
Resultado do Google Flow Agent: close da caneca verde-sálvia com café, uma colher de latão e um livro aberto no sol da manhã, feito com o Nano Banana 2.1
Option 2, o close

As duas em JPEG de 1024×1024, 0 créditos no plano desta conta.

Omni 1.1 Flash » 6 segundos de vapor subindo da caneca (turno 2)

1280×720 com som, 6 segundos, 10 créditos.

Tutoriais relacionados: vídeo com Veo 3.1 pela Google Flow API, vídeo com áudio nativo no Omni Flash e imagens com o Nano Banana pela Google Flow API.

Perguntas frequentes

  • Existe uma API do Google Flow Agent? Pela useapi.net, sim: a Agent API inicia chats, transmite as respostas por Server-Sent Events, responde às aprovações e devolve as imagens e os vídeos, em qualquer assinatura do Google AI, inclusive numa conta gratuita. O Google oferece o Flow Agent só dentro do app web do Google Flow, sem uma API pública própria (em novembro de 2026).
  • Quanto custa conversar com o Google Flow Agent? Pela useapi.net, conversar não gasta créditos do Flow, e o que o agente faz custa o preço normal do Google Flow, que o modo ask mostra antes de qualquer gasto. O vídeo de 6 segundos em 720p do Omni 1.1 Flash desta execução sai por $0,08 no Google AI Ultra $199,99, contra $0,61 na Gemini API oficial (em novembro de 2026).
  • Os chats iniciados no app web do Google Flow aparecem na API? Pela useapi.net, sim, quando estão no mesmo projeto. GET /agent/chats lista esses chats, e todos os endpoints acima funcionam com eles. Os chats iniciados pela API também aparecem no app web. Passe o projectId de GET /assets/projects/email para trabalhar num projeto que não seja o do próprio agente.
  • Posso receber um webhook em vez de manter um stream aberto? Pela useapi.net, sim. Passe replyUrl no POST /agent/chats, na chamada de mensagens ou na de aprovação, e a API envia um POST com as mensagens, as mídias, o status e qualquer aprovação pendente do turno quando ele termina. Os vídeos costumam chegar ali ainda queued, então pegue os links deles pelo GET ou pelos eventos media do stream.
  • Quais são os limites? Pela useapi.net, um chat roda um turno por vez, uma conta roda no máximo 3 turnos ao mesmo tempo, e um turno dura até 10 minutos, que é o limite do próprio Google. O Google também limita as mensagens ao agente por conta por dia sem publicar o número, e a API responde 429 para essa conta até a meia-noite UTC. Veja Limites.

Conclusão

Visite o nosso servidor no Discord ou o canal no Telegram para qualquer dúvida de suporte.

Veja o nosso repositório no GitHub com exemplos de código, incluindo o cliente de chat do agente em demo/.

Um assistente de IA também pode conversar com o Google Flow Agent por você: o servidor MCP do Google Flow hospedado funciona com o Claude Code, o Cursor e o VS Code, na sua conta do Google Flow.

Comece a usar a API

Uma assinatura de US$ 15 por mês dá acesso a todas as APIs da useapi.net: um token, todos os serviços. Você conecta até 3 contas suas por serviço, e a useapi.net cuida da API REST, do balanceamento de carga e do polling. Precisa de mais contas? Cada assinatura extra custa US$ 10 por mês e acrescenta mais 3 contas por serviço.

Assinar — US$ 15/mês Pagar com cripto

Não tem cartão de crédito internacional? Você também pode assinar com criptomoedas (pagamentos em cripto não são reembolsáveis). Preços e planos de volume estão na página de assinatura. Pagando pelo Stripe, você recebe reembolso integral em até 14 dias após a primeira compra, se tiver menos de 50 gerações bem-sucedidas. Já é assinante? Altere a quantidade no portal do cliente Stripe em vez de comprar de novo.