Skip to content

Slicebox API API

by slicebox.local

Open documentation ↗

Overview

Slicebox - safe sharing of medical images

Slicebox API is a documents & productivity API from slicebox.local. It needs no API key. It is served over plain HTTP. Its OpenAPI description documents 118 endpoints.

At a glance

Authentication
No auth
HTTPS
No
CORS
Unknown
Base URL
http://slicebox.local/api
Version
2.0
Endpoints
118
Spec updated
2021-06-21

Make a first request

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

cURL
curl -X GET "http://slicebox.local/api/anonymization/keys" \
  -H "Accept: application/json"
JavaScript
const response = await fetch("http://slicebox.local/api/anonymization/keys", {
  method: "GET",
  headers: {
    "Accept": "application/json",
  },
});
const data = await response.json();
console.log(data);
Python
import requests

response = requests.request(
    "GET",
    "http://slicebox.local/api/anonymization/keys",
    headers={
    "Accept": "application/json",
    },
    timeout=30,
)
print(response.json())

Endpoints

MethodPathWhat it does
POST/anonymization/anonymizeanonymize the images corresponding to the supplied list of image IDs (each paired with a list of DICOM tag translation). This route corresponds to repeated use
GET/anonymization/keysget a list of anonymization keys, each specifying how vital DICOM attributes have been anonymized for a particular image
GET/anonymization/keys/export/csvexport all anonymization keys as a csv file
POST/anonymization/keys/querysubmit a query for anonymization keys
GET/anonymization/keys/{id}get the anonymization key with the supplied ID
DELETE/anonymization/keys/{id}delete an anonymization key that is no longer of interest
GET/anonymization/keys/{id}/keyvaluesget pointers to the images corresponding to the anonymization key with the supplied ID
GET/anonymization/optionslist all supported anonymization options defining an anonymization profile
GET/boxesget a list of box connections
POST/boxes/connectconnect to another box using a received URL. Used to connect to a public box.
POST/boxes/createconnectioncreate a new box connection where the supplied entity holds the remote box name. Used by publicly available boxes.
GET/boxes/incomingget incoming transactions (finished, currently receiving, waiting or failed)
DELETE/boxes/incoming/{id}delete an incoming transaction. If a currently active transaction is deleted, a new transaction with the remainder of the images is created when receiving the n
GET/boxes/incoming/{id}/imagesget the received images corresponding to the incoming transaction with the supplied ID
GET/boxes/outgoingget outgoing transactions (finished, currently sending, waiting or failed)
DELETE/boxes/outgoing/{id}delete an outgoing transaction. This will stop ongoing transactions.
GET/boxes/outgoing/{id}/imagesget the sent images corresponding to the outgoing transaction with the supplied ID
DELETE/boxes/{id}Delete the remote box with the supplied ID
POST/boxes/{id}/sendsend images corresponding to the supplied image ids to the remote box with the supplied ID
GET/destinationsReturns a list of currently available destinations. Possible destinations are box - sending data to a remote box, and scu - sending data a receiving SCP.
GET/directorywatchesget a list of watch directories. Each watch directory and its sub-directories are watched for incoming DICOM files, which are read and imported into slicebox.
POST/directorywatchesadd a new directory to watch for incoming DICOM files
DELETE/directorywatches/{id}stop watching and remove the directory corresponding to the supplied ID
GET/filtering/associationsGet a list of source to filter associations.
POST/filtering/associationsInserts or updates a source <-> filter associations. If the specified Source already has an association this is updated, otherwise a new is inserted.
DELETE/filtering/associations/{id}remove the source <-> filter association corresponding to the supplied ID
GET/filtering/filtersList defined filters
POST/filtering/filtersInserts or updates a filter. If a filter with same name as supplied filter exists this filter is updated, otherwise a new filter is inserted.
DELETE/filtering/filters/{id}remove the filter corresponding to the supplied ID
GET/filtering/filters/{id}/tagpathsList tagpaths for the selected filter
POST/filtering/filters/{id}/tagpathsadd a tagpath to a filter
DELETE/filtering/filters/{id}/tagpaths/{tagpathid}remove the tagpath corresponding to the supplied ID
DELETE/forwarding/rule/{id}remove the forwarding rule corresponding to the supplied ID
GET/forwarding/rulesget a list of all forwarding rules. A forwarding rule specifies the automatic forwarding of images from a source (SCP, BOX, etc.) to a destimation (BOX, SCU, et
POST/forwarding/rulesadd a new forwarding rule
POST/imagesadd a DICOM dataset to slicebox
POST/images/deletebulk delete a sequence of images according to the supplied image IDs. This is the same as a sequence of DELETE requests to /images/{id}
GET/images/exportdownload the export set with the supplied export set ID as a zip archive
POST/images/exportcreate an export set, a group of image IDs of images to export. The export set will contain the selected images. The export set is available for download 12 hou
POST/images/jpegadd a JPEG image to slicebox. The image data will be wrapped in a DICOM file and added as a new series belonging to the study with the supplied ID
GET/images/{id}fetch dataset corresponding to the supplied image ID
DELETE/images/{id}Delete the image with the supplied ID
PUT/images/{id}/anonymizedelete the selected image and replace it with an anonymized version
POST/images/{id}/anonymizedget an anonymized version of the image with the supplied ID
GET/images/{id}/attributeslist all DICOM attributes of the dataset corresponding to the supplied image ID
GET/images/{id}/imageinformationget basic information about the pixel data of an image
PUT/images/{id}/modifymodify and/or insert image attributes according to the input tagpath-value mappings
GET/images/{id}/pngget a PNG image representation of the image corresponding to the supplied ID
GET/import/sessionsReturns a list of available import sessions.
POST/import/sessionscreate a new import sessions
GET/import/sessions/{id}Returns the import sessions with the supplied ID
DELETE/import/sessions/{id}deletes the import session with the supplied ID
GET/import/sessions/{id}/imagesget the imported images corresponding to the import session with the supplied ID
POST/import/sessions/{id}/imagesadd a DICOM dataset to the import session with the supplied ID
GET/logget a list of slicebox log messages
DELETE/logdelete all log messages
DELETE/log/{id}Delete the log entry with the supplied ID
GET/metadata/flatseriesReturns a list of flattened metadata on the patient, study and series levels
POST/metadata/flatseries/querysubmit a query for flat series
GET/metadata/flatseries/{id}Return the flat series with the supplied ID
GET/metadata/imagesReturns a list of metadata on the image level of the DICOM hierarchy
POST/metadata/images/querysubmit a query for images
GET/metadata/images/{id}Return the image with the supplied ID
GET/metadata/patientsReturns a list of metadata on the patient level of the DICOM hierarchy
POST/metadata/patients/querysubmit a query for patients
GET/metadata/patients/{id}Return the patient with the supplied ID
GET/metadata/patients/{id}/imagesReturns all images for the patient with the supplied patient ID
GET/metadata/seriesReturns a list of metadata on the series level of the DICOM hierarchy
POST/metadata/series/querysubmit a query for series
GET/metadata/series/{id}Return the series with the supplied ID
GET/metadata/series/{id}/seriestagsget the list of series tags for the series with the supplied ID.
POST/metadata/series/{id}/seriestagsadd a series tag to the series with the supplied ID
GET/metadata/series/{id}/seriestypesget the list of series types for the series with the supplied ID.
DELETE/metadata/series/{id}/seriestypesDelete all series types for the series with the supplied ID
GET/metadata/series/{id}/sourceReturn the source of the series with the supplied ID
DELETE/metadata/series/{seriesId}/seriestags/{seriesTagId}Delete the series tag with the supplied series tag ID from the series with the supplied series ID
PUT/metadata/series/{seriesId}/seriestypes/{seriesTypeId}Add the series type with the supplied series type ID to the series with the supplied series ID
DELETE/metadata/series/{seriesId}/seriestypes/{seriesTypeId}Delete the series type with the supplied series type ID from the series with the supplied series ID
GET/metadata/seriestagsReturns a list of series tags currently currently in use.
GET/metadata/studiesReturns a list of metadata on the study level of the DICOM hierarchy
POST/metadata/studies/querysubmit a query for studies
GET/metadata/studies/{id}Return the study with the supplied ID
GET/metadata/studies/{id}/imagesReturns all images for the study with the supplied study ID
GET/scpsget a list of DICOM SCPs. Each SCP is a server for receiving DICOM images from e.g. a PACS system.
POST/scpsadd a new SCP for receiving DICOM images
DELETE/scps/{id}shut down and remove the SCP corresponding to the supplied ID
GET/scusget a list of DICOM SCUs. Each SCU is a client for sending DICOM images to an SCP, e.g. a PACS system.
POST/scusadd a new SCU for sending DICOM images
DELETE/scus/{id}remove the SCU corresponding to the supplied ID
POST/scus/{id}/sendsend the images with the supplied image IDs to a DICOM SCP using the the SCU with the supplied scu ID
GET/seriestypesget a list of all added series types. By filtering search results for certain series types, it is easier for applications to ensure that they read images of app
POST/seriestypesadd a new series type
GET/seriestypes/rulesget a list of rules for assigning series types to series. A rule connects to a series of attributes with values and a resulting series type. If a series has the
POST/seriestypes/rulesadd a new series type rule
GET/seriestypes/rules/updatestatusget the status of the internal process of updating series types for series following a change of series types, rules or attributes.
DELETE/seriestypes/rules/{id}remove the series type rule corresponding to the supplied ID
GET/seriestypes/rules/{id}/attributesget the list of attributes for the series type rule with the supplied ID.
POST/seriestypes/rules/{id}/attributesadd a new series type rule attribute
DELETE/seriestypes/rules/{ruleId}/attributes/{attributeId}remove the series type rule attribute corresponding to the supplied series type and attribute IDs
POST/seriestypes/series/querysubmit a query for seriestypes for a list of series

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

Questions

Does the Slicebox API API need an API key?

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

Does the Slicebox API API support HTTPS?

The Slicebox API API is listed as HTTP only, so avoid sending secrets to it.

How many endpoints does the Slicebox API API have?

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

What are alternatives to the Slicebox API API?

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

Compare alternatives →

Listed from APIs.guru (CC0).