Skip to content

Orthanc API API

by orthanc-server.com

Open documentation ↗

Overview

This is the full documentation of the [REST API](https://book.orthanc-server.com/users/rest.html) of Orthanc.<p>This reference is automatically generated from the source code of Orthanc. A [shorter cheat sheet](https://book.orthanc-server.com/users/rest-cheatsheet.html) is part of the Orthanc Book.<p>An earlier, manually crafted version from August 2019, is [still available](2019-08-orthanc-openapi.html), but is not up-to-date anymore ([source](https://groups.google.com/g/orthanc-users/c/NUiJTEICSl8/m/xKeqMrbqAAAJ)).

Orthanc API is a documents & productivity API from orthanc-server.com. It needs no API key. It is served over HTTPS. Its OpenAPI description documents 274 endpoints.

At a glance

Authentication
No auth
HTTPS
Yes
CORS
Unknown
Base URL
https://demo.orthanc-server.com/
Version
1.11.3
Endpoints
274
Spec updated
2023-03-06

Make a first request

Replace the placeholders; the documentation says exactly where credentials go.

cURL
curl -X GET "https://demo.orthanc-server.com/changes" \
  -H "Accept: application/json"
JavaScript
const response = await fetch("https://demo.orthanc-server.com/changes", {
  method: "GET",
  headers: {
    "Accept": "application/json",
  },
});
const data = await response.json();
console.log(data);
Python
import requests

response = requests.request(
    "GET",
    "https://demo.orthanc-server.com/changes",
    headers={
    "Accept": "application/json",
    },
    timeout=30,
)
print(response.json())

Endpoints

MethodPathWhat it does
GET/changesList changes
DELETE/changesClear changes
GET/exportsList exports
DELETE/exportsClear exports
GET/instancesList the available instances
POST/instancesUpload DICOM instances
GET/instances/{id}Get information about some instance
DELETE/instances/{id}Delete some instance
POST/instances/{id}/anonymizeAnonymize instance
GET/instances/{id}/attachmentsList attachments
GET/instances/{id}/attachments/{name}List operations on attachments
PUT/instances/{id}/attachments/{name}Set attachment
DELETE/instances/{id}/attachments/{name}Delete attachment
POST/instances/{id}/attachments/{name}/compressCompress attachment
GET/instances/{id}/attachments/{name}/compressed-dataGet attachment (no decompression)
GET/instances/{id}/attachments/{name}/compressed-md5Get MD5 of attachment on disk
GET/instances/{id}/attachments/{name}/compressed-sizeGet size of attachment on disk
GET/instances/{id}/attachments/{name}/dataGet attachment
GET/instances/{id}/attachments/{name}/infoGet info about the attachment
GET/instances/{id}/attachments/{name}/is-compressedIs attachment compressed?
GET/instances/{id}/attachments/{name}/md5Get MD5 of attachment
GET/instances/{id}/attachments/{name}/sizeGet size of attachment
POST/instances/{id}/attachments/{name}/uncompressUncompress attachment
POST/instances/{id}/attachments/{name}/verify-md5Verify attachment
GET/instances/{id}/contentGet raw tag
POST/instances/{id}/exportWrite DICOM onto filesystem
GET/instances/{id}/fileDownload DICOM
GET/instances/{id}/framesList available frames
GET/instances/{id}/frames/{frame}List operations
GET/instances/{id}/frames/{frame}/image-int16Decode a frame (int16)
GET/instances/{id}/frames/{frame}/image-uint16Decode a frame (uint16)
GET/instances/{id}/frames/{frame}/image-uint8Decode a frame (uint8)
GET/instances/{id}/frames/{frame}/matlabDecode frame for Matlab
GET/instances/{id}/frames/{frame}/numpyDecode frame for numpy
GET/instances/{id}/frames/{frame}/previewDecode a frame (preview)
GET/instances/{id}/frames/{frame}/rawAccess raw frame
GET/instances/{id}/frames/{frame}/raw.gzAccess raw frame (compressed)
GET/instances/{id}/frames/{frame}/renderedRender a frame
GET/instances/{id}/headerGet DICOM meta-header
GET/instances/{id}/image-int16Decode an image (int16)
GET/instances/{id}/image-uint16Decode an image (uint16)
GET/instances/{id}/image-uint8Decode an image (uint8)
GET/instances/{id}/matlabDecode frame for Matlab
GET/instances/{id}/metadataList metadata
GET/instances/{id}/metadata/{name}Get metadata
PUT/instances/{id}/metadata/{name}Set metadata
DELETE/instances/{id}/metadata/{name}Delete metadata
POST/instances/{id}/modifyModify instance
GET/instances/{id}/moduleGet instance module
GET/instances/{id}/numpyDecode instance for numpy
GET/instances/{id}/patientGet parent patient
GET/instances/{id}/pdfGet embedded PDF
GET/instances/{id}/previewDecode an image (preview)
POST/instances/{id}/reconstructReconstruct tags & optionally files of instance
GET/instances/{id}/renderedRender an image
GET/instances/{id}/seriesGet parent series
GET/instances/{id}/simplified-tagsGet human-readable tags
GET/instances/{id}/statisticsGet instance statistics
GET/instances/{id}/studyGet parent study
GET/instances/{id}/tagsGet DICOM tags
GET/jobsList jobs
GET/jobs/{id}Get job
POST/jobs/{id}/cancelCancel job
POST/jobs/{id}/pausePause job
POST/jobs/{id}/resubmitResubmit job
POST/jobs/{id}/resumeResume job
GET/jobs/{id}/{key}Get job output
GET/modalitiesList DICOM modalities
GET/modalities/{id}List operations on modality
PUT/modalities/{id}Update DICOM modality
DELETE/modalities/{id}Delete DICOM modality
GET/modalities/{id}/configurationGet modality configuration
POST/modalities/{id}/echoTrigger C-ECHO SCU
POST/modalities/{id}/finddeprecatedHierarchical C-FIND SCU
POST/modalities/{id}/find-instancedeprecatedC-FIND SCU for instances
POST/modalities/{id}/find-patientdeprecatedC-FIND SCU for patients
POST/modalities/{id}/find-seriesdeprecatedC-FIND SCU for series
POST/modalities/{id}/find-studydeprecatedC-FIND SCU for studies
POST/modalities/{id}/find-worklistC-FIND SCU for worklist
POST/modalities/{id}/moveTrigger C-MOVE SCU
POST/modalities/{id}/queryTrigger C-FIND SCU
POST/modalities/{id}/storage-commitmentTrigger storage commitment request
POST/modalities/{id}/storeTrigger C-STORE SCU
POST/modalities/{id}/store-straightStraight C-STORE SCU
GET/patientsList the available patients
GET/patients/{id}Get information about some patient
DELETE/patients/{id}Delete some patient
POST/patients/{id}/anonymizeAnonymize patient
GET/patients/{id}/archiveCreate ZIP archive
POST/patients/{id}/archiveCreate ZIP archive
GET/patients/{id}/attachmentsList attachments
GET/patients/{id}/attachments/{name}List operations on attachments
PUT/patients/{id}/attachments/{name}Set attachment
DELETE/patients/{id}/attachments/{name}Delete attachment
POST/patients/{id}/attachments/{name}/compressCompress attachment
GET/patients/{id}/attachments/{name}/compressed-dataGet attachment (no decompression)
GET/patients/{id}/attachments/{name}/compressed-md5Get MD5 of attachment on disk
GET/patients/{id}/attachments/{name}/compressed-sizeGet size of attachment on disk
GET/patients/{id}/attachments/{name}/dataGet attachment
GET/patients/{id}/attachments/{name}/infoGet info about the attachment

Showing the first 100 of 274 endpoints; the full list is in the documentation.

Questions

Does the Orthanc API API need an API key?

No. The Orthanc API API can be called without an API key or sign-up, which makes it handy for prototypes and front-end demos.

Does the Orthanc API API support HTTPS?

Yes, the Orthanc API API is served over HTTPS.

How many endpoints does the Orthanc API API have?

Its OpenAPI description lists 274 endpoints in version 1.11.3. The first 100 are shown on this page.

What are alternatives to the Orthanc API API?

Other Documents & Productivity APIs include JIRA, Notion, DocStruct, Asana, ClickUp.

Compare alternatives →

Listed from APIs.guru (CC0).