Changelog
All notable changes to the Patholytix API are documented here. Deprecation notices appear here in advance of any retirement.
Patholytix 6.0
Studies
| Operation | Method | Path |
|---|---|---|
| Create a study | POST | /api/v1/studies |
| List studies | GET | /api/v1/studies |
| Get a study | GET | /api/v1/studies/{studyId} |
| Update a study | PUT | /api/v1/studies/{studyId} |
| Delete a study | DELETE | /api/v1/studies/{studyId} |
List studies accepts glpStatus (ACTIVE, LOCKED, ARCHIVED, or NONE) and attributes filters (KEY:VALUE format, up to 5 pairs, case-sensitive, repeated for multiple values).
Subjects
| Operation | Method | Path |
|---|---|---|
| Create a subject | POST | /api/v1/studies/{studyId}/subjects |
| List subjects | GET | /api/v1/studies/{studyId}/subjects |
| Get a subject | GET | /api/v1/studies/{studyId}/subjects/{subjectId} |
| Update a subject | PUT | /api/v1/studies/{studyId}/subjects/{subjectId} |
| Delete a subject | DELETE | /api/v1/studies/{studyId}/subjects/{subjectId} |
List subjects accepts attributes filters.
Organs
| Operation | Method | Path |
|---|---|---|
| Create an organ | POST | /api/v1/studies/{studyId}/organs |
| List organs | GET | /api/v1/studies/{studyId}/organs |
| Get an organ | GET | /api/v1/studies/{studyId}/organs/{organId} |
| Update an organ | PUT | /api/v1/studies/{studyId}/organs/{organId} |
| Delete an organ | DELETE | /api/v1/studies/{studyId}/organs/{organId} |
List organs accepts attributes filters.
Codes
| Operation | Method | Path |
|---|---|---|
| Create codes dictionary | POST | /api/v1/studies/{studyId}/codes |
| Get codes dictionary | GET | /api/v1/studies/{studyId}/codes |
| Update codes dictionary | PUT | /api/v1/studies/{studyId}/codes |
Findings
| Operation | Method | Path |
|---|---|---|
| List findings | GET | /api/v1/studies/{studyId}/findings |
| Get a finding | GET | /api/v1/studies/{studyId}/findings/{findingId} |
Findings are created by pathologists within the Patholytix application and are read-only via the Integration API. List findings accepts subjectId, organId, and attributes filters.
Slides
Slides are created by the Patholytix image ingestion pipeline, so there is no create operation. See Data Model for the NATIVE / CONVERTED distinction, which determines what can be filtered and updated.
| Operation | Method | Path |
|---|---|---|
| List slides | GET | /api/v1/studies/{studyId}/slides |
| Get a slide | GET | /api/v1/studies/{studyId}/slides/{slideId} |
| Update a slide | PUT | /api/v1/studies/{studyId}/slides/{slideId} |
| Delete a slide | DELETE | /api/v1/studies/{studyId}/slides/{slideId} |
| Bulk update slides | POST | /api/v1/studies/{studyId}/slides:bulkUpdate |
Key behaviours:
PUT /slides/{slideId}supports attribute updates and structural assignment — set thesubjectandorgansfields to assign a slide to a subject and one or more organs.POST /slides:bulkUpdateupdates up to 100 slides per request with best-effort semantics — failed entries are returned infailedItemswithout failing the whole request.Slide.organIdsis a string array — multi-organ slides (where a slide spans multiple organ types) will have more than one entry.- NATIVE (glass) slides are managed exclusively by the ingestion pipeline —
GETreturns 404,PUTandDELETEreturn 422.
List slides accepts filtering by subjectId, organId, originalFileNamePrefix, fileType, status, and attributes, and sorting by fileName, fileSizeInBytes, createdDate, or updatedDate.
See the API Reference for full details.
Export Studies
| Operation | Method | Path |
|---|---|---|
| Start an export | POST | /api/v1/studies/{studyId}/exports |
| List exports | GET | /api/v1/studies/{studyId}/exports |
| Get an export | GET | /api/v1/studies/{studyId}/exports/{exportId} |
| Cancel or delete an export | DELETE | /api/v1/studies/{studyId}/exports/{exportId} |
| Download an export file | GET | /api/v1/studies/{studyId}/exports/{exportId}:download |
Exports run asynchronously and produce the full study hierarchy as JSON or Excel. A study retains at most 5 export jobs and may have only one active job at a time. See Exporting a Study for the full workflow.
Cloud Image API
A dedicated API for cloud-to-cloud whole-slide image transfer — images move directly between cloud buckets without passing through a local machine.
Cloud Credentials — store encrypted credentials for AWS S3, Google Cloud Storage, Wasabi, and Azure Blob Storage once and reference them by credentialId on every subsequent job.
| Operation | Method | Path |
|---|---|---|
| Create credential | POST | /api/v1/cloud/credentials |
| List credentials | GET | /api/v1/cloud/credentials |
| Get credential | GET | /api/v1/cloud/credentials/{credentialId} |
| Update credential | PUT | /api/v1/cloud/credentials/{credentialId} |
| Delete credential | DELETE | /api/v1/cloud/credentials/{credentialId} |
| Validate credential | POST | /api/v1/cloud/credentials/{credentialId}:validate |
Image Jobs — start, monitor, retry, and cancel ingest or transfer jobs.
| Operation | Method | Path |
|---|---|---|
| Start ingest job | POST | /api/v1/image/jobs:ingest |
| Start transfer job | POST | /api/v1/image/jobs:transfer |
| List jobs | GET | /api/v1/image/jobs |
| Get job | GET | /api/v1/image/jobs/{jobId} |
| Retry job | POST | /api/v1/image/jobs/{jobId}:retry |
| Cancel job | POST | /api/v1/image/jobs/{jobId}:cancel |
| Stream job progress | GET | /api/v1/image/jobs/{jobId}:streamProgress |
| List job files | GET | /api/v1/image/jobs/{jobId}:listFiles |
See the Cloud Image API Reference for full details.