Tesouro em Foco

Tesouro em Foco · v1

Os mesmos números, em JSON.

Mesma engine do simulador, exposta como endpoint público. Sem autenticação, CORS aberto, rate limit de 60 req/min por IP. Base URL: https://api.tesouroemfoco.com.

POST /v1/simulate

Simula um único título.

curl -X POST https://api.tesouroemfoco.com/v1/simulate \
  -H 'Content-Type: application/json' \
  -d '{
    "bondType": "prefixado",
    "tradeDate": "2026-04-13",
    "annualRate": "0.1423",
    "maturityDate": "2027-01-01"
  }'
POST /v1/simulate/bulk

Lote de até 20 itens (10 quando algum tem includeSchedule: true). Cada linha responde como { input, ok, result | error } — erros isolados não afetam o batch.

curl -X POST https://api.tesouroemfoco.com/v1/simulate/bulk \
  -H 'Content-Type: application/json' \
  -d '{
    "items": [
      { "bondType": "prefixado", "tradeDate": "2026-04-13", "annualRate": "0.1423", "maturityDate": "2027-01-01" },
      { "bondType": "ipca-mais",  "tradeDate": "2026-04-13", "annualRate": "0.0723", "maturityDate": "2035-05-15" }
    ]
  }'
GET /v1/catalog

Catálogo completo agrupado por família. RendA+/Educa+ trazem conversionDate e installments.

curl https://api.tesouroemfoco.com/v1/catalog
GET /v1/health

Liveness check. Devolve version (semver) e revision (commit hash do build).

curl https://api.tesouroemfoco.com/v1/health

Erros

Todo erro vem como { error: { code, message, issues? } }. O code é estável; o status HTTP é uma derivação dele.

Códigos de erro da API.
Code Status Quando
VALIDATION_ERROR 400 Body Zod inválido (issues[] no response)
INVALID_XOR_ARGS 400 conversionYear/maturityYear fornecidos juntos
INVALID_ISO_DATE 400 Data fora do formato YYYY-MM-DD
DATE_OUT_OF_RANGE 400 Data fora do calendário disponível
PRODUCT_NOT_FOUND 404 Bond não está no catálogo (RendA+/Educa+)
SETTLEMENT_AFTER_MATURITY 422 Liquidação após o vencimento
INVALID_IPCA_PROJECTION 422 Projeção IPCA não disponível para a data
INVALID_VNI 422 VNI não disponível para a data
RATE_LIMITED 429 Excedeu 60 req/min — Retry-After: 60

OpenAPI

Spec hospedado em /v1/openapi.json. Atualmente é stub — o auto-gen completo virá quando @hono/zod-openapi suportar Zod 4.