Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
description: 'This is the full documentation of the REST API of Orthanc.
This reference is automatically generated from the source code of Orthanc. A shorter cheat sheet is part of the Orthanc Book.
An earlier, manually crafted version from August 2019, is still available, but is not up-to-date anymore (source).'
title: Orthanc System API
version: 1.13.0
servers:
- url: https://orthanc.uclouvain.be/demo/
tags:
- name: System
paths:
/plugins:
get:
deprecated: false
description: List all the installed plugins
parameters: []
responses:
'200':
content:
application/json:
schema:
description: JSON array containing the identifiers of the installed plugins
example:
- explorer.js
- AWS S3 Storage
- authorization
- connectivity-checks
- delayed-deletion
- dicom-web
- education
- gdcm
- housekeeper
- indexer
- multitenant-dicom
- mysql-index
- mysql-storage
- neuro
- odbc-index
- odbc-storage
- ohif
- orthanc-explorer-2
- postgresql-index
- postgresql-storage
- serve-folders
- stl
- stone-rtviewer
- stone-webviewer
- tcia
- transfers
- volview
- web-viewer
- worklists
- wsi
description: ''
summary: List plugins
tags:
- System
operationId: getPlugins
x-operation-id-source: derived
/plugins/explorer.js:
get:
deprecated: false
description: Get the JavaScript extensions that are installed by all the plugins using the `OrthancPluginExtendOrthancExplorer()` function of the plugin SDK. This route is for internal use of Orthanc Explorer.
parameters: []
responses:
'200':
content:
application/javascript:
examples: {}
schema:
description: The JavaScript extensions
description: ''
summary: JavaScript extensions to Orthanc Explorer
tags:
- System
operationId: getPluginsExplorerJs
x-operation-id-source: derived
/plugins/{id}:
get:
deprecated: false
description: Get system information about the plugin whose identifier is provided in the URL
parameters:
- description: Identifier of the job of interest
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
description: JSON object containing information about the plugin
example:
Description: Implementation of DICOMweb (QIDO-RS, STOW-RS and WADO-RS) and WADO-URI.
ExtendsOrthancExplorer: true
ID: dicom-web
RootUri: ../dicom-web/app/client/index.html
Version: '1.23'
description: ''
summary: Get plugin
tags:
- System
operationId: getPluginsById
x-operation-id-source: derived
/statistics:
get:
deprecated: false
description: Get statistics related to the database of Orthanc
parameters: []
responses:
'200':
content:
application/json:
schema:
description: ''
example:
CountInstances: 2552
CountPatients: 8
CountSeries: 26
CountStudies: 8
TotalDiskSize: '1030997023'
TotalDiskSizeMB: 983
TotalUncompressedSize: '1030997023'
TotalUncompressedSizeMB: 983
properties:
CountInstances:
description: Number of DICOM instances stored in Orthanc
type: number
CountPatients:
description: Number of patients stored in Orthanc
type: number
CountSeries:
description: Number of DICOM series stored in Orthanc
type: number
CountStudies:
description: Number of DICOM studies stored in Orthanc
type: number
TotalDiskSize:
description: Size of the storage area (in bytes)
type: string
TotalDiskSizeMB:
description: Size of the storage area (in megabytes)
type: number
TotalUncompressedSize:
description: Total size of all the files once uncompressed (in bytes). This corresponds to `TotalDiskSize` if no compression is enabled, cf. `StorageCompression` configuration option
type: string
TotalUncompressedSizeMB:
description: Total size of all the files once uncompressed (in megabytes)
type: number
description: ''
summary: Get database statistics
tags:
- System
operationId: getStatistics
x-operation-id-source: derived
/system:
get:
deprecated: false
description: Get system information about Orthanc
parameters: []
responses:
'200':
content:
application/json:
schema:
description: ''
example:
ApiVersion: 31
Capabilities:
HasExtendedChanges: true
HasExtendedFind: true
HasKeyValueStores: true
HasQueues: true
HasReserveQueueValue: true
CheckRevisions: false
DatabaseBackendPlugin: null
DatabaseServerIdentifier: a67fa91c-20328956-26614107-bbaec3f4-5cbbc6f9
DatabaseVersion: 6
DicomAet: ORTHANC
DicomDefaultRetrieveMethod: C-MOVE
DicomPort: 4242
HasLabels: true
HttpPort: 8042
IngestTranscoding: ''
IsHttpServerSecure: false
MainDicomTags:
Instance: 0008,0012;0008,0013;0008,0018;0020,0012;0020,0013;0020,0032;0020,0037;0020,0100;0020,4000;0028,0008;0054,1330
Patient: 0010,0010;0010,0020;0010,0030;0010,0040;0010,1000
Series: 0008,0021;0008,0031;0008,0060;0008,0070;0008,0201;0008,1010;0008,103e;0008,1070;0018,0010;0018,0015;0018,0024;0018,1030;0018,1090;0018,1400;0020,000e;0020,0011;0020,0037;0020,0105;0020,1002;0040,0244;0040,0245;0040,0254;0040,0275;0054,0081;0054,0101;0054,1000
Study: 0008,0020;0008,0030;0008,0050;0008,0080;0008,0090;0008,0201;0008,1030;0020,000d;0020,0010;0032,1032;0032,1060
MaximumPatientCount: 0
MaximumStorageMode: Recycle
MaximumStorageSize: 0
Name: Orthanc Demo
OverwriteInstances: false
OverwriteInstancesMode: Never
PatientLevelEnabled: true
Performance:
ConcurrentJobs: 2
DicomParserCacheSize: 256
DicomParserMemoryCapacity: 256
DicomParserThreadsCount: 2
DicomThreadsCount: 4
HttpThreadsCount: 50
MaximumStorageCacheSize: 128
SequentialDicomReaderThreadsCount: 4
StorageLoaderThreadsCount: 4
StorageMemoryCapacity: 512
TranscoderCacheSize: 256
TranscoderMemoryCapacity: 256
TranscoderThreadsCount: 4
PluginsEnabled: true
ReadOnly: false
StorageAreaPlugin: null
StorageCompression: false
StoreMD5ForAttachments: true
ThirdPartyPatches:
- civetweb-1.16.patch
- dcmtk-3.7.0-max-nested-sequence.patch
ThirdPartyVersions:
boost: 1.69.0
civetweb: 1.16.0
dcmtk: 3.7.0
jsoncpp: 0.10.6
libcurl: 8.17.0
libjpeg: '9.0'
libpng: 1.6.50
lua: 5.4.7
openssl: 3.1.4
protobuf: 3.5.1
pugixml: 1.14.0
sqlite: 3.50.4
zlib: 1.3.1
UserMetadata: {}
Version: 1.13.0
properties:
ApiVersion:
description: Version of the REST API
type: number
Capabilities:
description: Whether the database back-end supports optional features like 'HasExtendedChanges', 'HasExtendedFind' (new in Orthanc 1.12.5), 'HasKeyValueStores', 'HasQueues' (new in Orthanc 1.12.8), and 'HasReserveQueueValue' (new in Orthanc 1.12.10)
type: object
CheckRevisions:
description: Whether Orthanc handle revisions of metadata and attachments to deal with multiple writers (new in Orthanc 1.9.2)
type: boolean
DatabaseBackendPlugin:
description: Information about the installed database index plugin (`null` if no such plugin is installed)
type: string
DatabaseServerIdentifier:
description: ID of the server in the database (when running multiple Orthanc on the same DB)
type: string
DatabaseVersion:
description: 'Version of the database: https://orthanc.uclouvain.be/book/developers/db-versioning.html'
type: number
DicomAet:
description: The DICOM AET of Orthanc
type: string
DicomDefaultRetrieveMethod:
description: The DicomDefaultRetrieveMethod configuration
type: string
DicomPort:
description: The port to the DICOM server of Orthanc
type: number
HasLabels:
description: Whether the database back-end supports labels (new in Orthanc 1.12.0)
type: boolean
HttpPort:
description: The port to the HTTP server of Orthanc
type: number
IngestTranscoding:
description: Whether instances are transcoded when ingested into Orthanc (`` if no transcoding is performed) (new in Orthanc 1.11.0)
type: string
IsHttpServerSecure:
description: 'Whether the REST API is properly secured (assuming no reverse proxy is in use): https://orthanc.uclouvain.be/book/faq/security.html#securing-the-http-server'
type: boolean
MainDicomTags:
description: The list of MainDicomTags saved in DB for each resource level (new in Orthanc 1.11.0)
type: object
MaximumPatientCount:
description: The configured MaximumPatientCount (new in Orthanc 1.12.4)
type: number
MaximumStorageMode:
description: The configured MaximumStorageMode (new in Orthanc 1.11.3)
type: string
MaximumStorageSize:
description: The configured MaximumStorageSize in MB (new in Orthanc 1.11.3)
type: number
Name:
description: The name of the Orthanc server, cf. the `Name` configuration option
type: string
OverwriteInstances:
description: Whether instances are overwritten when re-ingested (new in Orthanc 1.11.0 and kept as a Boolean for backward compatibility)
type: boolean
OverwriteInstancesMode:
description: Overwriting mode governing how instances are re-ingested (new in Orthanc 1.13.0)
type: string
PatientLevelEnabled:
description: Whether Patient level routes and sanity checks are enabled (new in Orthanc 1.12.11)
type: boolean
Performance:
description: The performance options from the configuration file, with sizes expressed in MB (new in Orthanc 1.13.0)
type: object
PluginsEnabled:
description: Whether Orthanc was built with support for plugins
type: boolean
ReadOnly:
description: Whether Orthanc is running in read only mode (new in Orthanc 1.12.5)
type: boolean
StorageAreaPlugin:
description: Information about the installed storage area plugin (`null` if no such plugin is installed)
type: string
StorageCompression:
description: Whether storage compression is enabled (new in Orthanc 1.11.0)
type: boolean
StoreMD5ForAttachments:
description: The configured StoreMD5ForAttachments (new in Orthanc 1.13.0)
type: boolean
ThirdPartyPatches:
description: Patches applied to the third-party libraries included in this binary version of Orthanc (new in Orthanc 1.13.0)
items:
type: string
type: array
ThirdPartyVersions:
description: Versions of the third-party libraries (new in Orthanc 1.13.0)
type: object
UserMetadata:
description: The configured UserMetadata (new in Orthanc 1.12.0)
type: object
Version:
description: Version of Orthanc
type: string
description: ''
summary: Get system information
tags:
- System
operationId: getSystem
x-operation-id-source: derived
/tools/accepted-sop-classes:
get:
deprecated: false
description: Get the list of SOP Class UIDs that are accepted by Orthanc C-STORE SCP. This corresponds to the configuration options `AcceptedSopClasses` and `RejectedSopClasses`.
parameters: []
responses:
'200':
content:
application/json:
examples: {}
schema:
description: JSON array containing the SOP Class UIDs
description: ''
summary: Get accepted SOPClassUID
tags:
- System
operationId: getToolsAcceptedSopClasses
x-operation-id-source: derived
/tools/accepted-transfer-syntaxes:
get:
deprecated: false
description: Get the list of UIDs of the DICOM transfer syntaxes that are accepted by Orthanc C-STORE SCP. This corresponds to the configuration options `AcceptedTransferSyntaxes` and `XXXTransferSyntaxAccepted`.
parameters: []
responses:
'200':
content:
application/json:
examples: {}
schema:
description: JSON array containing the transfer syntax UIDs
description: ''
summary: Get accepted transfer syntaxes
tags:
- System
operationId: getToolsAcceptedTransferSyntaxes
x-operation-id-source: derived
put:
deprecated: false
description: Set the DICOM transfer syntaxes that accepted by Orthanc C-STORE SCP
parameters: []
requestBody:
content:
application/json:
schema:
description: JSON array containing a list of transfer syntax UIDs to be accepted. Wildcards `?` and `*` are accepted.
text/plain:
schema:
description: UID of the transfer syntax to be accepted. Wildcards `?` and `*` are accepted.
responses:
'200':
content:
application/json:
examples: {}
schema:
description: JSON array containing the now-accepted transfer syntax UIDs
description: ''
summary: Set accepted transfer syntaxes
tags:
- System
operationId: putToolsAcceptedTransferSyntaxes
x-operation-id-source: derived
/tools/bulk-anonymize:
post:
deprecated: false
description: Start a job that will anonymize all the DICOM patients, studies, series or instances whose identifiers are provided in the `Resources` field.
parameters: []
requestBody:
content:
application/json:
schema:
description: ''
properties:
Asynchronous:
description: If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.
type: boolean
DicomVersion:
description: Version of the DICOM standard to be used for anonymization. Check out configuration option `DeidentifyLogsDicomVersion` for possible values.
type: string
Force:
description: Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world
type: boolean
Keep:
description: List of DICOM tags whose value must not be destroyed by the anonymization. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).
items:
type: string
type: array
KeepLabels:
description: Keep the labels of all resources level (defaults to `false`)
type: boolean
KeepPrivateTags:
description: Keep the private tags from the DICOM instances (defaults to `false`)
type: boolean
KeepSource:
description: If set to `false`, instructs Orthanc to the remove original resources. By default, the original resources are kept in Orthanc.
type: boolean
LossyQuality:
description: If transcoding to a lossy transfer syntax, this entry defines the quality as an integer between 1 and 100. If not provided, the value is defined by the "DicomLossyTranscodingQuality" configuration. (new in v1.12.7)
type: number
Permissive:
description: If `true`, ignore errors during the individual steps of the job. Default value is `false`.
type: boolean
Priority:
description: In asynchronous mode, the priority of the job. The higher the value, the higher the priority. Default value is `0`
type: number
PrivateCreator:
description: The private creator to be used for private tags in `Replace`
type: string
Remove:
description: List of additional tags to be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).
items:
type: string
type: array
Replace:
description: Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).
type: object
Resources:
description: List of the Orthanc identifiers of the patients/studies/series/instances of interest.
items:
type: string
type: array
Synchronous:
description: If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.
type: boolean
Transcode:
description: 'Transcode the DICOM instances to the provided DICOM transfer syntax: https://orthanc.uclouvain.be/book/faq/transcoding.html'
type: string
UserData:
description: User data that will travel along with the job.
type: object
responses:
'200':
content:
application/json:
examples: {}
schema:
description: The list of all the resources that have been created by this anonymization
properties:
ID:
description: In asynchronous mode, identifier of the job
type: string
Path:
description: In asynchronous mode, path to access the job in the REST API
type: string
description: ''
summary: Anonymize a set of resources
tags:
- System
operationId: postToolsBulkAnonymize
x-operation-id-source: derived
/tools/bulk-content:
post:
deprecated: false
description: Get the content all the DICOM patients, studies, series or instances whose identifiers are provided in the `Resources` field, in one single call.
parameters: []
requestBody:
content:
application/json:
schema:
description: ''
properties:
Full:
description: If set to `true`, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)
type: boolean
Level:
description: This optional argument specifies the level of interest (can be `Patient`, `Study`, `Series` or `Instance`). Orthanc will loop over the items inside `Resources`, and explore upward or downward in the DICOM hierarchy in order to find the level of interest.
type: string
Metadata:
description: If set to `true` (default value), the metadata associated with the resources will also be retrieved.
type: boolean
Resources:
description: List of the Orthanc identifiers of the patients/studies/series/instances of interest.
items:
type: string
type: array
Short:
description: If set to `true`, report the DICOM tags in hexadecimal format
type: boolean
responses:
'200':
description: ''
summary: Describe a set of resources
tags:
- System
operationId: postToolsBulkContent
x-operation-id-source: derived
/tools/bulk-delete:
post:
deprecated: false
description: Delete all the DICOM patients, studies, series or instances whose identifiers are provided in the `Resources` field.
parameters: []
requestBody:
content:
application/json:
schema:
description: ''
properties:
Resources:
description: 'List of the Orthanc identifiers of the patients/studies/series/instances of interest. Starting from Orthanc 1.13.0, this array can also contain an array of JSON objects with 2 fields each: ''Level'' and ''ID''.'
items:
type: string
type: array
responses:
'200':
description: ''
summary: Delete a set of resources
tags:
- System
operationId: postToolsBulkDelete
x-operation-id-source: derived
/tools/bulk-modify:
post:
deprecated: false
description: Start a job that will modify all the DICOM patients, studies, series or instances whose identifiers are provided in the `Resources` field.
parameters: []
requestBody:
content:
application/json:
schema:
description: ''
properties:
Asynchronous:
description: If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.
type: boolean
Force:
description: Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world
type: boolean
Keep:
description: Keep the original value of the specified tags, to be chosen among the `StudyInstanceUID`, `SeriesInstanceUID` and `SOPInstanceUID` tags. Avoid this feature as much as possible, as this breaks the DICOM model of the real world.
items:
type: string
type: array
KeepSource:
description: If set to `false`, instructs Orthanc to the remove original resources. By default, the original resources are kept in Orthanc.
type: boolean
Level:
description: Level of the modification (`Patient`, `Study`, `Series` or `Instance`). If absent, the level defaults to `Instance`, but is set to `Patient` if `PatientID` is modified, to `Study` if `StudyInstanceUID` is modified, or to `Series` if `SeriesInstancesUID` is modified. (new in Orthanc 1.9.7)
type: string
LossyQuality:
description: If transcoding to a lossy transfer syntax, this entry defines the quality as an integer between 1 and 100. If not provided, the value is defined by the "DicomLossyTranscodingQuality" configuration. (new in v1.12.7)
type: number
Permissive:
description: If `true`, ignore errors during the individual steps of the job. Default value is `false`.
type: boolean
Priority:
description: In asynchronous mode, the priority of the job. The higher the value, the higher the priority. Default value is `0`
type: number
PrivateCreator:
description: The private creator to be used for private tags in `Replace`
type: string
Remove:
description: List of tags that must be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).
items:
type: string
type: array
RemovePrivateTags:
description: Remove the private tags from the DICOM instances (defaults to `false`)
type: boolean
Replace:
description: Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).
type: object
Resources:
description: List of the Orthanc identifiers of the patients/studies/series/instances of interest.
items:
type: string
type: array
Synchronous:
description: If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.
type: boolean
Transcode:
description: 'Transcode the DICOM instances to the provided DICOM transfer syntax: https://orthanc.uclouvain.be/book/faq/transcoding.html'
type: string
UserData:
description: User data that will travel along with the job.
type: object
responses:
'200':
content:
application/json:
examples: {}
schema:
description: The list of all the resources that have been altered by this modification
properties:
ID:
description: In asynchronous mode, identifier of the job
type: string
Path:
description: In asynchronous mode, path to access the job in the REST API
type: string
description: ''
summary: Modify a set of resources
tags:
- System
operationId: postToolsBulkModify
x-operation-id-source: derived
/tools/count-resources:
post:
deprecated: false
description: This URI can be used to count the resources that are matching criteria on the content of the local Orthanc server, in a way that is similar to tools/find
parameters: []
requestBody:
content:
application/json:
schema:
description: ''
properties:
Full:
description: If set to `true`, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)
type: boolean
Labels:
description: List of strings specifying which labels to look for in the resources (new in Orthanc 1.12.0)
items:
type: string
type: array
LabelsConstraint:
description: 'Constraint on the labels, can be `All`, `Any`, or `None` (defaults to `All`, new in Orthanc 1.12.0). From 1.12.11: using `None` together with an empty list of labels looks for the resources that do not have any labels attached.'
type: string
Level:
description: Level of the query (`Patient`, `Study`, `Series` or `Instance`)
type: string
MetadataQuery:
description: Associative array containing the filter on the values of the metadata (new in Orthanc 1.12.5)
type: object
ParentPatient:
description: Limit the reported resources to descendants of this patient (new in Orthanc 1.12.5)
type: string
ParentSeries:
description: Limit the reported resources to descendants of this series (new in Orthanc 1.12.5)
type: string
ParentStudy:
description: Limit the reported resources to descendants of this study (new in Orthanc 1.12.5)
type: string
Query:
description: Associative array containing the filter on the values of the DICOM tags
type: object
Short:
description: If set to `true`, report the DICOM tags in hexadecimal format
type: boolean
responses:
'200':
content:
application/json:
examples: {}
schema:
description: A JSON object with the `Count` of matching r
# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/uclouvain/refs/heads/main/openapi/uclouvain-system-api-openapi.yml