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.
/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"
}' /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" }
]
}' /v1/catalog
Catálogo completo agrupado por família. RendA+/Educa+ trazem
conversionDate e installments.
curl https://api.tesouroemfoco.com/v1/catalog /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.
| 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.