Alternativa ao Fundamentus: API Oficial com Dados da B3 em 2026
por bolsai · 18 de abril de 2026 · 10 min de leitura
O Fundamentus ainda é o site mais consultado por investidores brasileiros que buscam indicadores fundamentalistas, mas ele não publica API oficial. Quem precisa dos dados em código esbarra em scraping frágil, bloqueios por IP e interrupções periódicas. Este artigo apresenta uma alternativa ao Fundamentus baseada em API REST, com metodologia pública e 96% de concordância nos indicadores principais.
Por que o Fundamentus não oferece API oficial
O Fundamentus surgiu no início dos anos 2000 como um agregador de dados da Bovespa voltado ao investidor pessoa física.
Até hoje a entrega é feita por páginas HTML renderizadas no servidor, com detalhes de uma ação em URLs do tipo
/detalhes.php?papel=ITUB4. Não há documentação de endpoints, contrato de SLA, chave de autenticação
ou versionamento. Isso torna o projeto simples de manter, mas impraticável para qualquer sistema que exija
previsibilidade.
Construir uma API pública envolve custos de infraestrutura, monitoramento e suporte que não se encaixam no modelo do site, historicamente mantido por poucas pessoas e sem cobrança direta. Por isso o Fundamentus permanece útil como referência visual, mas inadequado como fonte programática de dados.
Qual a alternativa ao Fundamentus com API oficial?
A bolsai é uma API REST que agrega dados oficiais da B3, CVM e BCB e entrega os mesmos indicadores
fundamentalistas do Fundamentus (P/L, P/VP, ROE, EV/EBITDA, LPA, VPA, DY, margem líquida, ROIC)
em endpoints documentados, autenticados por X-API-Key, com 96% de concordância em dados
recentes e 200 requisições diárias no plano gratuito.
Os problemas de depender de scraping do Fundamentus
Em fóruns como r/investimentos e r/brdev é comum aparecerem relatos de fundamentus down após deploys pesados de bibliotecas populares. O motivo é simples: quando milhares de scripts BeautifulSoup consultam o mesmo host às 09h02 da manhã para montar watchlists, o servidor responde com HTTP 503 ou timeouts prolongados.
Há outros pontos de atrito relevantes para quem constrói pipelines sérios:
- Mudanças silenciosas no HTML quebram seletores CSS e XPath sem aviso prévio.
- Campos numéricos misturam locale brasileiro (vírgula decimal) com formatação exportada de planilhas, exigindo normalização manual.
- Não existem endpoints para histórico trimestral; os dados são sempre os mais recentes, dificultando backtests.
- O rate limit é opaco. Requisições paralelas costumam resultar em bloqueio do IP por janelas não divulgadas.
- Não há suporte a FIIs, BDRs ou ações estrangeiras.
Do ponto de vista jurídico, a situação também é delicada. Os termos de uso do Fundamentus restringem coleta automatizada. Rodar scrapers agressivos em produção expõe a empresa a risco contratual, especialmente em contextos corporativos onde compliance e auditoria são obrigatórios.
bolsai: API REST oficial com os mesmos indicadores
A bolsai foi construída especificamente para resolver esse problema. Os dados são extraídos diretamente de fontes oficiais: arquivos da CVM (DFP e ITR), cotações históricas da B3 (COTAHIST) e indicadores macroeconômicos do BCB. A ingestão roda em pipeline controlado, com logs de auditoria, e o resultado é exposto por endpoints REST autenticados.
Três endpoints concentram o caso de uso que antes era coberto por scraping do Fundamentus:
GET /fundamentals/{ticker}: 27 indicadores calculados sobre TTM (Trailing Twelve Months), incluindo P/L, P/VP, ROE, EV/EBITDA, LPA, VPA, margem líquida e dívida líquida sobre EBITDA.GET /fundamentals/{ticker}/history: histórico trimestral de 11 anos, com cada ponto já normalizado em TTM. Fundamental para backtests.GET /screener: filtro de ações por faixas de indicadores (P/L máximo, ROE mínimo, DY mínimo, etc.), sem precisar baixar a base inteira.
Benchmark: 96% de concordância com o Fundamentus em dados recentes
Uma alternativa ao Fundamentus só é útil se os números baterem. A bolsai publica abertamente sua metodologia e mantém testes de regressão comparando cada indicador com a referência de mercado. Em ações cujos últimos balanços já foram consolidados (tipicamente o ciclo DFP 2025), a concordância em indicadores chave fica em 96%. Incluindo todo o universo de empresas, inclusive aquelas com dados defasados de ITRs antigos, a concordância geral cai para 82%.
As diferenças metodológicas são documentadas. A bolsai utiliza o lucro líquido consolidado da conta
3.11 da CVM (Lucro/Prejuízo Consolidado do Período) para todo o cálculo de TTM, seguindo a
mesma convenção do Fundamentus. O EBIT é calculado como Lucro Bruto menos despesas operacionais
administrativas e comerciais (SG&A), e não diretamente da conta 3.05 do CVM, o que evita distorções
em empresas que lançam resultados financeiros dentro do resultado operacional. Em bancos, o patrimônio
líquido vem das contas 2.07 e 2.08, pois a conta 2.03 não separa
corretamente participação de controladores em instituições financeiras.
Ações reportam número de ações em unidades, milhares ou milhões sem padronização, o que deforma indicadores como LPA e VPA. O pipeline da bolsai aplica uma heurística que testa multiplicadores (1, 1.000, 1.000.000) contra a razoabilidade do P/VP resultante. Quando disponíveis, os totais informados pela B3 em composição de capital são usados como referência.
Como migrar um script de scraping para a API da bolsai
O padrão típico de um script legado consulta o HTML do Fundamentus e parseia os valores com BeautifulSoup. Em Python, costuma ter esta forma:
# Padrão legado: scraping do Fundamentus
import requests
from bs4 import BeautifulSoup
headers = {"User-Agent": "Mozilla/5.0"}
r = requests.get("https://fundamentus.com.br/detalhes.php?papel=ITUB4", headers=headers)
soup = BeautifulSoup(r.text, "html.parser")
# Seletores frágeis, posições que mudam a cada refactor
tabelas = soup.find_all("table", {"class": "w728"})
pl = tabelas[0].find_all("td")[13].text.strip()
pvp = tabelas[0].find_all("td")[15].text.strip()
roe = tabelas[2].find_all("td")[19].text.strip()
# Conversão manual: "8,60" -> 8.6
pl = float(pl.replace(",", "."))
pvp = float(pvp.replace(",", "."))
roe = float(roe.replace("%", "").replace(",", "."))
O equivalente na bolsai reduz a superfície de falha. Não há HTML a parsear, tipos vêm prontos em JSON e o cliente é qualquer biblioteca HTTP. Veja a migração direta:
# Novo padrão: API REST da bolsai
import httpx
API_KEY = "sk_live_..."
BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"X-API-Key": API_KEY}
r = httpx.get(f"{BASE}/fundamentals/ITUB4", headers=HEADERS)
r.raise_for_status()
data = r.json()
pl = data["pl"] # 8.6
pvp = data["pvp"] # 2.13
roe = data["roe"] # 21.32 (em %)
ev_ebitda = data["ev_ebitda"]
print(f"ITUB4 P/L={pl} P/VP={pvp} ROE={roe}%")
Saída real executada em 2026-04-01:
ITUB4 P/L=8.6 P/VP=2.13 ROE=21.32%
Crie uma conta gratuita para rodar este código: 200 requisições por dia, sem cartão de crédito.
Criar conta gratuitaPara uma substituição completa do fluxo, vale consultar a documentação completa da API, que lista todos os parâmetros opcionais e os códigos de erro retornados em cada endpoint.
Exemplo completo: P/L, P/VP e ROE em JSON estruturado
O caso clássico de um screener inicial pede os três indicadores básicos para um conjunto de tickers. Com a bolsai, a operação é direta e mantém o tipo numérico nativo do JSON:
import httpx, json
BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"X-API-Key": "sk_live_..."}
TICKERS = ["PETR4", "VALE3", "ITUB4", "BBAS3", "WEGE3"]
resultado = {}
for ticker in TICKERS:
r = httpx.get(f"{BASE}/fundamentals/{ticker}", headers=HEADERS)
d = r.json()
resultado[ticker] = {
"pl": d["pl"],
"pvp": d["pvp"],
"roe": d["roe"],
}
print(json.dumps(resultado, indent=2))
Saída real executada em 2026-04-01:
{
"PETR4": { "pl": 5.32, "pvp": 1.42, "roe": 26.60 },
"VALE3": { "pl": 27.31, "pvp": 1.75, "roe": 6.41 },
"ITUB4": { "pl": 8.60, "pvp": 2.13, "roe": 21.32 },
"BBAS3": { "pl": 4.87, "pvp": 0.92, "roe": 18.94 },
"WEGE3": { "pl": 28.46, "pvp": 10.39, "roe": 39.50 }
}
Cobertura de indicadores: bolsai vs Fundamentus
A comparação a seguir resume os pontos que mais importam em uma decisão de migração:
| Critério | bolsai | Fundamentus |
|---|---|---|
| Acesso programático | API REST documentada | Apenas via scraping de HTML |
| Autenticação | Header X-API-Key |
Nenhuma (sujeita a bloqueio por IP) |
| Rate limit publicado | 200/dia (free), 10.000/dia (Pro) | Não divulgado |
| Histórico trimestral | 11 anos, TTM normalizado | Apenas dados do último balanço |
| FIIs | Mais de 400 fundos cobertos | Não coberto |
| Integração com IA (MCP) | Servidor MCP oficial | Não existe |
| Custo | Gratuito até 200 req/dia; R$29/mês no Pro | Gratuito com uso casual; scraping pode gerar bloqueio |
| Compatibilidade com termos de uso | Uso comercial permitido sob licença | Scraping restrito pelos termos de uso |
Há uma nuance importante de ser reconhecida: o Fundamentus continua sendo excelente como ferramenta visual gratuita para conferência pontual. Investidores pessoa física que consultam papéis esporadicamente não ganham muito ao migrar. O substituto faz sentido para quem tem carga programática: dashboards, scripts de screening automatizado, rotinas de rebalanceamento ou modelos de fator.
Extras que a API da bolsai oferece
Além da paridade funcional com o Fundamentus, a API cobre casos de uso que o site original nunca atacou: 400+ FIIs com P/VP e DY mensal, cotações históricas desde 1986 no formato COTAHIST, séries macroeconômicas do BCB e um servidor MCP que permite ao Claude, ChatGPT e outros assistentes consultarem os dados em linguagem natural. Tudo respeitando os mesmos limites de rate limit da API.
Perguntas frequentes
O Fundamentus tem API oficial?
Não. O Fundamentus oferece somente uma interface web em HTML e não publica endpoints REST, contratos de SLA ou chaves de autenticação. Qualquer projeto que consome os dados de forma programática o faz por meio de web scraping, prática que não é suportada pelos termos de uso do site.
Posso usar a API da bolsai gratuitamente?
Sim. O plano gratuito libera 200 requisições por dia, sem cartão de crédito, e dá acesso aos endpoints principais de fundamentos, preços e dividendos. O plano Pro (R$29/mês) eleva o limite para 10.000 requisições diárias e desbloqueia o histórico trimestral completo, conforme a tabela em usebolsai.com/#pricing.
Os dados da bolsai batem com os do Fundamentus?
A comparação cruzada em dados recentes (DFP 2025) mostra 96% de concordância nos principais indicadores, incluindo P/L, P/VP, ROE e EV/EBITDA. Considerando também períodos mais antigos e defasados, a concordância geral fica em 82%. Divergências pontuais costumam refletir diferenças no tratamento de contas consolidadas entre bancos e empresas não financeiras.
Scraping do Fundamentus é legal?
Depende do uso. Os termos de uso do Fundamentus restringem a coleta automatizada, e requisições agressivas podem caracterizar violação contratual. Em projetos corporativos, a recomendação é utilizar fontes com API oficial e contratos claros, como dados da CVM diretamente, da B3 ou de provedores licenciados como a bolsai. A página inicial do Fundamentus traz os termos vigentes.
Próximos passos
Quem depende hoje de scraping do Fundamentus em produção ganha tempo migrando para uma alternativa com API oficial, tipos numéricos nativos, histórico e contrato de uso. O custo de setup é baixo: uma conta gratuita, uma chave de API e as mesmas bibliotecas HTTP já em uso. A referência de endpoints traz exemplos executáveis para cada rota.
Leia também
Este conteúdo é educativo e não constitui recomendação de investimento.