API lodi-t
Acesso programático ao motor farmacocinético (simulação, métricas, Monte Carlo e recomendação de intervalo). Requer assinatura ativa e chave criada em /conta.
Autenticação
Envie sua chave no cabeçalho:
Authorization: Bearer lodi_xxxxxxxxxxxx
Limite: 60 requisições por minuto, por chave. Respostas: 200 ok, 401 chave inválida, 402 sem assinatura, 429 limite, 400 erro de entrada.
Endpoints
GET /api/public/v1/health
Retorna
status do serviço (não requer chave).
POST /api/public/v1/simulate
Body
{
"doses": [{ "diaDose": 0, "doseMg": 1000 }, { "diaDose": 42, "doseMg": 1000 }],
"params": { ... } | undefined,
"config": { "passoDias": 0.5, "horizonteDias": 730 } | undefined
}Retorna
{ perfil: PontoCurva[], metricas: MetricasPK, metricasSS }
POST /api/public/v1/montecarlo
Body
{
"doses": [...],
"nSimulacoes": 200,
"config": { ... } | undefined
}Retorna
ResultadoMonteCarlo com percentis (p5/p25/mediana/p75/p95) e métricas populacionais.
POST /api/public/v1/recommend-interval
Body
{
"doseMg": 1000,
"intervaloDias": 84,
"cmaxObsNgdl": 900,
"cminObsNgdl": 350,
"cavgAlvoNgdl": 600
}Retorna
RecomendacaoIntervalo (intervalo ótimo entre 6 e 16 sem, justificativa, sensibilidade individual).
Exemplo (curl)
curl -X POST https://lodi-undet.lovable.app/api/public/v1/simulate \
-H "Authorization: Bearer lodi_XXXXX" \
-H "Content-Type: application/json" \
-d '{"doses":[{"diaDose":0,"doseMg":1000},{"diaDose":42,"doseMg":1000}]}'