The FastAPI layer exposes the current deterministic capabilities of the repo without widening scope.
Run locally:
make apiDirect equivalent: .venv/bin/python -m uvicorn api:app --reload
Base URL in local examples: http://127.0.0.1:8000
Returns basic service status, including:
- runtime
rules_version - active
rulebook_active_release_id - supported procedure count
- monitored source count
curl http://127.0.0.1:8000/healthLists payer/procedure combinations currently supported by the rules bundle, including:
- procedure category
- rule family
- supported sites
- last rule update
- provenance summary
- monitored-for-drift status
curl http://127.0.0.1:8000/supported-proceduresLists bundled synthetic demo cases.
curl http://127.0.0.1:8000/demo-casesRuns deterministic administrative readiness evaluation.
curl -X POST http://127.0.0.1:8000/evaluate \
-H "Content-Type: application/json" \
-d '{
"payer": "Aetna",
"procedure_code": "CPAP_DEVICE",
"dx_codes": ["G47.33"],
"site_of_care": "outpatient",
"specialty": "Sleep Medicine",
"note_text": "Dx: OSA. Sleep study completed 2024-05-18. AHI 22 documented. Requests CPAP E0601."
}'Response highlights:
overall_statussubmission_readinessresultsblockersfactsevidence_mapaudit_trail
Returns governance-only drift status for configured monitored sources, including:
- source name
- source type
- check frequency
- freshness status
- days since last snapshot check
- latest snapshot hash
- latest event
- latest diff path if present
- linked rule source label
- review reason when stale or drifted
curl http://127.0.0.1:8000/drift-statusReturns the current rulebook manifest view, including:
- active release ID
- stage assignments
- reviewed and active release metadata
- runtime-match validation for the active snapshot
- any manifest validation errors
curl http://127.0.0.1:8000/rulebookReturns a structured diff between two rulebook releases.
curl "http://127.0.0.1:8000/rulebook/diff?from_release_id=2026-04-09-reviewed-v0.4&to_release_id=2026-04-09-active-v0.5"Unsupported scope returns a structured error response like:
{
"error": "unsupported_scope",
"detail": "Unsupported request scope ..."
}The API is intentionally conservative:
- unsupported procedures are rejected
- unsupported sites of care are rejected
- missing documentation does not raise an error; it drives
CANNOT_DETERMINE - governance endpoints never mutate runtime rules
- The API uses synthetic-only demo logic.
- There is no persistence layer.
- There is no authentication layer.
- There is no autonomous action endpoint.