slicebox-api — quality + safety report

In the Skillier index (lap__slicebox-local-slicebox-local) · scanned 2026-06-03 · engine: builtin+triage

A
Quality
90/100
Safety

✓ Clean — no heuristic safety flags surfaced.

Heuristic flags from the builtin scanner, which is known to over-flag (it trips on legitimate env-reading integrations, security skills, and library .eval calls). This is NOT an authoritative malicious verdict — re-scan with SkillSpector for the authoritative result. Run the authoritative scan →

Skillproof quality grade A

📇 This skill is in the Skillier index (curated · deduped · quality-filtered). Install Skillier to route & load it into your AI client.

Quality notes

Skill is large (~5392 tokens)
medium · quality · body
→ Tighten to the essential procedure; move long reference material to linked files.
No example
low · quality · body
→ Add at least one worked example (input → expected action/output).

About this skill

Slicebox API skill. Use when working with Slicebox for sources, destinations, system. Covers 118 endpoints.

📄 Read the SKILL.md
---
name: slicebox-api
description: "Slicebox API skill. Use when working with Slicebox for sources, destinations, system. Covers 118 endpoints."
version: 1.0.0
generator: lapsh
---

# Slicebox API
API version: 2.0

## Auth
ApiKey token in path

## Base URL
Not specified.

## Setup
1. Set your API key in the appropriate header
2. GET /sources -- verify access
3. POST /system/stop -- create first stop

## Endpoints

118 endpoints across 17 groups. See references/api-spec.lap for full details.

### sources
| Method | Path | Description |
|--------|------|-------------|
| GET | /sources | Returns a list of currently available data sources. Possible source types are user - data imported by an API call by a user, box - data received from a remote box, directory - data imported via a watched directory, import - data imported into slicebox using import sessions, or scp - data received from a PACS. |

### destinations
| Method | Path | Description |
|--------|------|-------------|
| GET | /destinations | Returns a list of currently available destinations. Possible destinations are box - sending data to a remote box, and scu - sending data a receiving SCP. |

### system
| Method | Path | Description |
|--------|------|-------------|
| POST | /system/stop | stop and shut down slicebox |
| GET | /system/health | No-op route for checking whether the service is alive or not |

### import
| Method | Path | Description |
|--------|------|-------------|
| GET | /import/sessions | Returns a list of available import sessions. |
| POST | /import/sessions | create 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 |
| POST | /import/sessions/{id}/images | add a DICOM dataset to the import session with the supplied ID |
| GET | /import/sessions/{id}/images | get the imported images corresponding to the import session with the supplied ID |

### metadata
| Method | Path | Description |
|--------|------|-------------|
| GET | /metadata/patients | Returns a list of metadata on the patient level of the DICOM hierarchy |
| POST | /metadata/patients/query | submit a query for patients |
| GET | /metadata/patients/{id} | Return the patient with the supplied ID |
| GET | /metadata/patients/{id}/images | Returns all images for the patient with the supplied patient ID |
| GET | /metadata/studies | Returns a list of metadata on the study level of the DICOM hierarchy |
| POST | /metadata/studies/query | submit a query for studies |
| GET | /metadata/studies/{id} | Return the study with the supplied ID |
| GET | /metadata/studies/{id}/images | Returns all images for the study with the supplied study ID |
| GET | /metadata/series | Returns a list of metadata on the series level of the DICOM hierarchy |
| POST | /metadata/series/query | submit a query for series |
| GET | /metadata/series/{id} | Return the series with the supplied ID |
| GET | /metadata/series/{id}/source | Return the source of the series with the supplied ID |
| GET | /metadata/series/{id}/seriestypes | get the list of series types for the series with the supplied ID. |
| DELETE | /metadata/series/{id}/seriestypes | Delete all series types for the series with the supplied 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/series/{id}/seriestags | get the list of series tags for the series with the supplied ID. |
| POST | /metadata/series/{id}/seriestags | add a series tag to 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 |
| GET | /metadata/seriestags | Returns a list of series tags currently currently in use. |
| GET | /metadata/images | Returns a list of metadata on the image level of the DICOM hierarchy |
| POST | /metadata/images/query | submit a query for images |
| GET | /metadata/images/{id} | Return the image with the supplied ID |
| GET | /metadata/flatseries | Returns a list of flattened metadata on the patient, study and series levels |
| GET | /metadata/flatseries/{id} | Return the flat series with the supplied ID |
| POST | /metadata/flatseries/query | submit a query for flat series |

### images
| Method | Path | Description |
|--------|------|-------------|
| POST | /images | add a DICOM dataset to slicebox |
| POST | /images/jpeg | add 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 |
| POST | /images/delete | bulk 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/{id}/attributes | list all DICOM attributes of the dataset corresponding to the supplied image ID |
| GET | /images/{id}/imageinformation | get basic information about the pixel data of an image |
| GET | /images/{id}/png | get a PNG image representation of the image corresponding to the supplied ID |
| PUT | /images/{id}/modify | modify and/or insert image attributes according to the input tagpath-value mappings |
| PUT | /images/{id}/anonymize | delete the selected image and replace it with an anonymized version |
| POST | /images/{id}/anonymized | get an anonymized version of the image with the supplied ID |
| POST | /images/export | create 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 hours before it is automatically deleted. |
| GET | /images/export | download the export set with the supplied export set ID as a zip archive |

### anonymization
| Method | Path | Description |
|--------|------|-------------|
| POST | /anonymization/anonymize | anonymize 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 of the route /images/{id}/anonymize. |
| GET | /anonymization/keys | get a list of anonymization keys, each specifying how vital DICOM attributes have been anonymized for a particular image |
| 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}/keyvalues | get pointers to the images corresponding to the anonymization key with the supplied ID |
| POST | /anonymization/keys/query | submit a query for anonymization keys |
| GET | /anonymization/options | list all supported anonymization options defining an anonymization profile |
| GET | /anonymization/keys/export/csv | export all anonymization keys as a csv file |

### users
| Method | Path | Description |
|--------|------|-------------|
| POST | /users/login | Obtain a session cookie that can be used to authenticate future API calls from the present IP address and with the present user agent. |
| POST | /users/logout | Logout the current user by responding with a delete cookie header removing the session cookie for this user. |
| GET | /users/current | obtain information on the currently logged in user as specified by the supplied session cookie, IP address and user agent. |
| GET | /users | Returns all users of slicebox |
| POST | /users | Creates a new user. Dupicates are accepted but not added. |
| DELETE | /users/{id} | deletes a single user based on the ID supplied |

### log
| Method | Path | Description |
|--------|------|-------------|
| GET | /log | get a list of slicebox log messages |
| DELETE | /log | delete all log messages |
| DELETE | /log/{id} | Delete the log entry with the supplied ID |

### boxes
| Method | Path | Description |
|--------|------|-------------|
| GET | /boxes | get a list of box connections |
| POST | /boxes/createconnection | create a new box connection where the supplied entity holds the remote box name. Used by publicly available boxes. |
| POST | /boxes/connect | connect to another box using a received URL. Used to connect to a public box. |
| DELETE | /boxes/{id} | Delete the remote box with the supplied ID |
| POST | /boxes/{id}/send | send images corresponding to the supplied image ids to the remote box with the supplied ID |
| GET | /boxes/incoming | get 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 next incoming image. |
| GET | /boxes/incoming/{id}/images | get the received images corresponding to the incoming transaction with the supplied ID |
| GET | /boxes/outgoing | get 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}/images | get the sent images corresponding to the outgoing transaction with the supplied ID |

### transactions
| Method | Path | Description |
|--------|------|-------------|
| POST | /transactions/{token}/image | add an image (dataset) as part of a transaction. This method is used when sending images using the push method to a public slicebox. |
| GET | /transactions/{token}/status | get the status of the remote incoming transaction with the supplied transaction ID |
| PUT | /transactions/{token}/status | update the status of the transaction with the supplied ID |
| GET | /transactions/{token}/outgoing/poll | get next outgoing transaction and image (information on the next image that the connected box wishes to send to you), if any. This method is used when sending images using the poll method from a public slicebox. |
| GET | /transactions/{token}/outgoing | fetch an image from the connected box as part of a transaction. This method is used when sending images using the poll method from a public slicebox. |
| POST | /transactions/{token}/outgoing/done | signal that the supplied outgoing transaction and image was successfully received and can be marked as sent. This method is used when sending images using the poll method from a public slicebox. |
| POST | /transactions/{token}/outgoing/failed | signal that the image corresponding to the supplied outgoing transaction and image could not be read or stored properly on the receiving side, and that the transaction should be marked as failed. |

### directorywatches
| Method | Path | Description |
|--------|------|-------------|
| GET | /directorywatches | get 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 | /directorywatches | add a new directory to watch for incoming DICOM files |
| DELETE | /directorywatches/{id} | stop watching and remove the directory corresponding to the supplied ID |

### scps
| Method | Path | Description |
|--------|------|-------------|
| GET | /scps | get a list of DICOM SCPs. Each SCP is a server for receiving DICOM images from e.g. a PACS system. |
| POST | /scps | add a new SCP for receiving DICOM images |
| DELETE | /scps/{id} | shut down and remove the SCP corresponding to the supplied ID |

### scus
| Method | Path | Description |
|--------|------|-------------|
| GET | /scus | get a list of DICOM SCUs. Each SCU is a client for sending DICOM images to an SCP, e.g. a PACS system. |
| POST | /scus | add a new SCU

… (truncated)
Scan or optimize your own skill →

Want a live grade + an embeddable README badge? Run your skill through the free scanner.

Graded independently by Skillproof — nothing to sell the author. Quality is mechanical + corpus-grounded; safety flags are heuristic (builtin+triage), not a malicious verdict.