Pular para o conteúdo

API HTTP

A API HTTP pública expõe as operações safe* da biblioteca como JSON sobre HTTPS. É read-only (sem persistência), sem autenticação na v1, e destina-se a integrações em Excel, Python, curl ou outras ferramentas que não instalem Node.

Base URL (produção): https://api.igcp-aforro.primor.me

Para taxas pré-computadas em massa, continue a usar o artefacto estático rates.json. A API executa simulações ao vivo com os mesmos parâmetros que simulate() e safeSimulate().

Não somos o IGCP. Os resultados são estimativas de calculadora; não constituem aconselhamento financeiro nem fiscal. Confirme sempre com extractos oficiais. Cada resposta inclui o cabeçalho X-IGCP-Aforro-Disclaimer.

Todas as rotas POST devolvem JSON no formato SafeResult:

{ "ok": true, "value": { } }
{ "ok": false, "kind": "validation", "error": { "issues": [ ] } }
{ "ok": false, "kind": "runtime", "message": "" }
SituaçãoHTTP
Sucesso200
Erro de validação (Zod)400
Erro de domínio / runtime422
Rota desconhecida404
Método incorreto405

Access-Control-Allow-Origin: * em GET, POST e OPTIONS. Pedidos OPTIONS em /v1/* respondem 204 para preflight.

MétodoCaminhoFunção
GET/healthVersão, estado e metadados Euribor (_meta.json)
POST/v1/simulatesafeSimulate — corpo = SimulateInput
POST/v1/portfoliosafeSimulatePortfolio
POST/v1/redeemsafeSimulateRedemption
POST/v1/rates/currentsafeGetCurrentRate
POST/v1/rates/cohortsafeGetRateForCohort
POST/v1/rates/tablesafeGetRateTable
POST/v1/tax-year/rollupsafeRollupTaxYears — corpo = SimulateResult com calendário
POST/v1/tax-year/rollup-portfoliosafeRollupTaxYearsFromPortfolio
POST/v1/tax-year/getsafeGetTaxYearRollup — corpo { "result": …, "taxYear": 2025 }
Terminal window
curl -sS -X POST 'https://api.igcp-aforro.primor.me/v1/simulate' \
-H 'content-type: application/json' \
-d '{
"series": "F",
"subscriptionDate": "2024-03-15",
"units": 1000,
"includeSchedule": true
}' | jq .

A v1 não exige chave API. Recomenda-se limitar no Cloudflare WAF (por exemplo 60 pedidos/minuto por IP em /v1/*). Respostas 429 podem ser configuradas no edge; o Worker em si não implementa quota na v1.

O mesmo núcleo está disponível via servidor MCP stdio no monorepo (igcp-aforro-mcp). Ver CONTRIBUTING para desenvolvimento local e exemplo de mcp.json.