ChatGPT na bolsa brasileira: OAuth2 e GPT Actions com a Bolsai
Tutorial completo para transformar um Custom GPT em analista de ações brasileiras com dados em tempo real da B3. O fluxo combina GPT Actions, a especificação OpenAPI pública da bolsai e OAuth2 com login Google. No final, perguntas como "qual o P/L da PETR4?" ou "top 5 maiores pagadores de dividendos do Ibovespa?" passam a ser respondidas pelo ChatGPT com dados verificáveis em vez de chutes do modelo.
O que GPT Actions adiciona ao ChatGPT
GPT Actions permite que um Custom GPT chame APIs externas durante a conversa. Combinada com OAuth2, cada usuário do GPT autentica com sua própria conta na API consumida, sem compartilhar chaves. A bolsai expõe um servidor OAuth2 compatível com o padrão da OpenAI e um arquivo OpenAPI pronto para importação. O resultado é um ChatGPT que consulta cotação, fundamentos, dividendos e dados macro da B3 em tempo real.
Sem Actions, o ChatGPT só sabe o que estava no conjunto de treinamento e o que o usuário cola na conversa. Para qualquer pergunta sobre cotação atual da PETR4, P/L do trimestre passado da VALE3 ou dividendos pagos pela TAEE11 nos últimos 12 meses, o modelo precisa adivinhar ou recusar. Com GPT Actions ativado, a mesma pergunta dispara uma chamada HTTP ao endpoint correspondente da bolsai e o modelo recebe a resposta JSON como contexto antes de redigir a resposta final.
A integração via OAuth2 é o que diferencia uma demo experimental de uma instalação utilizável por outros. Em vez de codar uma chave de API dentro do system prompt (visível a qualquer um que consiga extrair o prompt), o GPT pede ao usuário para fazer login com Google. Após o consentimento, a OpenAI guarda um access token cifrado e usa ele em todas as chamadas seguintes. Cada usuário fica isolado dentro do próprio plano da bolsai e os limites de rate respeitam o tier individual.
Por que GPT Actions em vez de upload manual de chave
O ChatGPT historicamente oferece duas formas de conectar APIs em GPTs customizados: API Key estático e OAuth2. A primeira opção parece mais simples no início, mas tem três problemas que se acumulam quando o GPT é compartilhado com outras pessoas.
| Aspecto | API Key estática | OAuth2 (recomendado) |
|---|---|---|
| Compartilhamento entre usuários | Mesma chave para todos | Cada usuário tem sua chave |
| Rate limit | Compartilhado por todos | Por conta individual |
| Revogação | Quebra para todos ao revogar | Por usuário |
| Custo dos dados | Concentrado em quem publicou | Distribuído por consumo real |
| Publicação na GPT Store | Restrição em GPTs públicos | Permitido |
Para um GPT pessoal usado apenas pelo criador, qualquer opção funciona. Para um GPT que vá ser compartilhado com colegas, equipe de research ou alunos, OAuth2 é o caminho honesto: cada pessoa consome a partir da própria conta na bolsai, com o próprio tier e os próprios créditos.
Pré-requisitos
Três contas precisam estar prontas antes de começar. Nenhuma exige cartão de crédito imediatamente, mas a criação de Custom GPTs exige assinatura ChatGPT Plus.
- Conta ChatGPT Plus ativa. Custom GPTs e Actions estão restritos a contas pagas (Plus, Team, Enterprise ou Edu). A assinatura Plus custa US$ 20/mês na data deste tutorial.
- Conta gratuita na bolsai. Acesse usebolsai.com, faça login com Google e copie a sua chave de API do painel. O plano gratuito (200 requisições/dia) é suficiente para testar o fluxo completo antes de decidir sobre o upgrade para Pro.
- Acesso à URL pública da especificação OpenAPI. A bolsai publica a especificação completa em
https://api.usebolsai.com/openapi.json. Não é necessário baixar antes; o ChatGPT importa a URL diretamente.
Vale ler também a página da integração de IA da bolsai, que centraliza os recursos para LLMs (MCP, OAuth2 e exemplos de prompts). A página será referência ao longo do tutorial para detalhes do endpoint OAuth2.
Passo 1: Criar o Custom GPT
Dentro do ChatGPT, abra o menu lateral e clique em "Meus GPTs", depois em "Criar um GPT". Na aba "Configurar" (não use a aba "Criar", que tenta gerar tudo via prompt natural), preencha os campos principais.
- Nome: "Analista B3" (ou qualquer nome descritivo).
- Descrição: "Consulta cotações, fundamentos e dividendos de ações e FIIs brasileiros em tempo real via API bolsai."
- Instruções (system prompt): bloco de texto que define persona, regras e formato de resposta. Veja o template abaixo.
- Capacidades: deixe marcado apenas "Web Browsing" se quiser fallback para notícias. "Code Interpreter" não é necessário para este caso de uso. "Image Generation" pode ser desativado.
- Ações: ainda em branco; será configurado nos passos seguintes.
O system prompt define o comportamento do agente. Um prompt vago gera respostas vagas; um prompt estruturado com regras explícitas reduz alucinação e mantém o output em formato auditável. O template abaixo foi testado em produção e cobre as quatro dimensões clássicas de análise fundamentalista.
# Instruções (system prompt) do Custom GPT
Você é um analista de ações brasileiras com acesso à API
bolsai através de actions. Seu papel é responder perguntas
sobre cotação, fundamentos, dividendos e FIIs da B3 usando
dados verificáveis retornados pela API.
# Regras
1. SEMPRE chame as actions da bolsai para dados de mercado.
Nunca invente números. Se a action falhar, informe ao
usuário em vez de chutar.
2. Tickers brasileiros têm 4 letras + 1 dígito (PETR4, VALE3,
ITUB4, B3SA3). FIIs terminam em 11 (HGLG11, XPLG11).
3. Cite SEMPRE a data de referência dos dados (campo
reference_date ou trade_date da resposta).
4. Para perguntas comparativas, sempre busque todos os
tickers mencionados antes de comentar.
5. NÃO faça recomendação direta de compra ou venda. Use
linguagem descritiva: "múltiplo abaixo da média histórica",
"endividamento elevado para o setor", "DY acima da mediana".
# Formato de resposta
- Comece com 1 frase de resumo (a tese central).
- Apresente os números em tabela quando houver mais de um
ticker ou indicador.
- Liste os endpoints chamados ao final, em itálico, para
rastreabilidade.
# Limites
- Dados oficiais de B3, CVM e BCB. Cobertura: 350+ ações,
400+ FIIs, 27 indicadores fundamentalistas.
- Histórico fundamentalista cobre até 11 anos no plano Pro.
- O agente não dá recomendação de investimento.
Passo 2: Importar a especificação OpenAPI da bolsai
Com o GPT em modo de edição, role até a seção "Ações" no final da página e clique em "Criar nova ação". O ChatGPT vai abrir um formulário com três blocos: autenticação, schema e privacidade. Comece pelo schema.
No campo "Schema", clique em "Importar de URL" e cole a URL pública da especificação da bolsai.
A OpenAI processa o arquivo, lista todos os endpoints disponíveis e mostra qualquer aviso de validação. A especificação da bolsai segue OpenAPI 3.1, padrão aceito sem ajustes pelo ChatGPT. Endpoints públicos como /api/v1/health ficam acessíveis sem autenticação, mas a maior parte da superfície (fundamentos, cotações, dividendos, FIIs, macro) exige Bearer token, que será configurado no passo seguinte.
Importação bem-sucedida mostra algo como "Found 28 operations" com lista contendo get_fundamentals, get_dividends, get_stock_quote, get_fii_data, screen_stocks, list_companies, entre outros. Se aparecer aviso sobre servers, confirme que a URL base na especificação é https://api.usebolsai.com. Esse aviso é cosmético em alguns casos, mas vale checar.
Passo 3: Configurar OAuth2
Ainda na tela da action, no bloco "Autenticação" no topo, escolha "OAuth" em vez de "API Key" ou "Nenhuma". O ChatGPT mostra um formulário com seis campos obrigatórios. Preencha exatamente assim:
O Client ID e Client Secret são valores compartilhados públicos porque a segurança real do fluxo vem do redirecionamento Google: nenhuma chave é emitida sem que o usuário passe pelo login Google e consinta. O scope read é semântico: a bolsai não diferencia escopos no fluxo atual, e somente leitura de dados de mercado é exposta via OAuth2.
Importante: ao salvar a action, o ChatGPT exibe um "Callback URL" no topo do formulário (algo como https://chat.openai.com/aip/g-xxxx/oauth/callback). Esse valor é gerado automaticamente pela OpenAI e não precisa ser cadastrado em lugar nenhum no lado da bolsai: o servidor OAuth2 aceita qualquer redirect_uri vindo do ChatGPT enquanto o fluxo respeitar o protocolo. O comportamento é diferente de provedores OAuth tradicionais (Google, GitHub) onde o redirect_uri precisa ser whitelistado previamente.
Salve a action. O GPT volta para a tela de edição com a action habilitada. Antes de testar, vale clicar em "Salvar" no canto superior direito da página inteira do GPT para garantir que as alterações persistem.
Passo 4: Testar com prompts práticos
O painel de preview do ChatGPT mostra uma versão do GPT que conversa com você antes da publicação. Na primeira pergunta que dispare uma action, o ChatGPT abre uma janela de consentimento ("Sign in with Bolsai") com o botão de login. Clicar redireciona para o Google, faz a autenticação, e devolve o usuário ao ChatGPT já autorizado. A janela só aparece uma vez por sessão.
Os três prompts abaixo cobrem os casos mais comuns e validam que o fluxo está funcionando ponta a ponta.
Prompt 1: cotação e fundamentos de uma ação
# Pergunta do usuário
Qual o P/L atual da PETR4 e como ele se compara com a
média dos últimos 5 anos?
# O que o GPT faz por baixo:
# 1. get_fundamentals(ticker="PETR4")
# -> pl=5.32, pvp=1.42, roe=26.6, market_cap=...
# 2. get_fundamentals_history(ticker="PETR4", limit=20)
# -> serie trimestral de P/L dos ultimos 5 anos
# 3. modelo calcula media e responde
# Resposta esperada (resumida):
O P/L atual da PETR4 (referencia 2026-03-31) e de 5.32x,
abaixo da media dos ultimos 5 anos (~7.8x). O indicador
reflete preco descontado em relacao ao lucro acumulado em
12 meses, contexto influenciado pela alta do petroleo e
politica de dividendos.
| Indicador | Atual | Media 5a |
|-----------|-------|----------|
| P/L | 5.32 | 7.81 |
| P/VP | 1.42 | 1.65 |
| ROE | 26.6% | 24.2% |
*Endpoints chamados: /fundamentals/PETR4,
/fundamentals/PETR4/history?limit=20*
Prompt 2: ranking de pagadores de dividendos
# Pergunta do usuário
Liste as 5 maiores pagadoras de dividendos do Ibovespa,
ordenadas por dividend yield TTM. Inclua a coluna de payout.
# O que o GPT faz por baixo:
# 1. screen_stocks(dividend_yield_gt=8, index="IBOV",
# sort="dividend_yield_desc", limit=10)
# 2. get_dividends(ticker) para os 5 primeiros,
# para obter pagamentos detalhados se pedidos
# 3. modelo monta a tabela
# Resposta esperada:
Top 5 do Ibovespa por DY TTM, com dados de 2026-04-30:
| Ticker | DY TTM | Payout est. | Setor |
|--------|---------|-------------|-------------|
| TAEE11 | 11.8% | 98% | Energia T. |
| CMIG4 | 10.3% | 78% | Energia D. |
| VIVT3 | 9.7% | 82% | Telecom |
| BBAS3 | 9.2% | 42% | Bancos |
| ITSA4 | 8.9% | 62% | Holding |
DY elevado nao implica investimento melhor: payout proximo
de 100% reduz capacidade de reinvestimento e amplia
sensibilidade ao ciclo. TAEE11, por exemplo, distribui
quase todo o lucro como politica explicita.
*Endpoint chamado: /screener?dividend_yield_gt=8&index=IBOV&sort=dividend_yield_desc&limit=10*
Prompt 3: histórico de cotação
# Pergunta do usuário
Como a WEGE3 se comportou nos ultimos 6 meses? Maxima,
minima e variacao total.
# O que o GPT faz por baixo:
# 1. get_stock_history(ticker="WEGE3", limit=130)
# 2. modelo calcula max/min/variacao a partir
# da serie adjusted_close
# Resposta esperada:
WEGE3 entre 2025-11-11 e 2026-05-10 (130 pregoes):
- Preco inicial: R$ 37.85
- Preco final: R$ 42.18
- Variacao total: +11.4%
- Maxima: R$ 44.12 (2026-03-04)
- Minima: R$ 35.67 (2025-12-19)
- Volatilidade anualizada estimada: ~28%
O movimento positivo reflete recuperacao apos a queda
de dezembro e estabilizacao do cambio durante o trimestre.
*Endpoint chamado: /stocks/WEGE3/history?limit=130*
Em todos os casos, o ChatGPT cita a data de referência (regra do system prompt), evita a recomendação explícita de compra e lista os endpoints consultados em itálico para auditoria. Esse último item é o que diferencia um GPT confiável de um GPT que parece autoritativo mas não fornece rastreabilidade. Para entender a metodologia por trás de cada indicador retornado pela API, vale ler o guia de análise fundamentalista para iniciantes.
Comece a criar seu Custom GPT em minutos. Plano gratuito com 200 requisições/dia cobre uso pessoal sem cartão.
Criar conta grátisLimitações reais que valem conhecer
Um GPT acoplado à bolsai entrega muito, mas opera dentro de quatro limites concretos. Documentar cada um antecipa frustração e ajuda a desenhar o produto certo.
Rate limit do tier
O plano gratuito da bolsai libera 200 requisições por dia, resetado à meia-noite UTC. Um GPT com prompt longo (3 a 4 actions em paralelo) gasta entre 6 e 12 requisições por turno de conversa. Para uso pessoal e prototipagem, o tier free aguenta o dia inteiro. Em uso intensivo (10+ consultas/hora) ou compartilhado com várias pessoas, o plano Pro (R$ 29/mês, 10.000 requisições/dia) elimina o gargalo. O header X-RateLimit-Remaining aparece em toda resposta e o GPT é instruído pelo prompt a parar quando der 429.
Cobertura de dados
A bolsai cobre 350+ ações listadas na B3, 400+ FIIs, indicadores fundamentalistas (27 métricas), dividendos, cotações OHLC, COTAHIST de 1986 em diante e dados macro (Selic, CDI, IPCA, USD/BRL). Não cobre BDRs (Brazilian Depositary Receipts), opções, mercado a termo, criptomoedas e ações listadas fora do Brasil. Pedidos como "qual o P/L da AAPL" ou "Bitcoin hoje" precisam ser respondidos com "fora do escopo" pelo system prompt; vale incluir essa regra na primeira iteração para evitar respostas chutadas.
Limite de operações por GPT
A OpenAI limita um único GPT a aproximadamente 30 operações importadas via OpenAPI. A bolsai expõe cerca de 28 endpoints, o que cabe dentro do limite com folga. Caso o usuário queira combinar a bolsai com outras APIs (Plaid, ETLs internas), vale criar GPTs separados em vez de empilhar tudo num só.
Latência e timeout
Cada action no ChatGPT tem timeout de aproximadamente 45 segundos. A bolsai responde p95 abaixo de 250 ms para endpoints com cache (cotações, fundamentos), e até 1.5 s para queries mais pesadas (screener com muitos filtros, histórico longo). Em encadeamento de 5 actions, o tempo total fica abaixo dos 5 segundos no pior caso. Não é um problema na prática, mas vale evitar pedir ao GPT "tudo de todas as ações do Ibovespa" em um único turno; quebra em sub-pedidos é a abordagem correta.
Comparação: GPT Actions vs MCP vs API direta
Há três caminhos para conectar um LLM aos dados da bolsai. Cada um tem trade-offs distintos.
| Caminho | Quando faz sentido | Esforço de setup |
|---|---|---|
| GPT Actions (este tutorial) | Custom GPT no ChatGPT para uso pessoal ou compartilhado, sem código | 10–15 min |
| MCP (Model Context Protocol) | Claude Desktop, Cursor ou agente Python com SDK Anthropic; padrão multi-LLM | 5–10 min |
| API REST direta (httpx, requests) | Pipelines determinísticos, dashboards, ETLs, jobs agendados | 2 min |
A escolha não é exclusiva: muitos times usam os três simultaneamente. GPT Actions para consulta conversacional, MCP para análise estruturada em Claude, API direta para automação noturna. O post sobre agente de IA para análise de ações com Claude mostra a versão MCP, e o guia de API gratuita da B3 cobre a versão Python direta.
FAQ
Preciso do ChatGPT Plus para usar GPT Actions com a bolsai?
Sim. Custom GPTs com Actions exigem uma assinatura paga do ChatGPT (Plus, Team, Enterprise ou Edu). A camada gratuita do ChatGPT permite conversar com GPTs criados por terceiros, mas não criar GPTs próprios nem adicionar Actions. A assinatura ChatGPT Plus custa US$ 20 por mês na data de publicação. A bolsai cobra separadamente pelo acesso aos dados: plano gratuito com 200 requisições/dia ou Pro a R$ 29/mês com 10.000 requisições/dia.
O ChatGPT armazena minha chave de API da bolsai?
Não diretamente. No fluxo OAuth2, o ChatGPT recebe um access token Bearer que tecnicamente é a sua chave de API (sk_...), armazenado de forma cifrada pela OpenAI dentro do escopo do Custom GPT. Cada usuário que conversa com o GPT passa pelo seu próprio fluxo de login Google, recebe uma chave individual associada à conta dele na bolsai, e nenhum dado de outro usuário fica acessível. Para revogar o acesso, basta entrar no painel da bolsai e remover a chave correspondente.
Quais limites de uso o GPT enfrenta ao consultar a bolsai?
O limite de requisições é o do plano da conta bolsai do usuário autenticado. No plano gratuito são 200 requisições por dia; no Pro, 10.000 por dia. Uma análise típica do tipo dois ou três tickers comparados consome entre 6 e 12 requisições. O ChatGPT em si limita ações por turno a aproximadamente 10 chamadas paralelas e a janela de resposta a 45 segundos. Se a API responder 429, o GPT trata como erro e mostra a mensagem ao usuário.
O Custom GPT funciona em português?
Sim. As instruções (system prompt) podem ser escritas em português, e o GPT responde no idioma usado pelo usuário. As descrições dos endpoints na especificação OpenAPI da bolsai estão majoritariamente em português, o que ajuda o modelo a interpretar pedidos como "qual o P/L da PETR4" ou "top 5 maiores pagadores de dividendos do Ibovespa" sem ambiguidade. Tickers brasileiros (PETR4, VALE3, ITUB4, B3SA3) são reconhecidos automaticamente pelo resolver da API.
Posso publicar o GPT na GPT Store?
Sim, com ressalvas. A GPT Store aceita GPTs com OAuth2 desde que o domínio do callback esteja verificado e o fluxo respeite as diretrizes da OpenAI sobre privacidade e logging. O usuário final que instalar o GPT precisará passar pelo próprio login Google na bolsai antes do primeiro uso. Vale lembrar que publicar um GPT que faz recomendação direta de compra ou venda de ações pode infringir as regras da CVM e da própria OpenAI; mantenha o GPT em modo educacional e informativo.
Leia também
Agente de IA para análise de ações com Claude e MCP
TutorialMCP Server para B3: Claude Desktop com dados de ações
GuiaAPI gratuita da B3: guia completo em Python
ComparaçãoAlternativa ao Fundamentus: API oficial da B3
Comparaçãobolsai vs brapi: comparação honesta das APIs da B3
GuiaAnálise fundamentalista para iniciantes
Próximos passos
O fluxo cobre o caminho mais curto entre instalar o ChatGPT Plus e ter um analista IA de ações brasileiras funcionando. Três extensões valem investigar depois da primeira execução: (1) ampliar o system prompt com regras setoriais (bancos não usam EV/EBITDA, FIIs têm contabilidade própria); (2) adicionar exemplos de prompts curados na seção "Conversation starters" do GPT para guiar usuários novos; (3) publicar o GPT na GPT Store após validar com 5 a 10 pessoas próximas. A página de integrações de IA da bolsai centraliza os links de OpenAPI, MCP e tutoriais relacionados.
por bolsai · 11 de maio de 2026. Conteúdo educacional. Tickers e exemplos citados não constituem recomendação de compra ou venda. Dados de mercado têm data de referência variável; verifique sempre os valores retornados pela API antes de qualquer decisão. A bolsai é independente da OpenAI e ChatGPT é marca registrada da OpenAI.