Tesouro Direto
A API de Tesouro Direto entrega a primeira camada de dados de renda fixa da brapi:
- listar os títulos atualmente ofertados
- consultar taxas e preços atuais por símbolo
- acompanhar o histórico diário de taxas e preços
O que esta API entrega
Taxas indicativas de compra/venda, preços unitários, vencimento, indexador, tipo de cupom e histórico diário desde 2005, conforme disponibilidade da fonte pública.
Identificador público
Títulos do Tesouro Direto usam symbol em formato slug minúsculo, como
tesouro-selic-01032031. Não use tickers de bolsa ou códigos internos de
fontes externas.
Cobertura e frequência
- Títulos cobertos: Tesouro Selic, Prefixado, IPCA+, IGP-M histórico, Renda+ e Educa+ quando presentes no arquivo público.
- Atualização: diária, conforme publicação da base do Tesouro Direto.
- Histórico: série diária de taxas e preços desde 2005.
- Datas: parâmetros em
YYYY-MM-DD; respostas emYYYY-MM-DD. - Fonte externa: a resposta nunca expõe URLs, IDs de dataset ou IDs de recurso upstream. Use apenas os símbolos públicos da brapi.
Acesso por plano
Tesouro Direto detalhado faz parte do plano Pro. O sandbox permite experimentação sem token para três títulos:
tesouro-selic-01032031tesouro-prefixado-com-juros-semestrais-01012037tesouro-ipca-com-juros-semestrais-15082060
| Plano | Acesso ao Tesouro Direto |
|---|---|
| Sandbox (sem token) | ✅ Apenas os 3 títulos sandbox |
| Free | ❌ |
| Startup | ❌ |
| Pro | ✅ Todos os títulos disponíveis |
Campos principais
symbol: slug público do título, composto pelo nome normalizado e data de vencimento (DDMMAAAA).bondType: nome público do título, comoTesouro SelicouTesouro IPCA+ com Juros Semestrais.indexer:selic,prefixado,ipcaouigpm.couponType:zeropara títulos sem cupom periódico,semestralpara títulos com juros semestrais.buyRate/sellRate: taxa indicativa em% a.a.. Em Tesouro Selic, é spread sobre a Selic; em Prefixado, rendimento nominal; em IPCA, rendimento real acima do IPCA.rateInfo: metadados que explicam como interpretarbuyRateesellRatepara aquele indexador (spreadOverSelic,nominalAnnualRate,realAnnualRateOverIpcaourealAnnualRateOverIgpm).buyPrice/sellPrice/basePrice: preços unitários indicativos em reais.durationDays: dias corridos entre a data-base e o vencimento.
Início rápido
# 1) Liste títulos Selic atualmente ofertados
curl "https://brapi.dev/api/v2/treasury/list?indexer=selic"
# 2) Consulte indicadores atuais de títulos específicos
curl "https://brapi.dev/api/v2/treasury/indicators?symbols=tesouro-selic-01032031"
# 3) Consulte o histórico diário de taxas e preços
curl "https://brapi.dev/api/v2/treasury/indicators/history?symbols=tesouro-selic-01032031&startDate=2026-05-01&endDate=2026-05-15"const BASE = 'https://brapi.dev/api/v2/treasury';
const token = process.env.BRAPI_TOKEN;
const headers = token ? { Authorization: `Bearer ${token}` } : undefined;
const list = await fetch(`${BASE}/list?indexer=selic`, { headers })
.then((r) => r.json());
const indicators = await fetch(
`${BASE}/indicators?symbols=tesouro-selic-01032031`,
{ headers },
).then((r) => r.json());
const history = await fetch(
`${BASE}/indicators/history?symbols=tesouro-selic-01032031&startDate=2026-05-01&endDate=2026-05-15`,
{ headers },
).then((r) => r.json());
console.log({ list, indicators, history });import os
import requests
BASE = "https://brapi.dev/api/v2/treasury"
token = os.getenv("BRAPI_TOKEN")
headers = {"Authorization": f"Bearer {token}"} if token else {}
listagem = requests.get(
f"{BASE}/list",
params={"indexer": "selic"},
headers=headers,
).json()
indicadores = requests.get(
f"{BASE}/indicators",
params={"symbols": "tesouro-selic-01032031"},
headers=headers,
).json()
historico = requests.get(
f"{BASE}/indicators/history",
params={
"symbols": "tesouro-selic-01032031",
"startDate": "2026-05-01",
"endDate": "2026-05-15",
},
headers=headers,
).json()
print(listagem, indicadores, historico)Fluxo recomendado
Descubra os títulos disponíveis
Comece em /api/v2/treasury/list para
listar a oferta atual e filtrar por indexador ou tipo de cupom.
Consulte o snapshot atual
Use /api/v2/treasury/indicators para
buscar taxas e preços atuais de até 20 títulos por requisição.
Monte gráficos históricos
Use /api/v2/treasury/indicators/history
para obter séries diárias de taxas e preços por título.
Casos de uso comuns
- Comparador de títulos públicos:
listcom filtro por indexador. - Dashboard de renda fixa:
indicatorspara snapshot atual. - Gráfico de marcação a mercado:
indicators/historycombuyPrice,sellPriceebasePrice. - Análise de curva de juros: combinar títulos Prefixados e IPCA+ por vencimento.