# Tesouro Direto
URL: /docs/tesouro-direto.mdx

Guia para integrar dados de títulos públicos do Tesouro Direto na brapi: listagem, indicadores atuais e histórico diário de taxas e preços.

***

title: Tesouro Direto
description: >-
Guia para integrar dados de títulos públicos do Tesouro Direto na brapi:
listagem, indicadores atuais e histórico diário de taxas e preços.
full: true
keywords: brapi, api, tesouro direto, renda fixa, tesouro selic, tesouro ipca, prefixado
openGraph:
title: Tesouro Direto — brapi
description: >-
Integre taxas e preços indicativos de títulos públicos do Tesouro Direto
com endpoints REST da brapi.
type: website
locale: pt\_BR
lastUpdated: '2026-05-16T12:00:00.000Z'
lang: pt-BR
-----------

import { Callout } from 'fumadocs-ui/components/callout';
import { Step, Steps } from 'fumadocs-ui/components/steps';
import { Tab, Tabs } from 'fumadocs-ui/components/tabs';

A API de Tesouro Direto entrega a primeira camada de dados de renda fixa da
brapi:

1. **listar** os títulos atualmente ofertados
2. consultar **taxas e preços atuais** por símbolo
3. acompanhar o **histórico diário** de taxas e preços

<Callout title="O que esta API entrega" type="info">
  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.
</Callout>

<Callout title="Identificador público" type="warn">
  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.
</Callout>

## 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 em `YYYY-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-01032031`
* `tesouro-prefixado-com-juros-semestrais-01012037`
* `tesouro-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, como `Tesouro Selic` ou
  `Tesouro IPCA+ com Juros Semestrais`.
* **`indexer`:** `selic`, `prefixado`, `ipca` ou `igpm`.
* **`couponType`:** `zero` para títulos sem cupom periódico, `semestral` para
  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 interpretar `buyRate` e
  `sellRate` para aquele indexador (`spreadOverSelic`,
  `nominalAnnualRate`, `realAnnualRateOverIpca` ou
  `realAnnualRateOverIgpm`).
* **`buyPrice` / `sellPrice` / `basePrice`:** preços unitários indicativos em
  reais.
* **`durationDays`:** dias corridos entre a data-base e o vencimento.

## Início rápido

<Tabs items={['cURL', 'TypeScript', 'Python']}>
  <Tab value="cURL">
    ```bash
    # 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"
    ```
  </Tab>

  <Tab value="TypeScript">
    ```typescript
    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 });
    ```
  </Tab>

  <Tab value="Python">
    ```python
    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)
    ```
  </Tab>
</Tabs>

## Fluxo recomendado

<Steps>
  <Step>
    #### Descubra os títulos disponíveis

    Comece em [`/api/v2/treasury/list`](/docs/tesouro-direto/listagem) para
    listar a oferta atual e filtrar por indexador ou tipo de cupom.
  </Step>

  <Step>
    #### Consulte o snapshot atual

    Use [`/api/v2/treasury/indicators`](/docs/tesouro-direto/indicadores) para
    buscar taxas e preços atuais de até 20 títulos por requisição.
  </Step>

  <Step>
    #### Monte gráficos históricos

    Use [`/api/v2/treasury/indicators/history`](/docs/tesouro-direto/indicadores-historico)
    para obter séries diárias de taxas e preços por título.
  </Step>
</Steps>

## Casos de uso comuns

* **Comparador de títulos públicos:** `list` com filtro por indexador.
* **Dashboard de renda fixa:** `indicators` para snapshot atual.
* **Gráfico de marcação a mercado:** `indicators/history` com `buyPrice`,
  `sellPrice` e `basePrice`.
* **Análise de curva de juros:** combinar títulos Prefixados e IPCA+ por
  vencimento.


