Send a de-identified finding and its study. Get back the category a validated criteria pack reached (Fleischner, BI-RADS, DEXA and more), the pack and version that reached it, the exact text the engine read, published guidance and the evidence published since — and, when you want it, a model-written IMPRESSION constrained to those verdicts. Deterministic by default, priced per decision, never trained on your data.
The same deterministic core that drafts reports inside RadVector answers /v1.
An in-process answer and an API answer are pinned identical by test.
Pack, rule version, validator, validation date, knowledge release and a trace id. A draft pack answers as advisory; only a validated pack with a confident decision is usable for output.
Published guidance and emerging evidence are two separate streams, so a new paper informs the clinician without ever being mistaken for the standard.
RadVector API answers one kind of question precisely: given what was seen on an imaging study, what does current, physician-vetted practice say about it, and what is the evidence for that answer? It reaches that answer from physician-vetted medical data — deterministic where the criteria are a table, and natural-language processing where the problem is that radiology lives in prose. It shows its work either way.
Ask a general model for a follow-up interval and you get a fluent, specific answer nobody can audit. A tool call returns it with the pack and version it followed, so your product cites rather than asserts — and the answer moves when the criteria move, with no retrain.
The reading workstation is where a recommendation is worth the most, and integration weight is what has kept it out. No identifier has a field in the contract, and you keep your own viewer, worklist and report.
Is this the right study to order, and what became of the incidental finding the last study described? Both need versioned criteria with an applicability boundary — which a record system has no reason to maintain in-house.
A detection model produces a measurement. What the ordering physician needs is what that measurement means and by when — the clinical half, with a citation, that turns a detection into a recommendation.
Metered per clinical decision, no seat license, no minimum. What counts as a decision →
curl -X POST "$API/v1/inference/evaluate" \
-H "Authorization: Bearer rvk_…" -H "Content-Type: application/json" \
-d '{"study":{"modality":"ct","region":"thorax","age_years":64,"sex":"M","attributes":{"risk":"high"}},
"findings":[{"label":"nodule","region":"thorax","laterality":"right","composition":"solid",
"measurement":{"value_mm":7},"attributes":{"multiplicity":"single"}}]}'
Add "include_references": true for guidance and evidence, or call
/v1/impression for the same verdicts plus a constrained IMPRESSION.
The verdict, and everything a reviewer needs to check it. Trimmed here for width; every field is documented in the API reference.
{
"trace_id": "trc_2f9c…",
"outcomes": [{
"authoritative": {
"system": "Fleischner",
"category_id": "FLE-SOLID-SINGLE-6TO8-HIGH",
"canonical_language": "Single solid pulmonary nodule measuring 6 to 8 mm in a high-risk patient.",
"recommendation": "CT at 6-12 months, then CT at 18-24 months.",
"confidence": 0.85,
"usable_for_output": true,
"is_deferral": false,
"provenance": {
"pack_version": "fleischner-2017-r5",
"validation_status": "validated",
"validation_date": "2026-08-18",
"engine": "rc_algorithmic"
}
},
"systems_considered": ["Fleischner"],
"engine_input": "CT of the chest. 64-year-old male. Patient is high-risk. Single solid pulmonary nodule on the right measuring 7 mm."
}]
}
engine_input is the exact text the engine read, so a reviewer can reproduce the verdict
by hand rather than trusting it.usable_for_output is true only for a validated pack reaching a confident decision. A
pack still in draft answers advisory and says so; a deferral says why it deferred.pack_version pins what the answer followed, so you see guidance move on purpose instead
of discovering it in a diff of your own outputs."include_references": true and each decision also asks for the published guidance
behind it and the evidence published since, returned as two separate streams so a recent paper is never
mistaken for the standard.