Orthanc API

Orthanc is a free and open-source, vendor-neutral DICOM server and medical-imaging ecosystem. UCLouvain describes itself as "the innovation engine behind Orthanc": the project is led by its author Sebastien Jodogne inside the Health Informatics Lab at ICTEAM, and the INGI department hosts and maintains the server infrastructure at orthanc.uclouvain.be. The REST API contract is generated from the Orthanc source and covers 239 paths / 299 operations across patients, studies, series, instances, modalities, peers, jobs, plugins and storage. This is the one surface in this repository that is UCLouvain's own engineering rather than a purchased platform's, and the public demo server answers unauthenticated GET /system live.

Operations 299

Showing the first 250 of 299. The full set is in the contract, and via get_provider_operations.

DELETE /changes Clear changes
GET /changes List changes
DELETE /exports Clear exports
GET /exports List exports
GET /instances List the available instances
POST /instances Upload DICOM instances
DELETE /instances/{id} Delete some instance
GET /instances/{id} Get information about some instance
POST /instances/{id}/anonymize Anonymize instance
GET /instances/{id}/attachments List attachments
DELETE /instances/{id}/attachments/{name} Delete attachment
GET /instances/{id}/attachments/{name} List operations on attachments
PUT /instances/{id}/attachments/{name} Set attachment
POST /instances/{id}/attachments/{name}/compress Compress attachment
GET /instances/{id}/attachments/{name}/compressed-data Get attachment (no decompression)
GET /instances/{id}/attachments/{name}/compressed-md5 Get MD5 of attachment on disk
GET /instances/{id}/attachments/{name}/compressed-size Get size of attachment on disk
GET /instances/{id}/attachments/{name}/data Get attachment
GET /instances/{id}/attachments/{name}/info Get info about the attachment
GET /instances/{id}/attachments/{name}/is-compressed Is attachment compressed?
GET /instances/{id}/attachments/{name}/md5 Get MD5 of attachment
GET /instances/{id}/attachments/{name}/size Get size of attachment
POST /instances/{id}/attachments/{name}/uncompress Uncompress attachment
POST /instances/{id}/attachments/{name}/verify-md5 Verify attachment
GET /instances/{id}/content/{path} Get raw tag
POST /instances/{id}/export Write DICOM onto filesystem
GET /instances/{id}/file Download DICOM
GET /instances/{id}/frames List available frames
GET /instances/{id}/frames/{frame} List operations
GET /instances/{id}/frames/{frame}/image-int16 Decode a frame (int16)
GET /instances/{id}/frames/{frame}/image-uint16 Decode a frame (uint16)
GET /instances/{id}/frames/{frame}/image-uint8 Decode a frame (uint8)
GET /instances/{id}/frames/{frame}/matlab Decode frame for Matlab
GET /instances/{id}/frames/{frame}/numpy Decode frame for numpy
GET /instances/{id}/frames/{frame}/preview Decode a frame (preview)
GET /instances/{id}/frames/{frame}/raw Access raw frame
GET /instances/{id}/frames/{frame}/raw.gz Access raw frame (compressed)
GET /instances/{id}/frames/{frame}/rendered Render a frame
GET /instances/{id}/header Get DICOM meta-header
GET /instances/{id}/image-int16 Decode an image (int16)
GET /instances/{id}/image-uint16 Decode an image (uint16)
GET /instances/{id}/image-uint8 Decode an image (uint8)
GET /instances/{id}/labels List labels
DELETE /instances/{id}/labels/{label} Remove label
GET /instances/{id}/labels/{label} Test label
PUT /instances/{id}/labels/{label} Add label
GET /instances/{id}/matlab Decode frame for Matlab
GET /instances/{id}/metadata List metadata
DELETE /instances/{id}/metadata/{name} Delete metadata
GET /instances/{id}/metadata/{name} Get metadata
PUT /instances/{id}/metadata/{name} Set metadata
POST /instances/{id}/modify Modify instance
GET /instances/{id}/module Get instance module
GET /instances/{id}/numpy Decode instance for numpy
GET /instances/{id}/patient Get parent patient
GET /instances/{id}/pdf Get embedded PDF
GET /instances/{id}/preview Decode an image (preview)
POST /instances/{id}/reconstruct Reconstruct tags & optionally files of instance
GET /instances/{id}/rendered Render an image
GET /instances/{id}/series Get parent series
GET /instances/{id}/simplified-tags Get human-readable tags
GET /instances/{id}/statistics Get instance statistics
GET /instances/{id}/study Get parent study
GET /instances/{id}/tags Get DICOM tags
GET /jobs List jobs
DELETE /jobs/{id} Delete a job from history
GET /jobs/{id} Get job
POST /jobs/{id}/cancel Cancel job
POST /jobs/{id}/pause Pause job
POST /jobs/{id}/resubmit Resubmit job
POST /jobs/{id}/resume Resume job
DELETE /jobs/{id}/{key} Delete a job output
GET /jobs/{id}/{key} Get job output
GET /modalities List DICOM modalities
DELETE /modalities/{id} Delete DICOM modality
GET /modalities/{id} List operations on modality
PUT /modalities/{id} Update DICOM modality
GET /modalities/{id}/configuration Get modality configuration
POST /modalities/{id}/echo Trigger C-ECHO SCU
POST /modalities/{id}/find Hierarchical C-FIND SCU
POST /modalities/{id}/find-instance C-FIND SCU for instances
POST /modalities/{id}/find-patient C-FIND SCU for patients
POST /modalities/{id}/find-series C-FIND SCU for series
POST /modalities/{id}/find-study C-FIND SCU for studies
POST /modalities/{id}/find-worklist C-FIND SCU for worklist
POST /modalities/{id}/get Trigger C-GET SCU
POST /modalities/{id}/move Trigger C-MOVE SCU
POST /modalities/{id}/query Trigger C-FIND SCU
POST /modalities/{id}/storage-commitment Trigger storage commitment request
POST /modalities/{id}/store Trigger C-STORE SCU
POST /modalities/{id}/store-straight Straight C-STORE SCU
GET /patients List the available patients
DELETE /patients/{id} Delete some patient
GET /patients/{id} Get information about some patient
POST /patients/{id}/anonymize Anonymize patient
GET /patients/{id}/archive Create ZIP archive
POST /patients/{id}/archive Create ZIP archive
GET /patients/{id}/attachments List attachments
DELETE /patients/{id}/attachments/{name} Delete attachment
GET /patients/{id}/attachments/{name} List operations on attachments
PUT /patients/{id}/attachments/{name} Set attachment
POST /patients/{id}/attachments/{name}/compress Compress attachment
GET /patients/{id}/attachments/{name}/compressed-data Get attachment (no decompression)
GET /patients/{id}/attachments/{name}/compressed-md5 Get MD5 of attachment on disk
GET /patients/{id}/attachments/{name}/compressed-size Get size of attachment on disk
GET /patients/{id}/attachments/{name}/data Get attachment
GET /patients/{id}/attachments/{name}/info Get info about the attachment
GET /patients/{id}/attachments/{name}/is-compressed Is attachment compressed?
GET /patients/{id}/attachments/{name}/md5 Get MD5 of attachment
GET /patients/{id}/attachments/{name}/size Get size of attachment
POST /patients/{id}/attachments/{name}/uncompress Uncompress attachment
POST /patients/{id}/attachments/{name}/verify-md5 Verify attachment
GET /patients/{id}/instances Get child instances
GET /patients/{id}/instances-tags Get tags of instances
GET /patients/{id}/labels List labels
DELETE /patients/{id}/labels/{label} Remove label
GET /patients/{id}/labels/{label} Test label
PUT /patients/{id}/labels/{label} Add label
GET /patients/{id}/media Create DICOMDIR media
POST /patients/{id}/media Create DICOMDIR media
GET /patients/{id}/metadata List metadata
DELETE /patients/{id}/metadata/{name} Delete metadata
GET /patients/{id}/metadata/{name} Get metadata
PUT /patients/{id}/metadata/{name} Set metadata
POST /patients/{id}/modify Modify patient
GET /patients/{id}/module Get patient module
GET /patients/{id}/protected Is the patient protected against recycling?
PUT /patients/{id}/protected Protect/Unprotect a patient against recycling
POST /patients/{id}/reconstruct Reconstruct tags & optionally files of patient
GET /patients/{id}/series Get child series
GET /patients/{id}/shared-tags Get shared tags
GET /patients/{id}/statistics Get patient statistics
GET /patients/{id}/studies Get child studies
GET /peers List Orthanc peers
DELETE /peers/{id} Delete Orthanc peer
GET /peers/{id} List operations on peer
PUT /peers/{id} Update Orthanc peer
GET /peers/{id}/configuration Get peer configuration
POST /peers/{id}/store Send to Orthanc peer
POST /peers/{id}/store-straight Straight store to peer
GET /peers/{id}/system Get peer system information
GET /plugins List plugins
GET /plugins/explorer.js JavaScript extensions to Orthanc Explorer
GET /plugins/{id} Get plugin
GET /queries List query/retrieve operations
DELETE /queries/{id} Delete a query
GET /queries/{id} List operations on a query
GET /queries/{id}/answers List answers to a query
GET /queries/{id}/answers/{index} List operations on an answer
GET /queries/{id}/answers/{index}/content Get one answer
POST /queries/{id}/answers/{index}/query-instances Query the child instances of an answer
POST /queries/{id}/answers/{index}/query-series Query the child series of an answer
POST /queries/{id}/answers/{index}/query-studies Query the child studies of an answer
POST /queries/{id}/answers/{index}/retrieve Retrieve one answer with a C-MOVE or a C-GET SCU
GET /queries/{id}/level Get level of original query
GET /queries/{id}/modality Get modality of original query
GET /queries/{id}/query Get original query arguments
POST /queries/{id}/retrieve Retrieve all answers with C-MOVE SCU
GET /series List the available series
DELETE /series/{id} Delete some series
GET /series/{id} Get information about some series
POST /series/{id}/anonymize Anonymize series
GET /series/{id}/archive Create ZIP archive
POST /series/{id}/archive Create ZIP archive
GET /series/{id}/attachments List attachments
DELETE /series/{id}/attachments/{name} Delete attachment
GET /series/{id}/attachments/{name} List operations on attachments
PUT /series/{id}/attachments/{name} Set attachment
POST /series/{id}/attachments/{name}/compress Compress attachment
GET /series/{id}/attachments/{name}/compressed-data Get attachment (no decompression)
GET /series/{id}/attachments/{name}/compressed-md5 Get MD5 of attachment on disk
GET /series/{id}/attachments/{name}/compressed-size Get size of attachment on disk
GET /series/{id}/attachments/{name}/data Get attachment
GET /series/{id}/attachments/{name}/info Get info about the attachment
GET /series/{id}/attachments/{name}/is-compressed Is attachment compressed?
GET /series/{id}/attachments/{name}/md5 Get MD5 of attachment
GET /series/{id}/attachments/{name}/size Get size of attachment
POST /series/{id}/attachments/{name}/uncompress Uncompress attachment
POST /series/{id}/attachments/{name}/verify-md5 Verify attachment
GET /series/{id}/instances Get child instances
GET /series/{id}/instances-tags Get tags of instances
GET /series/{id}/labels List labels
DELETE /series/{id}/labels/{label} Remove label
GET /series/{id}/labels/{label} Test label
PUT /series/{id}/labels/{label} Add label
GET /series/{id}/media Create DICOMDIR media
POST /series/{id}/media Create DICOMDIR media
GET /series/{id}/metadata List metadata
DELETE /series/{id}/metadata/{name} Delete metadata
GET /series/{id}/metadata/{name} Get metadata
PUT /series/{id}/metadata/{name} Set metadata
POST /series/{id}/modify Modify series
GET /series/{id}/module Get series module
GET /series/{id}/numpy Decode series for numpy
GET /series/{id}/ordered-slices Order the slices
GET /series/{id}/patient Get parent patient
POST /series/{id}/reconstruct Reconstruct tags & optionally files of series
GET /series/{id}/shared-tags Get shared tags
GET /series/{id}/statistics Get series statistics
GET /series/{id}/study Get parent study
GET /statistics Get database statistics
GET /storage-commitment/{id} Get storage commitment report
POST /storage-commitment/{id}/remove Remove after storage commitment
GET /studies List the available studies
DELETE /studies/{id} Delete some study
GET /studies/{id} Get information about some study
POST /studies/{id}/anonymize Anonymize study
GET /studies/{id}/archive Create ZIP archive
POST /studies/{id}/archive Create ZIP archive
GET /studies/{id}/attachments List attachments
DELETE /studies/{id}/attachments/{name} Delete attachment
GET /studies/{id}/attachments/{name} List operations on attachments
PUT /studies/{id}/attachments/{name} Set attachment
POST /studies/{id}/attachments/{name}/compress Compress attachment
GET /studies/{id}/attachments/{name}/compressed-data Get attachment (no decompression)
GET /studies/{id}/attachments/{name}/compressed-md5 Get MD5 of attachment on disk
GET /studies/{id}/attachments/{name}/compressed-size Get size of attachment on disk
GET /studies/{id}/attachments/{name}/data Get attachment
GET /studies/{id}/attachments/{name}/info Get info about the attachment
GET /studies/{id}/attachments/{name}/is-compressed Is attachment compressed?
GET /studies/{id}/attachments/{name}/md5 Get MD5 of attachment
GET /studies/{id}/attachments/{name}/size Get size of attachment
POST /studies/{id}/attachments/{name}/uncompress Uncompress attachment
POST /studies/{id}/attachments/{name}/verify-md5 Verify attachment
GET /studies/{id}/instances Get child instances
GET /studies/{id}/instances-tags Get tags of instances
GET /studies/{id}/labels List labels
DELETE /studies/{id}/labels/{label} Remove label
GET /studies/{id}/labels/{label} Test label
PUT /studies/{id}/labels/{label} Add label
GET /studies/{id}/media Create DICOMDIR media
POST /studies/{id}/media Create DICOMDIR media
POST /studies/{id}/merge Merge study
GET /studies/{id}/metadata List metadata
DELETE /studies/{id}/metadata/{name} Delete metadata
GET /studies/{id}/metadata/{name} Get metadata
PUT /studies/{id}/metadata/{name} Set metadata
POST /studies/{id}/modify Modify study
GET /studies/{id}/module Get study module
GET /studies/{id}/module-patient Get patient module of study
GET /studies/{id}/patient Get parent patient
POST /studies/{id}/reconstruct Reconstruct tags & optionally files of study
GET /studies/{id}/series Get child series
GET /studies/{id}/shared-tags Get shared tags
POST /studies/{id}/split Split study
GET /studies/{id}/statistics Get study statistics
GET /system Get system information
GET /tools List operations
GET /tools/accepted-sop-classes Get accepted SOPClassUID
GET /tools/accepted-transfer-syntaxes Get accepted transfer syntaxes

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/orthanc-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

uclouvain-orthanc-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: This is the full documentation of the [REST API](https://orthanc.uclouvain.be/book/users/rest.html)
    of Orthanc.<p>This reference is automatically generated from the source code of Orthanc. A [shorter cheat sheet](https://orthanc.uclouvain.be/book/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)).
  title: Orthanc API
  version: 1.13.0
servers:
- url: https://orthanc.uclouvain.be/demo/
x-generated: '2026-08-30'
x-method: searched
x-source: https://orthanc.uclouvain.be/api/orthanc-openapi.json
x-operator: institution
paths:
  /changes:
    delete:
      deprecated: false
      description: Clear the full history stored in the changes log
      parameters: []
      responses:
        '200':
          description: ''
      summary: Clear changes
      tags:
      - Tracking changes
    get:
      deprecated: false
      description: Whenever Orthanc receives a new DICOM instance, this event is recorded in the so-called _Changes
        Log_. This enables remote scripts to react to the arrival of new DICOM resources. A typical application
        is auto-routing, where an external script waits for a new DICOM instance to arrive into Orthanc, then forward
        this instance to another modality. Please note that, when resources are deleted, their corresponding change
        entries are also removed from the Changes Log, which helps ensuring that this log does not grow indefinitely.
      parameters:
      - description: Request only the last change id (this argument must be used alone)
        in: query
        name: last
        required: false
        schema:
          type: number
      - description: Limit the number of results
        in: query
        name: limit
        required: false
        schema:
          type: number
      - description: Show only the resources since the provided index excluded
        in: query
        name: since
        required: false
        schema:
          type: number
      - description: Show only the resources till the provided index included (only available if your DB backend
          supports ExtendedChanges)
        in: query
        name: to
        required: false
        schema:
          type: number
      - description: Show only the changes of the provided type (only available if your DB backend supports ExtendedChanges).  Multiple
          values can be provided and must be separated by a ';'.
        in: query
        name: type
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: The list of changes
                example:
                  Changes:
                  - ChangeType: NewInstance
                    Date: 20231109T160739
                    ID: 26d2e33b-3239a2d5-64f57e0b-d8da59a7-2ef362e7
                    Path: /instances/26d2e33b-3239a2d5-64f57e0b-d8da59a7-2ef362e7
                    ResourceType: Instance
                    Seq: 1
                  - ChangeType: NewSeries
                    Date: 20231109T160739
                    ID: 1de00990-03680ef4-0be6bd5b-73a7d350-fb46abfa
                    Path: /series/1de00990-03680ef4-0be6bd5b-73a7d350-fb46abfa
                    ResourceType: Series
                    Seq: 2
                  Done: false
                  First: 1
                  Last: 2
                properties:
                  Changes:
                    description: The individual changes
                    items:
                      type: object
                    type: array
                  Done:
                    description: Whether the last reported change is the last of the full history.
                    type: boolean
                  First:
                    description: The index of the first reported change, its value-1 can be used for the `to` argument
                      in subsequent calls to this route when browsing the changes in reverse order
                    type: number
                  Last:
                    description: The index of the last reported change, can be used for the `since` argument in
                      subsequent calls to this route
                    type: number
          description: ''
      summary: List changes
      tags:
      - Tracking changes
  /exports:
    delete:
      deprecated: false
      description: Clear the full history stored in the exports log
      parameters: []
      responses:
        '200':
          description: ''
      summary: Clear exports
      tags:
      - Tracking changes
    get:
      deprecated: false
      description: For medical traceability, Orthanc can be configured to store a log of all the resources that
        have been exported to remote modalities. In auto-routing scenarios, it is important to prevent this log
        to grow indefinitely as incoming instances are routed. You can either disable this logging by setting the
        option `LogExportedResources` to `false` in the configuration file, or periodically clear this log by `DELETE`-ing
        this URI. This route might be removed in future versions of Orthanc.
      parameters:
      - description: Limit the number of results
        in: query
        name: limit
        required: false
        schema:
          type: number
      - description: Show only the resources since the provided index
        in: query
        name: since
        required: false
        schema:
          type: number
      responses:
        '200':
          content:
            application/json:
              examples: {}
              schema:
                description: The list of exports
          description: ''
      summary: List exports
      tags:
      - Tracking changes
  /instances:
    get:
      deprecated: false
      description: List the Orthanc identifiers of all the available DICOM instances
      parameters:
      - description: If present, retrieve detailed information about the individual resources, not only their Orthanc
          identifiers
        in: query
        name: expand
        required: false
        schema:
          type: string
      - description: If present, report the DICOM tags in full format (tags indexed by their hexadecimal format,
          associated with their symbolic name and their value)
        in: query
        name: full
        required: false
        schema:
          type: boolean
      - description: Limit the number of results
        in: query
        name: limit
        required: false
        schema:
          type: number
      - description: 'If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column
          separated list of DICOM Tags identifiers; e.g: ''requested-tags=0010,0010;PatientBirthDate''.  The tags
          requested tags are returned in the ''RequestedTags'' field in the response.  Note that, if you are requesting
          tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since
          Orthanc will need to access the DICOM files.  If not specified, Orthanc will return all Main Dicom Tags
          to keep backward compatibility with Orthanc prior to 1.11.0.'
        in: query
        name: requested-tags
        required: false
        schema:
          type: string
      - description: 'Defines the content of response for each returned resource.  Allowed values are `MainDicomTags`,
          `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `IsProtected`, `Attachments`.  If not
          specified, Orthanc will return `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`,
          `IsStable`, `IsProtected`.e.g: ''response-content=MainDicomTags;Children (new in Orthanc 1.12.5 - overrides
          `expand`)'
        in: query
        name: response-content
        required: false
        schema:
          type: string
      - description: If present, report the DICOM tags in hexadecimal format
        in: query
        name: short
        required: false
        schema:
          type: boolean
      - description: Show only the resources since the provided index
        in: query
        name: since
        required: false
        schema:
          type: number
      responses:
        '200':
          content:
            application/json:
              schema:
                description: JSON array containing either the Orthanc identifiers, or detailed information about
                  the reported instances (if `expand` argument is provided)
                example:
                - 001a7d82-54008387-7b23ad57-8fb6202a-6d3b305b
                - 001b6592-37c2fbe4-2c07c724-ce9607e2-2bd210e8
          description: ''
      summary: List the available instances
      tags:
      - Instances
    post:
      deprecated: false
      description: Upload DICOM instances
      parameters: []
      requestBody:
        content:
          application/dicom:
            schema:
              description: DICOM file to be uploaded
          application/zip:
            schema:
              description: ZIP archive containing DICOM files (new in Orthanc 1.8.2)
      responses:
        '200':
          content:
            application/json:
              schema:
                description: Information about the uploaded instance, or list of information for each uploaded instance
                  in the case of ZIP archive
                example:
                  ID: 19816330-cb02e1cf-df3a8fe8-bf510623-ccefe9f5
                  ParentPatient: ef9d77db-eb3b2bef-9b31fd3e-bf42ae46-dbdb0cc3
                  ParentSeries: 3774320f-ccda46d8-69ee8641-9e791cbf-3ecbbcc6
                  ParentStudy: 66c8e41e-ac3a9029-0b85e42a-8195ee0a-92c2e62e
                  Path: /instances/19816330-cb02e1cf-df3a8fe8-bf510623-ccefe9f5
                  Status: Success
                properties:
                  ID:
                    description: Orthanc identifier of the new instance
                    type: string
                  ParentPatient:
                    description: Orthanc identifier of the parent patient
                    type: string
                  ParentSeries:
                    description: Orthanc identifier of the parent series
                    type: string
                  ParentStudy:
                    description: Orthanc identifier of the parent study
                    type: string
                  Path:
                    description: Path to the new instance in the REST API
                    type: string
                  Status:
                    description: Can be `Success`, `AlreadyStored`, `Failure`, or `FilteredOut` (removed by some
                      `NewInstanceFilter`)
                    type: string
          description: ''
      summary: Upload DICOM instances
      tags:
      - Instances
  /instances/{id}:
    delete:
      deprecated: false
      description: Delete the DICOM instance whose Orthanc identifier is provided in the URL
      parameters:
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
      summary: Delete some instance
      tags:
      - Instances
    get:
      deprecated: false
      description: Get detailed information about the DICOM instance whose Orthanc identifier is provided in the
        URL
      parameters:
      - description: If present, report the DICOM tags in full format (tags indexed by their hexadecimal format,
          associated with their symbolic name and their value)
        in: query
        name: full
        required: false
        schema:
          type: boolean
      - description: 'If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column
          separated list of DICOM Tags identifiers; e.g: ''requested-tags=0010,0010;PatientBirthDate''.  The tags
          requested tags are returned in the ''RequestedTags'' field in the response.  Note that, if you are requesting
          tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since
          Orthanc will need to access the DICOM files.  If not specified, Orthanc will return all Main Dicom Tags
          to keep backward compatibility with Orthanc prior to 1.11.0.'
        in: query
        name: requested-tags
        required: false
        schema:
          type: string
      - description: If present, report the DICOM tags in hexadecimal format
        in: query
        name: short
        required: false
        schema:
          type: boolean
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: Information about the DICOM instance
                example:
                  FileSize: 368852
                  FileUuid: eec5367e-b460-475c-a808-75343dbf9136
                  ID: 6582b1c0-292ad5ab-ba0f088f-f7a1766f-9a29a54f
                  IndexInSeries: 1
                  Labels: []
                  MainDicomTags:
                    ImageOrientationPatient: 0\1\0\0\0\-1
                    ImagePositionPatient: 0\-159\-425.915649
                    InstanceCreationDate: '20050927'
                    InstanceCreationTime: '155030.000000'
                    InstanceNumber: '1'
                    SOPInstanceUID: 1.2.840.113704.7.1.1.6632.1127829031.2
                  ParentSeries: 37836232-d13a2350-fa1dedc5-962b31aa-010f8e52
                  Type: Instance
          description: ''
      summary: Get information about some instance
      tags:
      - Instances
  /instances/{id}/anonymize:
    post:
      deprecated: false
      description: 'Download an anonymized version of the DICOM instance whose Orthanc identifier is provided in
        the URL: https://orthanc.uclouvain.be/book/users/anonymization.html#anonymization-of-a-single-instance'
      parameters:
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              properties:
                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
                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
                Transcode:
                  description: 'Transcode the DICOM instances to the provided DICOM transfer syntax: https://orthanc.uclouvain.be/book/faq/transcoding.html'
                  type: string
      responses:
        '200':
          content:
            application/dicom:
              examples: {}
              schema:
                description: The anonymized DICOM instance
          description: ''
      summary: Anonymize instance
      tags:
      - Instances
  /instances/{id}/attachments:
    get:
      deprecated: false
      description: Get the list of attachments that are associated with the given instance
      parameters:
      - description: If present, retrieve the attachments list and their numerical ids
        in: query
        name: full
        required: false
        schema:
          type: string
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: JSON array containing the names of the attachments
                example:
                - dicom
          description: ''
      summary: List attachments
      tags:
      - Instances
  /instances/{id}/attachments/{name}:
    delete:
      deprecated: false
      description: Delete an attachment associated with the given DICOM instance. This call will fail if trying
        to delete a system attachment (i.e. whose index is < 1024).
      parameters:
      - description: Revision of the attachment, to check if its content has not changed and can be deleted. This
          header is mandatory if `CheckRevisions` option is `true`.
        in: header
        name: If-Match
        required: false
        schema:
          type: string
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The name of the attachment, or its index (cf. `UserContentType` configuration option)
        in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
      summary: Delete attachment
      tags:
      - Instances
    get:
      deprecated: false
      description: Get the list of the operations that are available for attachments associated with the given instance
      parameters:
      - description: Optional revision of the attachment, to check if its content has changed
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The name of the attachment, or its index (cf. `UserContentType` configuration option)
        in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: List of the available operations
                example:
                - compress
                - compressed-data
                - compressed-md5
                - compressed-size
                - data
                - info
                - is-compressed
                - md5
                - size
                - uncompress
                - verify-md5
          description: ''
          headers:
            ETag:
              description: Revision of the attachment, to be used in further `PUT` or `DELETE` operations
      summary: List operations on attachments
      tags:
      - Other
    put:
      deprecated: false
      description: Attach a file to the given DICOM instance. This call will fail if trying to modify a system attachment
        (i.e. whose index is < 1024).
      parameters:
      - description: Revision of the attachment, if this is not the first time this attachment is set.
        in: header
        name: If-Match
        required: false
        schema:
          type: string
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The name of the attachment, or its index (cf. `UserContentType` configuration option)
        in: path
        name: name
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/octet-stream:
            schema:
              description: Binary data containing the attachment
      responses:
        '200':
          content:
            application/json:
              examples: {}
              schema:
                description: Empty JSON object in the case of a success
          description: ''
      summary: Set attachment
      tags:
      - Instances
  /instances/{id}/attachments/{name}/compress:
    post:
      deprecated: false
      description: Change the compression scheme that is used to store an attachment.
      parameters:
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The name of the attachment, or its index (cf. `UserContentType` configuration option)
        in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
      summary: Compress attachment
      tags:
      - Instances
  /instances/{id}/attachments/{name}/compressed-data:
    get:
      deprecated: false
      description: Get the (binary) content of one attachment associated with the given instance. The attachment
        will not be decompressed if `StorageCompression` is `true`.
      parameters:
      - description: Filename to set in the "Content-Disposition" HTTP header (including file extension)
        in: query
        name: filename
        required: false
        schema:
          type: string
      - description: Optional revision of the attachment, to check if its content has changed
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
      - description: Optional content range to access part of the attachment (new in Orthanc 1.12.5)
        in: header
        name: Range
        required: false
        schema:
          type: string
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The name of the attachment, or its index (cf. `UserContentType` configuration option)
        in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/octet-stream:
              examples: {}
              schema:
                description: The attachment
          description: ''
          headers:
            ETag:
              description: Revision of the attachment, to be used in further `PUT` or `DELETE` operations
      summary: Get attachment (no decompression)
      tags:
      - Instances
  /instances/{id}/attachments/{name}/compressed-md5:
    get:
      deprecated: false
      description: Get the MD5 hash of one attachment associated with the given instance, as stored on the disk.
        This is different from `.../md5` iff `EnableStorage` is `true`.
      parameters:
      - description: Optional revision of the attachment, to check if its content has changed
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The name of the attachment, or its index (cf. `UserContentType` configuration option)
        in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            text/plain:
              examples: {}
              schema:
                description: The MD5 of the attachment, as stored on the disk
          description: ''
          headers:
            ETag:
              description: Revision of the attachment, to be used in further `PUT` or `DELETE` operations
      summary: Get MD5 of attachment on disk
      tags:
      - Instances
  /instances/{id}/attachments/{name}/compressed-size:
    get:
      deprecated: false
      description: Get the size of one attachment associated with the given instance, as stored on the disk. This
        is different from `.../size` iff `EnableStorage` is `true`.
      parameters:
      - description: Optional revision of the attachment, to check if its content has changed
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The name of the attachment, or its index (cf. `UserContentType` configuration option)
        in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            text/plain:
              examples: {}
              schema:
                description: The size of the attachment, as stored on the disk
          description: ''
          headers:
            ETag:
              description: Revision of the attachment, to be used in further `PUT` or `DELETE` operations
      summary: Get size of attachment on disk
      tags:
      - Instances
  /instances/{id}/attachments/{name}/data:
    get:
      deprecated: false
      description: Get the (binary) content of one attachment associated with the given instance
      parameters:
      - description: Filename to set in the "Content-Disposition" HTTP header (including file extension)
        in: query
        name: filename
        required: false
        schema:
          type: string
      - description: Optional revision of the attachment, to check if its content has changed
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
      - description: Optional content range to access part of the attachment (new in Orthanc 1.12.5)
        in: header
        name: Range
        required: false
        schema:
          type: string
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The name of the attachment, or its index (cf. `UserContentType` configuration option)
        in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/octet-stream:
              examples: {}
              schema:
                description: The attachment
          description: ''
          headers:
            ETag:
              description: Revision of the attachment, to be used in further `PUT` or `DELETE` operations
      summary: Get attachment
      tags:
      - Instances
  /instances/{id}/attachments/{name}/info:
    get:
      deprecated: false
      description: Get all the information about the attachment associated with the given instance
      parameters:
      - description: Optional revision of the attachment, to check if its content has changed
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The name of the attachment, or its index (cf. `UserContentType` configuration option)
        in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: JSON object containing the information about the attachment
                example:
                  CompressedMD5: 26f3fad6ca0c355f02d57c7fa6770248
                  CompressedSize: 526970
                  ContentType: 1
                  UncompressedMD5: 26f3fad6ca0c355f02d57c7fa6770248
                  UncompressedSize: 526970
                  Uuid: ada05909-0efc-43fd-b615-c5cafbaeacf8
          description: ''
          headers:
            ETag:
              description: Revision of the attachment, to be used in further `PUT` or `DELETE` operations
      summary: Get info about the attachment
      tags:
      - Instances
  /instances/{id}/attachments/{name}/is-compressed:
    get:
      deprecated: false
      description: Test whether the attachment has been stored as a compressed file on the disk.
      parameters:
      - description: Optional revision of the attachment, to check if its content has changed
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The name of the attachment, or its index (cf. `UserContentType` configuration option)
        in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            text/plain:
              examples: {}
              schema:
                description: '`0` if the attachment was stored uncompressed, `1` if it was compressed'
          description: ''
          headers:
            ETag:
              description: Revision of the attachment, to be used in further `PUT` or `DELETE` operations
      summary: Is attachment compressed?
      tags:
      - Instances
  /instances/{id}/attachments/{name}/md5:
    get:
      deprecated: false
      description: Get the MD5 hash of one attachment associated with the given instance
      parameters:
      - description: Optional revision of the attachment, to check if its content has changed
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
      - description: Orthanc identifier of the instance of interest
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The name of the attachment, or its index (cf. `UserContentType` configuration option)
        in: path
        name: name
        required: true
        schema

# --- truncated at 32 KB (489 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/uclouvain/refs/heads/main/openapi/uclouvain-orthanc-api-openapi.yml