Skip to content

AIRPort — AI Result Port

AIRPort is the landing port for AI results before they fly off into the user’s application. Third-party VLM and model vendors submit inference results here, and Presto makes them instantly available to radiologists in their reporting workflow.

Radiology AI is a multi-vendor world. A single organization might use one vendor or model for chest X-ray drafts, another for fracture identification, and a third for a Computed Tomography Vision Language Model. AIRPort provides a single, standardized ingestion point so that:

  • Organizations choose which vendors and models they trust
  • Every result carries a usage note (e.g., “Research use only”) set by the organization
  • Results appear in the radiologist’s workflow regardless of which vendor produced them
  • Idempotent submission prevents duplicate results from retry logic

See Authentication for API key setup and base URL. See Errors & Rate Limits for rate limiting and error codes.

POST /api/v1/airport/ingest/

Submit an AI inference result for a specific study.

FieldTypeRequiredDescription
accessionstringYesStudy’s accession number, used to link the AIResult to the active study.
sitestringNoOptional site identifier, if accession needs to be namespaced to a site
model_idstringYesVendor model identifier in {vendor}/{model} format (e.g., AcmeAI/chest-cxr)
model_versionstringNoModel version string
textstringYesAI-generated findings text (max 100KB)
metadataobjectNoFreeform JSON metadata blob (max 100KB)
vendor_reference_idstringNoYour own job/inference ID. Used for idempotency — resubmitting the same value returns the original result
Terminal window
curl -X POST \
https://acme.app.presto.run/api/v1/airport/ingest/ \
-H "Authorization: Bearer prst_live_a1b2c3d4e5f6..." \
-H "Content-Type: application/json" \
-d '{
"accession": "ACC-2024-12345",
"model_id": "AcmeAI/chest-cxr",
"text": "No acute cardiopulmonary process.",
"vendor_reference_id": "acme-job-98765",
"site": "Main Campus",
"model_version": "2.1.0",
"metadata": {
"StudyInstanceUID": "1.2.840.113619.2.55.3.604688119.969.1700000000.123",
"inference_ms": 1420,
"confidence": 0.97
}
}'

201 Created — new result stored:

{
"id": "0192a3b4-c5d6-7e8f-9a0b-1c2d3e4f5a6b",
"accession": "ACC-2024-12345",
"status": "completed",
"created_at": "2024-12-15T14:30:00Z"
}

200 OK — idempotent hit (same vendor_reference_id already submitted):

{
"id": "0192a3b4-c5d6-7e8f-9a0b-1c2d3e4f5a6b",
"accession": "ACC-2024-12345",
"status": "completed",
"created_at": "2024-12-15T14:30:00Z"
}
StatusReason
403 Forbiddenmodel_id is not authorized for this API key

See Errors & Rate Limits for common error codes (401, 429, etc.).

Each API key is authorized for a specific set of vendor models. If you submit a model_id that is not in the key’s approved set, the request is rejected with a 403.

Your organization administrator controls which models each key can submit results for. This ensures organizations maintain explicit control over which AI systems contribute to their radiologists’ workflows.

If you include a vendor_reference_id in your request, AIRPort uses it for idempotency. Resubmitting the same vendor_reference_id with the same API key returns the original result with a 200 status instead of creating a duplicate.

This is useful for retry logic — if a network error occurs after submission, you can safely retry without worrying about duplicate results reaching the radiologist.

The metadata field is freeform JSON, but we recommend the following keys for future visual integration in the radiologist’s workflow. Presto may display these fields in the UI when present.

KeyTypeDescription
StudyInstanceUIDstringDICOM Study Instance UID — links the result to a specific study
SeriesInstanceUIDstringDICOM Series Instance UID — if the AI ran on a specific series
SOPInstanceUIDstringDICOM SOP Instance UID — if the AI produced a specific output object
inference_msnumberProcessing time in milliseconds
confidencenumberOverall confidence score (0.0–1.0)

DICOM UIDs should follow the standard dotted-numeric format (e.g., 1.2.840.113619.2.55.3.604...).

These keys are not enforced — you may include any JSON-serializable data in metadata. However, using the standard keys above ensures Presto can surface the information to radiologists as we build out the display layer.

{
"accession": "ACC-2024-12345",
"model_id": "AcmeAI/chest-cxr",
"text": "No acute cardiopulmonary process.",
"metadata": {
"StudyInstanceUID": "1.2.840.113619.2.55.3.604688119.969.1700000000.123",
"SeriesInstanceUID": "1.2.840.113619.2.55.3.604688119.969.1700000000.456",
"inference_ms": 1420,
"confidence": 0.97
}
}

Organizations can attach usage notes to AI results (e.g., “Research use only. Not for clinical decision making.”). These notes are composed from two sources:

  1. Vendor model note — set by platform administrators for the model globally
  2. Key note — set by the organization administrator for the specific API key

Both are displayed to the radiologist alongside the AI findings.