API Gratuita da B3: Guia Completo para Desenvolvedores em 2026
Este guia consolida o que existe hoje em termos de api gratuita b3 para desenvolvedores brasileiros: por que a Bolsa não disponibiliza um endpoint público para pessoa física, quais provedores terceirizados cobrem essa lacuna, como obter uma chave de acesso em poucos minutos e como construir as primeiras integrações em Python, da cotação intradiária aos indicadores fundamentalistas, FIIs e séries macroeconômicas.
Por que a B3 não tem API oficial gratuita para pessoa física
Resposta direta: a B3 mantém um portal técnico chamado B3 for Developers, mas o acesso é direcionado a corretoras, bancos e clientes institucionais sob contrato comercial. Para desenvolvedores independentes e pessoa física, a única forma prática de consumir dados da Bolsa via API REST é por meio de provedores terceiros como bolsai e brapi, que normalizam fontes públicas (B3, CVM, BCB) em endpoints autenticados.
A B3 opera como infraestrutura de mercado, e seu modelo de receita inclui a venda de market data licenciado a vendors. O B3 for Developers publica especificações de FIX, ITCH e WebAPI, mas o cadastro pressupõe relacionamento contratual prévio. Não existe um botão "criar conta gratuita" análogo ao que se vê em APIs como Polygon ou Alpha Vantage.
Os dados em si são públicos: a própria B3 disponibiliza o COTAHIST com o histórico desde 1986, a CVM publica DFP e ITR de todas as companhias abertas, e o BCB libera as séries macro via SGS. O custo está no parsing. Formatos de largura fixa, encoding Latin-1, planos de contas que mudaram entre 2010 e 2025, ações reportadas em unidades, milhares ou milhões sem indicação explícita do multiplicador. Quem já tentou montar um dataset próprio sabe que cada uma dessas fricções consome dias de trabalho. As APIs gratuitas resolvem o problema entregando JSON limpo e versionado.
Principais APIs gratuitas da B3 em 2026
O mercado se consolidou em torno de duas opções principais para desenvolvedores que precisam de dados via REST, com algumas alternativas de nicho. A tabela abaixo resume os critérios mais consultados na hora de escolher.
| Provedor | Endpoint base | Free tier | Cobertura | Plano pago | MCP |
|---|---|---|---|---|---|
| bolsai | api.usebolsai.com | 200 req/dia, sem cartão | 350+ ações, 400+ FIIs, 27 indicadores TTM, dividendos, macro, screener | R$29/mês (10k req/dia) | Nativo |
| brapi | brapi.dev | 15k req/dia (sujeito a verificação) | Cotações, criptomoedas, módulos de valuation agregado, SDKs em Python e TS | Pro a partir de planos mensais | Não nativo |
| Dados de Mercado | dadosdemercado.com.br | Freemium limitado | Cotações e fundamentos básicos, foco em UI | Planos premium variáveis | Não |
| HG Brasil Finance | hgbrasil.com/finance | Cota gratuita por chave | Cotação, índices, conversão de moedas | Planos B2B | Não |
| B3 for Developers | developers.b3.com.br | Não há free tier público | Market data oficial, FIX, ITCH, pós-trade | Contrato institucional | Não |
Comparação honesta com a brapi
A brapi tem méritos claros que precisam ser reconhecidos. O serviço está no ar há mais tempo, possui SDKs oficiais publicados em Python e TypeScript, oferece guias de integração para Excel, Google Sheets, Notion e WordPress, e cobre criptomoedas no mesmo namespace de ações. O free tier nominal de 15.000 requisições por dia é mais alto que o da bolsai, ainda que a verificação possa adicionar fricção. Para projetos onde o foco é puxar cotação de fechamento, taxa de câmbio e cripto numa única chamada, a brapi resolve com menos atrito.
A bolsai se diferencia em três frentes específicas. Primeiro, profundidade fundamentalista: 27 indicadores calculados com normalização TTM, histórico trimestral de 11 anos, contas CVM brutas para quem quer recriar fórmulas próprias. Segundo, metodologia documentada: net income via conta CVM 3.11, patrimônio bancário via 2.07/2.08 em vez de 2.03, EBIT calculado como Resultado Bruto menos SG&A, com 96% de concordância com Fundamentus em dados frescos. Terceiro, MCP nativo: o servidor bolsai-mcp via uvx permite que agentes de IA façam consultas autenticadas sem código intermediário. A escolha entre as duas raramente é binária. Uma comparação detalhada, lado a lado, está em bolsai vs brapi.
Como obter uma API key da bolsai em dois minutos
O processo é deliberadamente curto. Acesse usebolsai.com, clique em "Entrar" e faça o login com Google. Não há formulário de cadastro intermediário, não há confirmação por e-mail, não há solicitação de cartão de crédito. Após o login, o painel exibe a API key começando com sk_. Essa chave dá acesso imediato a 200 requisições por dia em todos os endpoints públicos.
A chave deve ser tratada como senha. O padrão recomendado é armazená-la em variável de ambiente (BOLSAI_API_KEY) e nunca comitá-la no repositório. Para ambientes serverless, vault e secret managers como AWS Secrets Manager ou Doppler resolvem o caso. A documentação completa de autenticação, rate limit e formatos de resposta está em /docs.
Crie uma conta gratuita para obter sua API key. São 200 requisições por dia, sem cartão de crédito.
Criar conta gratuitaPrimeira requisição: cotação de uma ação em Python
Toda a interação com a api gratuita b3 da bolsai segue o mesmo padrão: requisição HTTPS para https://api.usebolsai.com/api/v1/ com o header X-API-Key. O exemplo a seguir usa a biblioteca httpx, que é mais moderna que a requests e tem suporte nativo a HTTP/2 e cliente assíncrono. A instalação é o pip padrão.
# pip install httpx
import os
import httpx
API_KEY = os.getenv("BOLSAI_API_KEY")
BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"X-API-Key": API_KEY}
# Cotação atual de PETR4
r = httpx.get(f"{BASE}/stocks/PETR4/quote", headers=HEADERS, timeout=10)
r.raise_for_status()
data = r.json()
print(f"Ticker: {data['ticker']}")
print(f"Preço: R${data['close']:.2f}")
print(f"Volume: {data['volume']:,}")
print(f"Data pregão: {data['trade_date']}")
Quatro linhas de código produzem o equivalente a abrir o home broker e copiar o último negócio do dia. O método raise_for_status() garante que erros HTTP (401 para chave inválida, 429 para rate limit, 404 para ticker inexistente) sejam capturados antes do parsing do JSON. O timeout explícito evita travamentos quando a rede está degradada.
Indicadores fundamentalistas via API gratuita
O endpoint /fundamentals/{ticker} é onde a profundidade da bolsai aparece. Ele retorna 27 indicadores calculados com normalização TTM (Trailing Twelve Months), o que significa que se uma empresa publicou ITR do terceiro trimestre de 2025 e DFP de 2024, o cálculo combina os dois para gerar o valor dos últimos doze meses. Sem essa normalização, comparar P/L de duas empresas que reportaram em datas diferentes vira um exercício de compensação manual. Para uma análise mais aprofundada da metodologia de cada indicador, consulte o post sobre o cálculo de P/L com a API.
O exemplo abaixo compara P/L, ROE e dividend yield de cinco blue chips brasileiras em uma única passagem. O dividend yield vem de um endpoint separado, /dividends/{ticker}, porque depende de séries históricas de proventos que não cabem em um único agregado.
import httpx
API_KEY = os.getenv("BOLSAI_API_KEY")
BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"X-API-Key": API_KEY}
tickers = ["PETR4", "VALE3", "ITUB4", "BBAS3", "WEGE3"]
with httpx.Client(headers=HEADERS, timeout=10) as client:
for t in tickers:
f = client.get(f"{BASE}/fundamentals/{t}").json()
d = client.get(f"{BASE}/dividends/{t}").json()
print(
f"{t:6} P/L={f['pl']:>6} "
f"ROE={f['roe']:>5}% "
f"DY12m={d['dividend_yield_ttm']:>5}%"
)
O uso de httpx.Client como context manager mantém uma única conexão TCP aberta entre as requisições, reduzindo latência. Em comparação com chamadas isoladas de httpx.get(), o ganho típico é de 30 a 50 ms por chamada quando o servidor está em outra região. Para análise mais ampla, basta trocar a lista de tickers ou puxar a carteira inteira do IBOV via /stocks?bdi_code=02. Quem busca uma alternativa estruturada ao Fundamentus encontra o caminho de migração detalhado em alternativa ao Fundamentus.
Dividendos, FIIs e dados macroeconômicos
Além de cotações e fundamentos, três famílias de endpoints cobrem o que normalmente sobra das ferramentas tradicionais: histórico de proventos, fundos imobiliários e séries macroeconômicas do BCB. A tabela seguinte mostra os endpoints mais usados, com a descrição direta do que cada um retorna.
| Endpoint | O que retorna |
|---|---|
| /stocks/{ticker}/quote | Último fechamento, volume, data do pregão |
| /stocks/{ticker}/history | Série OHLC histórica, suporta ?format=csv |
| /fundamentals/{ticker} | 27 indicadores TTM (P/L, P/VP, ROE, EV/EBITDA, margens, endividamento) |
| /fundamentals/{ticker}/history | Histórico trimestral dos indicadores nos últimos 11 anos |
| /dividends/{ticker} | DY TTM, pagamentos individuais, resumo anual por ação |
| /fiis/{ticker} | P/VP, DY mensal e TTM, distribuições e cotações de FIIs |
| /macro/selic | Série diária da meta SELIC publicada pelo BCB |
| /macro/cdi | Taxa CDI diária e acumulado mensal |
| /macro/ipca | Inflação mensal e acumulado em 12 meses |
| /screener | Filtragem por indicadores combinados (DY, P/L, ROE, ordenação, paginação) |
Para FIIs, a cobertura inclui mais de 400 fundos com P/VP atualizado, dividend yield mensal, distribuições históricas e cotação. Quem investe em renda mensal pode rodar uma única query no screener combinando DY mínimo de 8% e P/VP entre 0,9 e 1,1, e ranquear por liquidez. O caminho completo, com exemplos de carteira diversificada, está documentado em como usar dividend yield via API. Para construir bots de análise que conversam com Claude ou Cursor, o servidor MCP descrito em MCP Server B3 dispensa código glue.
Limites do plano gratuito e quando migrar para pago
O free tier de 200 requisições por dia atende perfeitamente quem está prototipando, fazendo TCC, montando dashboards pessoais ou rodando análises pontuais. Vinte ações analisadas em três indicadores cada consomem 60 requisições. Mesmo um screener semanal sobre 200 tickers, executado sob demanda, raramente passa do limite quando há cache local mínimo.
A migração para o plano Pro (R$29/mês, 10.000 req/dia) faz sentido em três cenários objetivos. Primeiro, dashboards multiusuário expostos publicamente, onde o tráfego é imprevisível. Segundo, jobs de ETL noturnos que recalculam um universo inteiro de ações ou FIIs. Terceiro, agentes de IA via servidor MCP, que tendem a fazer várias chamadas por turno conversacional. O comparativo de planos está na página inicial e a alteração é imediata via Stripe.
Boas práticas: cache, rate limit e tratamento de erros
Três padrões aumentam significativamente a confiabilidade de qualquer integração com api gratuita b3. O primeiro é cachear respostas que mudam em baixa frequência. Cotação intradiária faz sentido invalidar a cada poucos minutos, mas indicadores fundamentalistas mudam apenas quando sai um novo balanço, ou seja, trimestralmente. Cachear esses dados por 12 ou 24 horas reduz drasticamente o consumo de requisições.
O segundo padrão é tratar o status 429 com backoff exponencial. Quando o limite é atingido, a API responde com Retry-After indicando quantos segundos aguardar. Ignorar esse cabeçalho e bater novamente em loop só atrasa a recuperação. O exemplo abaixo combina functools.lru_cache para memoização em memória com tratamento explícito de rate limit:
import os
import time
import functools
import httpx
API_KEY = os.getenv("BOLSAI_API_KEY")
BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"X-API-Key": API_KEY}
def get_with_backoff(url: str, max_retries: int = 3) -> dict:
"""Faz GET respeitando 429 e Retry-After."""
for attempt in range(max_retries):
r = httpx.get(url, headers=HEADERS, timeout=10)
if r.status_code == 429:
wait = int(r.headers.get("Retry-After", 2 ** attempt))
time.sleep(wait)
continue
r.raise_for_status()
return r.json()
raise RuntimeError("Limite de tentativas excedido")
# Cache em memória para fundamentos (mudam trimestralmente)
@functools.lru_cache(maxsize=256)
def fundamentals(ticker: str) -> dict:
return get_with_backoff(f"{BASE}/fundamentals/{ticker}")
# Primeira chamada bate na API; segunda vem do cache
print(fundamentals("PETR4")["pl"]) # request HTTP
print(fundamentals("PETR4")["pl"]) # cache hit, sem request
Para projetos maiores, substituir o lru_cache por Redis ou SQLite com TTL configurável é o próximo passo natural. Em ambientes distribuídos, Redis evita que cada worker mantenha sua própria cópia. Em scripts standalone, um cache SQLite em arquivo persiste entre execuções e custa zero de infraestrutura.
O terceiro padrão é nunca tentar burlar o rate limit fazendo scraping da página de documentação ou do dashboard. Os endpoints /api/v1/ são projetados para uso programático autenticado, e qualquer tentativa de raspar o frontend acaba bloqueada e gera ruído desnecessário no servidor. Quando o limite gratuito não basta, o caminho honesto é o plano pago. Detalhes de paginação, filtros suportados e códigos de erro estão na documentação completa.
Perguntas frequentes
A B3 tem API gratuita oficial?
Não para pessoa física. A B3 mantém o portal B3 for Developers, mas o acesso é orientado a clientes institucionais sob contrato comercial. Pessoas físicas e desenvolvedores independentes acessam dados da B3 via APIs de terceiros como bolsai e brapi, que normalizam fontes públicas (B3, CVM, BCB) em endpoints REST.
Qual API gratuita da B3 tem mais dados fundamentalistas?
A bolsai entrega 27 indicadores fundamentalistas calculados com normalização TTM (P/L, P/VP, ROE, ROIC, EV/EBITDA, margens, endividamento, CAGR), mais histórico trimestral de 11 anos e contas CVM brutas. Outras APIs gratuitas costumam expor um subconjunto menor de indicadores agregados, com granularidade reduzida para séries históricas de balanços.
O plano gratuito da bolsai exige cartão de crédito?
Não. O cadastro é feito por login com Google e libera 200 requisições por dia em todos os endpoints públicos sem qualquer dado de pagamento. O plano Pro, com 10.000 requisições diárias, custa R$29 por mês e só é necessário quando o volume ultrapassa o limite do free tier.
Posso usar a API para day-trade?
Não é recomendado. A bolsai e a maioria das APIs gratuitas trabalham com cotações de fechamento e atualização intradiária com latência de minutos, não com book de ofertas em tempo real. Para day-trade, o caminho correto envolve feed de mercado contratado via corretora ou provedores como Cedro, ComDinheiro ou o próprio B3 for Developers em modalidade institucional.
Qual API é melhor para FIIs?
A bolsai mantém endpoint dedicado /fiis/{ticker} com P/VP, dividend yield TTM, distribuições mensais e histórico de cotações para mais de 400 fundos imobiliários. A cobertura de FIIs em outras APIs gratuitas costuma se limitar à cotação, sem indicadores específicos do segmento como vacância ou renda mínima garantida.
Próximos passos
A api gratuita b3 oferecida pela bolsai foi desenhada para começar imediatamente: cadastro em segundos, chave de acesso visível no dashboard, 200 requisições diárias sem cartão. A documentação cobre todos os endpoints com exemplos prontos e a integração com agentes de IA via MCP elimina a maior parte do código glue que projetos tradicionais exigem.
O caminho típico de adoção segue três fases. Na primeira semana, o desenvolvedor faz prototipagem com cotações e fundamentos de uma dúzia de tickers. Na segunda, expande para histórico trimestral, dividendos e FIIs, integrando os dados em um dashboard interno ou planilha. Na terceira, conecta o servidor MCP ao Claude ou Cursor para consultas conversacionais e, se o volume cresce, migra para o plano Pro. Esse fluxo cobre o ciclo completo do desenvolvedor que começa explorando até o engenheiro de dados que serve modelos quantitativos em produção, sem precisar trocar de provedor no meio do caminho.
Leia também
bolsai vs brapi: comparação honesta das APIs B3
MigraçãoAlternativa ao Fundamentus: API oficial da B3
MCP / IAMCP Server B3: Claude e IA para análise de ações
Este conteúdo é informativo e voltado a desenvolvedores. Não constitui recomendação de investimento. Os exemplos de cotação, indicadores e dividendos são ilustrativos e refletem dados disponíveis em abril de 2026. A bolsai consolida dados públicos de B3, CVM e BCB e não emite parecer sobre a qualidade dos ativos mencionados. Decisões de investimento devem considerar perfil de risco, horizonte e consultoria de profissional habilitado.