Every NCCI route is also available under the canonical knowledge namespace at
/v1/knowledge/ncci/.... Both /v1/ncci/mue/practitioner/99213 and /v1/knowledge/ncci/mue/practitioner/99213 return identical results — pick whichever fits your URL conventions.Pick a date_of_service to select the right NCCI version
Every endpoint accepts an optional date_of_service=YYYY-MM-DD query parameter (and validate/batch accepts date_of_service in the request body). The platform stores every quarterly NCCI release with its effective_date and (where applicable) deletion_date, then returns the row that was active on that date — not just the latest.
This means you can confidently reprice or re-validate an historical claim without worrying that the response reflects a later CMS revision.
MUE — Medically Unlikely Edits
MUE limits are split by clinical setting. Use the endpoint matching your claim type:Response
MAI (MUE Adjudication Indicator)
PTP — Procedure-to-Procedure Edits
PTP edits tell you whether two codes are bundled. Endpoints are split by claim type:Response
Modifier Indicator
AOC — Add-On Code Edits
Look up which add-on codes are valid with a primary procedure (or vice versa). Provide at least one ofadd_on_code or primary_proc_cd:
Response
AOC Edit Types
Validate a Code Pair
Quick check whether two codes have a PTP bundling edit:AI Summaries
Add?include_summary=true to any MUE, PTP, or AOC request to get a plain-English explanation written for billing staff:
- What the procedure code represents
- Why it appears on the edit list
- Practical billing impact
- A follow-up question to confirm interpretation
AI summaries require the rcm-agents service running at
RCM_AGENTS_URL with a valid ANTHROPIC_API_KEY. Without it, ai_summary returns null — the structured data still works.Sample data coverage
The bundled sample data covers these codes across all settings and claim types:Data freshness
NCCI data is sourced from CMS quarterly releases. The platform tracks theversion_year / quarter / effective_date of every row so historical versions coexist (this is what powers date_of_service selection above). Use the admin API to check data freshness and trigger syncs:
data/refresh response now also reports betos_nodes and betos_assignments counters from the BETOS/RBCS taxonomy loader (see Service Code Groups).