Para listar os ativos disponíveis na B3 sem processar planilhas, consulte
/api/v2/tickers. O endpoint devolve símbolos, nomes, tipos e setores em JSON,
com busca, filtros, ordenação e paginação.
curl "https://brapi.dev/api/v2/tickers?type=stock&limit=20"O catálogo inclui ações, units, FIIs, ETFs, BDRs e índices. Opções, futuros, Tesouro Direto, criptomoedas e moedas têm catálogos próprios.
Resposta rápida
Esta chamada busca as ações do setor financeiro com maior volume:
curl "https://brapi.dev/api/v2/tickers?type=stock§or=Finance&sortBy=volume&sortOrder=desc&limit=20"Para encontrar um ativo pelo nome ou código:
curl "https://brapi.dev/api/v2/tickers?search=PETR"A busca aceita ticker, nome da empresa e códigos antigos conhecidos pela brapi. Isso é útil em caixas de busca e importações de carteiras antigas.
Tipos e subtipos disponíveis
O filtro type separa três grupos amplos:
type | Conteúdo |
|---|---|
stock | Ações e units |
fund | FIIs, ETFs e outros fundos listados |
bdr | BDRs negociados na B3 |
Use subType quando precisar de uma classificação mais precisa. Os valores
incluem stock, unit, fii, etf, fi-infra, fi-agro, fip, fidc e
bdr.
curl "https://brapi.dev/api/v2/tickers?type=fund&subType=fii&limit=50"Listagem não é cotação
Use este endpoint para descobrir e validar símbolos. Para preço atual,
consulte /api/v2/stocks/quote ou o endpoint específico do tipo de ativo.
Listar tickers com Python
O exemplo abaixo percorre todas as páginas e cria um DataFrame. Guarde o token em uma variável de ambiente para não publicá-lo no código.
import os
import requests
import pandas as pd
BASE_URL = "https://brapi.dev/api/v2/tickers"
TOKEN = os.getenv("BRAPI_TOKEN")
headers = {"Authorization": f"Bearer {TOKEN}"} if TOKEN else {}
rows = []
page = 1
while True:
response = requests.get(
BASE_URL,
params={
"type": "stock",
"sortBy": "symbol",
"sortOrder": "asc",
"page": page,
"limit": 100,
},
headers=headers,
timeout=30,
)
response.raise_for_status()
payload = response.json()
rows.extend(payload["results"])
pagination = payload["pagination"]
if page >= pagination["totalPages"]:
break
page += 1
df = pd.DataFrame(rows)
print(df[["symbol", "name", "assetType", "sector"]].head())Confira o nome do array principal e da paginação na documentação de tickers, pois o contrato documentado é a referência para integrações em produção.
Exportar a lista para CSV
Depois de montar o DataFrame, a exportação é direta:
df.to_csv("tickers-b3.csv", index=False, encoding="utf-8")O CSV serve para autocomplete, tabelas de referência e rotinas que precisam validar uma lista enviada pelo usuário. Não use uma cópia antiga como catálogo permanente. Novos ativos entram e tickers podem mudar.
Filtrar por setor e subtipo
É melhor filtrar na API do que baixar todo o catálogo a cada busca. Estes são alguns exemplos:
# Ações de um setor
/api/v2/tickers?type=stock§or=Finance
# FIIs
/api/v2/tickers?subType=fii
# ETFs
/api/v2/tickers?subType=etf
# BDRs
/api/v2/tickers?type=bdr
# Busca por nome ou ticker
/api/v2/tickers?search=ItaúOs filtros disponíveis também incluem subsector. Para montar um screener,
combine a listagem com o endpoint de indicadores adequado ao ativo.
Como tratar ticker antigo
Uma empresa pode trocar de ticker após reorganização, incorporação ou mudança de nome. Não descarte o dado como inválido antes de tentar resolvê-lo.
curl "https://brapi.dev/api/v2/tickers/resolve?symbols=SEU_TICKER"O fluxo recomendado é:
- buscar o símbolo em
/api/v2/tickers; - tentar
/api/v2/tickers/resolvequando ele não aparecer; - consultar
/api/v2/tickers/coverageantes de escolher o endpoint de dados.
Veja também o histórico de renomes e a verificação de cobertura.
Quando usar o endpoint legado
/api/quote/list continua disponível para integrações antigas. Projetos novos
devem usar /api/v2/tickers, que separa descoberta de símbolos da consulta de
cotação e dos demais dados.
Se o objetivo agora é baixar preços, continue em dados históricos da B3 com Python.
