RadVector API clinical inference for radiology

Validated radiology decisions, with provenance, as an API.

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.

One engine, two front doors

The same deterministic core that drafts reports inside RadVector answers /v1. An in-process answer and an API answer are pinned identical by test.

Provenance on every verdict

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.

Standards plus what came after

Published guidance and emerging evidence are two separate streams, so a new paper informs the clinician without ever being mistaken for the standard.

A clinical reference tool for all things radiology

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.

Who calls it

Model and agent developers

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.

How model teams wire it →

PACS, RIS and enterprise imaging

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.

What an imaging platform gets →

EMR and order entry

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.

At the point of ordering →

Imaging AI vendors

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.

From detection to decision →

Pricing

Metered per clinical decision, with no seat license and no minimum. The live per-unit rate loads here from our billing provider.

Metered per clinical decision, no seat license, no minimum. What counts as a decision →

Quick start

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.

What comes back

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."
  }]
}

Read it before you sign up for it

The API reference is public — every route, every schema and the exact response shape, with no account and no conversation first. When you want to make a real call, an account takes a couple of minutes.