{"openapi":"3.1.0","info":{"title":"RadCommons API","version":"1.0.0","description":"Read-only, open, free API for radiology's decision corpus: classification lexicons, management algorithms, and incidental findings criteria. Every clinical field carries its citation, locator, consensus, and verification status.\n\nConteúdo de referência reescrito. Confira a publicação primária vigente. Não é dispositivo médico nem substitui o julgamento clínico. O radiologista responsável pelo laudo permanece o autor e o responsável.","contact":{"name":"RadCommons","url":"https://radcommons.laudos.ai"},"license":{"name":"Open API. Content paraphrased and linked to primary sources."}},"servers":[{"url":"https://radcommons.laudos.ai"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"RadCommons API key (be_...)"},"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/v1/organs":{"get":{"operationId":"listOrgans","summary":"List organs with system counts","responses":{"200":{"description":"Organs and counts"}}}},"/api/v1/systems":{"get":{"operationId":"listSystems","summary":"List and filter systems","parameters":[{"name":"organ","in":"query","schema":{"type":"string"},"description":"Filter by organ"},{"name":"modality","in":"query","schema":{"type":"string"},"description":"Filter by modality (CT, MRI, US, Mammography)"},{"name":"family","in":"query","schema":{"type":"string","enum":["lexicon","algorithm","incidental","appropriateness"]}},{"name":"status","in":"query","schema":{"type":"string","enum":["current","retired","draft"]}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Full text query"}],"responses":{"200":{"description":"Matching systems"}}}},"/api/v1/systems/{id}":{"get":{"operationId":"getSystem","summary":"Get a system with decision units, outcomes, crossrefs, citations, currency, and version lineage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"System slug, e.g. bosniak-2019"}],"responses":{"200":{"description":"System detail"},"404":{"description":"Not found"}}}},"/api/v1/search":{"get":{"operationId":"searchCorpus","summary":"Full text and fuzzy search across systems and outcomes","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ranked hits"}}}},"/api/v1/context":{"get":{"operationId":"getGroundedContext","summary":"Grounded, citation attributed context for an AI assistant (LLM prompt injection)","description":"Returns the most relevant classification systems with their outcomes, criteria, management, citations, locators, and verification status. Use format=markdown for a ready to inject prompt block. Every clinical line is cited and flagged draft or verified.","parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"Finding text or query to ground against"},{"name":"systems","in":"query","schema":{"type":"string"},"description":"Comma separated system slugs to include explicitly"},{"name":"organ","in":"query","schema":{"type":"string"},"description":"Restrict to an organ"},{"name":"limit","in":"query","schema":{"type":"integer","default":4},"description":"Max systems (1 to 8)"},{"name":"format","in":"query","schema":{"type":"string","enum":["json","markdown"]},"description":"json (default) or markdown"},{"name":"verified","in":"query","schema":{"type":"boolean","default":true},"description":"Only include current systems and radiologist-verified outcomes. Set false only for curation/research workflows."}],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Grounded context (JSON or markdown)"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postGroundedContext","summary":"Grounded context from a longer finding text","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"systems":{"type":"array","items":{"type":"string"}},"organ":{"type":"string"},"limit":{"type":"integer"},"format":{"type":"string","enum":["json","markdown"]},"verified":{"type":"boolean","default":true}}}}}},"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Grounded context (JSON or markdown)"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"API key required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/changes":{"get":{"operationId":"listChanges","summary":"Version events feed (also available as RSS at /feed/changes.xml)","responses":{"200":{"description":"Version events"}}}},"/api/v1/coverage":{"get":{"operationId":"getCoverage","summary":"What is covered and what is explicitly not yet covered","responses":{"200":{"description":"Coverage report"}}}}}}