Retrieve results
Poll study status and fetch the report text, structured findings, and key images.
Once processing starts, poll the study until it completes, then fetch the three result resources. Together they carry everything a radiologist needs to review, edit, and sign the report inside your own reporting UI.
Poll status
curl -s "https://api.vitalview.ai/v1/studies/a1b2c3d4" -H "X-API-Key: $KEY"
{
"study_id": "a1b2c3d4",
"scan_id": "9f8e7d6c5b4a",
"status": "processing",
"stages": {
"planning": { "status": "complete" },
"segmentation": { "status": "complete" },
"roi_generation": { "status": "running", "total_slices": 24, "slices_analyzed": 9 },
"screening": { "status": "pending" },
"report": { "status": "pending" }
},
"scan_type": "ct_brain",
"vendor_ref": "ACC-2231",
"patient": { "name": "DOE^JANE", "dob": "1980-01-01", "sex": "F" },
"clinical_indication": "Fall with loss of consciousness",
"started_at": "2026-07-05T09:14:02Z",
"completed_at": null,
"error": null
}
Poll every 15 to 30 seconds. The stages object lets you show real progress in your UI. When status is complete, fetch the results below. GET /studies lists all your studies and accepts status and limit query parameters.
Report
curl -s ".../studies/a1b2c3d4/report" -H "X-API-Key: $KEY"
{
"study_id": "a1b2c3d4",
"scan_id": "9f8e7d6c5b4a",
"report_markdown": "## CLINICAL INDICATION\nFall with loss of consciousness...\n\n## FINDINGS\n...",
"report_pdf_url": "https://...",
"report_url_expires_in": 3600,
"generated_at": "2026-07-05T09:16:31Z"
}
report_markdownis the draft report as structured markdown with the standard sections (clinical indication, technique, findings, impression). Load it into your report editor for the radiologist to edit and sign.report_pdf_urlis a rendered PDF of the same draft. The URL expires after one hour; fetch this endpoint again for a fresh one rather than storing the URL.
Findings
curl -s ".../studies/a1b2c3d4/findings" -H "X-API-Key: $KEY"
Returns the structured findings payload. Each finding carries what your UI needs to link narrative text to anatomy and images:
| Field | Description |
|---|---|
id, label | Stable id and short display label |
narrative | Sentence-level finding text, ready for the report body |
report_section | Which report section the finding belongs to |
severity, confidence | Triage severity and model confidence |
anatomy | region, structure, laterality |
evidence | roi_id, slice_range, key_slices linking to the images manifest |
Key images
curl -s ".../studies/a1b2c3d4/images" -H "X-API-Key: $KEY"
{
"study_id": "a1b2c3d4",
"scan_id": "9f8e7d6c5b4a",
"preview_url": "https://...",
"images": [
{
"roi_id": "roi_003",
"roi_name": "Right frontal hyperdensity",
"image_url": "https://.../slice_042.png",
"overlay_url": "https://.../slice_042.png",
"mask_url": "https://.../mask_042.npy",
"filename": "slice_042.png"
}
]
}
image_urlis the raw slice,overlay_urlthe same slice with the AI highlight,mask_urlthe raw mask array if you want to render your own overlays.- Match images to findings through
roi_id/evidence.key_slices. - URLs are CDN-backed or time-limited. Re-fetch this manifest when you need the images; do not persist URLs.
Next: Errors & status codes