Atenção:
• Esta API está em fase experimental e pode apresentar inconsistências.
• São possíveis 50 requisições mensais devido a limitação atual do servidor.
A API do TesouroInfo fornece dados de taxas e preços atuais ou de datas específicas de dados coletados do Tesouro Direto usando diferentes formatos. Essa API tem alguns endpoints (url específico), onde cada um deles serve a um propósito diferente e caso de uso. Os endpoints incluem funcionalidades como receber um conjunto específico de filtros e responder com os valores mais recentes para um ou para todos os títulos.
Neste documento, você descobrirá sobre a estrutura da API, os métodos e os possíveis erros e exemplos de código.
A API tem um identificador exclusivo como uma chave de API que é passada para a API como um parâmetro de URL access_key
. Esse parâmetro serve como uma autenticação de identificação exclusiva com a API TesouroInfo, para obter uma chave o usuário deve criar uma conta no site e gerar a chave de acesso no menu dentro da conta de usuário.
https://tesouroinfo.com/api/v1/
Após obter sua chave de API, anexe à url. Veja abaixo um exemplo de como utilizar a API TesouroInfo:
https://tesouroinfo.com/api/v1/bonds?access_key=API_KEY
Os dados são retornados em um formato JSON padrão e podem ser facilmente lidos em qualquer linguagem de programação.
Exemplo de resposta: Veja abaixo um exemplo de uma resposta de API que fornece informações sobre todos os títulos existentes no Tesouro Direto, cada título contém o nome (name
), a data de vencimento (due_date
) e o tipo (type
) que diz se está disponível para investir, resgatar ou não negociável.
[ { "success": true, "info": "todos títulos", "request_date": "01/ago./2023 21:55", "content": [ { "name": "Tesouro renda+ aposentadoria extra 2030", "due_date": "15/dez./2049", "type": "investir e resgatar" }, { "name": "Tesouro renda+ aposentadoria extra 2035", "due_date": "15/dez./2054", "type": "investir e resgatar" }, ... ] } ]
Como podemos ver no exemplo acima, a resposta da API sempre contém algumas informações como data/hora (request_date
) da leitura que indica quando as informações fornecidas foram coletadas. Além disso, o campo success
indica que a leitura dos dados foi realizada com sucesso, o campo info
indica o tipo de título que foi pesquisado e pode ser passado como parâmetro para filtragem na url, por fim o campo content
fornece todos os títulos encontrados.
Abaixo, na seção Endpoints, discutiremos a estrutura de resposta da API com mais detalhes.
A API possui alguns endpoints onde cada um deles fornece uma funcionalidade diferente.
Esse endpoint retorna os títulos do Tesouro Direto disponíveis, pode ser filtrado através dos campos info
e type
.
Esse endpoint retorna todas as taxas para um determinado título do Tesouro Direto disponível, necessário utilizar os filtros através dos campos info
e type
. Se mais de um título for encontrado, retornará o primeiro encontrado.
Esse endpoint retorna todas as taxas selic registradas para o período especificado.
Quando enviamos solicitações de API, mas os dados solicitados não estão disponíveis ou a chamada de API falha por algum motivo, um código de erro em formato JSON será retornado. Os erros sempre vêm junto com um código de erro e uma descrição.
O erro a seguir será retornado se nenhuma chave de acesso for específicada.
{ "success": false, "error": { "code": 101, "info": "No API Key was specified." } }
Todos as conexões da API do TesouroInfo utilizam criptografia SSL de 256 bits. Basta usar o protocolo https
para se conectar à API através de SSL.
Código de erro | Descrição |
---|---|
101 | No API Key was specified. |
102 | This API Key is inactive. |
103 | The account this API request is coming from is inactive. |
104 | Invalid API Key was specified. |
105 | The maximum allowed API amount of monthly API requests has been reached. |
106 | The current request did not return any results. |
107 | The requested API endpoint does not exist. |
108 | An invalid date has been specified. |
A API vem com um endpoint atualizado que retorna todas os títulos disponíveis. Para receber a lista, faça uma solicitação de API para o endpoint bonds
.
Exemplo de solicitação de API:
https://tesouroinfo.com/api/v1/bonds
? access_key = API_KEY
& name = prefixado
& type = investir
Parâmetros da solicitação:
Parâmetro | Descrição |
---|---|
access_key |
[obrigatório] Sua chave de API. |
name |
Nome ou parte do nome do título desejado. Retornará todos títulos se nada for passado. |
type |
Tipo de título: investir, resgatar ou não negociável. Retornará todos os tipos se nada for passado. |
Resposta da API:
[ { "success": true, "type": "investir e resgatar", "name": "prefixado", "date": "02/ago./2023 19:34", "content": [ { "name": "Tesouro prefixado 2026", "due_date": "01/jan./2026", "type": "investir e resgatar" }, { "name": "Tesouro prefixado 2029", "due_date": "01/jan./2029", "type": "investir e resgatar" }, { "name": "Tesouro prefixado com juros semestrais 2033", "due_date": "01/jan./2032", "type": "investir e resgatar" } ] } ]
Objetos de resposta:
Objeto de resposta | Descrição |
---|---|
success |
Retorna true ou false dependendo se sua solicitação de API foi bem-sucedida ou não. |
type |
Retorna o filtro utilizado como parâmetro. |
name |
Retorna o filtro utilizado como parâmetro. |
date |
Retorna a data da solicitação. |
content |
Retorna todos os títulos do Tesouro Direto que atendem aos filtros utiizados. |
A API vem com um endpoint atualizado que retorna todas as taxas de cada título do Tesouro Direto. Para receber a lista, faça uma solicitação de API para o endpoint fees
.
Exemplo de solicitação de API:
https://tesouroinfo.com/api/v1/fees
? access_key = API_KEY
& name = ipca 2045
& type = investir
& fields = date,fee
& start_date = 10-5-2022
& end_date = 25-12-2022
Parâmetros da solicitação:
Parâmetro | Descrição |
---|---|
access_key |
[obrigatório] Sua chave de API. |
name |
[obrigatório] Nome ou parte do nome do título desejado. Se houver mais de um título encontrado, retornará apenas o primeiro. |
type |
[obrigatório] Tipo de título: investir, resgatar ou não negociável. |
fields |
Escolha quais campos deseja na saída. Se nada for passado todos os campos serão retornados. Campos disponíveis: date , fee , price , min (min apenas para investir). |
start_date |
Data inicial da série histórica. Formato: dia-mês-ano (exemplo: 10-5-2022). Se um formato incorreto for utilizado, retornará as valores entre datas preestabelecidas. |
end_date |
Data final da série histórica. Formato: dia-mês-ano (exemplo: 25-12-2022). Se um formato for incorreto for utilizado, retornará as valores entre datas preestabelecidas. |
Resposta da API:
[ { "success": true, "request_date": "02/ago./2023 21:37", "name": "Tesouro ipca+ 2045", "type": "investir e resgatar", "content_for": "investir", "content": [ { "date": "10/mai./2022 12:20", "fee": "5.7300%" }, { "date": "10/mai./2022 15:04", "fee": "5.8000%" }, ... { "date": "23/dez./2022 16:02", "fee": "6.3400%" }, { "date": "23/dez./2022 18:25", "fee": "6.3600%" } ] } ]
Objetos de resposta:
Objeto de resposta | Descrição |
---|---|
success |
Retorna true ou false dependendo se sua solicitação de API foi bem-sucedida ou não. |
request_date |
Retorna a data da solicitação. |
name |
Retorna o nome do título encontrado resultante do filtro name utilizado. |
type |
Retorna o tipo do título. Podendo ser investir e resgatar , somente resgatar ou não negociável . |
content_for |
Indica qual o tipo dos valores retornados. Podem ser: investir ou resgatar de acordo com o filtro utilizado em type . |
content |
Retorna os valores do título do Tesouro Direto encontrado que atendem aos filtros utiizados. |
A API vem com um endpoint atualizado que retorna todas as taxas Selic registradas. Para receber a lista, faça uma solicitação de API para o endpoint selics
.
Exemplo de solicitação de API:
https://tesouroinfo.com/api/v1/selics
? access_key = API_KEY
& start_date = 10-5-2022
& end_date = 25-12-2022
Parâmetros da solicitação:
Parâmetro | Descrição |
---|---|
access_key |
[obrigatório] Sua chave de API. |
start_date |
Data inicial da série histórica. Formato: dia-mês-ano (exemplo: 10-5-2022). Se um formato incorreto for utilizado, retornará as valores entre datas preestabelecidas. |
end_date |
Data final da série histórica. Formato: dia-mês-ano (exemplo: 25-12-2022). Se um formato for incorreto for utilizado, retornará as valores entre datas preestabelecidas. |
Resposta da API:
[ { "success": true, "período": "10-5-2022 até 25-12-2022", "request_date": "07/ago./2023 22:06", "content": [ { "date": "10/mai./2022 03:00", "fee": "12.6500%" }, { "date": "11/mai./2022 03:00", "fee": "12.6500%" }, ... { "date": "22/dez./2022 03:00", "fee": "13.6500%" }, { "date": "23/dez./2022 03:00", "fee": "13.6500%" } ] } ]
Objetos de resposta:
Objeto de resposta | Descrição |
---|---|
success |
Retorna true ou false dependendo se sua solicitação de API foi bem-sucedida ou não. |
período |
Retorna as datas de início e fim especificadas como parâmetro para retorno das taxas selics. Se nenhuma data for especificada será utilizada o padrão entre 01-01-2010 e a data atual. |
request_date |
Retorna a data da solicitação. |
content |
Contém as taxas Selics registradas que atendem aos filtros utiizados. |