Update a sample
Atomically update any combination of an owned sample’s display name, complete tag set, and isotropic microns-per-pixel value. Public share ids are not patchable. OAuth callers need both samples:read and samples:write because the response includes full owned detail and job history. When countable mpp is supplied, an idempotent recount is enqueued even if the stored value is unchanged; after an enqueue-failure 500, retry the identical patch to heal the recount.
samples:read and samples:write, because the response contains read-only sample and job data.
The tags array accepts at most 1,000 raw items. Values are trimmed and lowercased, duplicate normalized values collapse, and the resulting set may contain at most 50 distinct tags.
When mpp is supplied and the effective value is countable, Strand enqueues a tissue recount even if the stored MPP is unchanged. If the update returns 500 because the recount could not be enqueued, the sample update has committed; retry the identical PATCH to enqueue the missing recount safely.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Trimmed display name. Null or an empty string reverts to filename. NUL characters are rejected.
200^[^\u0000]*$Complete desired tag set, with a transport-safety limit of 1,000 raw items. Each value is trimmed/lowercased, then must be 1–50 characters with no commas or NUL characters; duplicates collapse after normalization and at most 50 distinct normalized tags are allowed.
1000^[^\u0000]*$User-reported microns per pixel. Object axes must be equal; anisotropic input is rejected.
0 < x <= 100Response
Updated owned sample detail
An owned sample's curated read model and its 50 newest inference jobs. jobCount is the uncapped total.
mine Human-friendly display name, or null if unset (falls back to filename).
Original uploaded filename.
Lifecycle status: uploading, upload_failed, deid_running, deid_failed, preprocessing, ready, or preprocess_failed.
Uploaded file size in bytes (string-encoded 64-bit integer).
Level-0 width in pixels, or null before the dimensions probe completes.
Level-0 height in pixels, or null before the dimensions probe completes.
Effective isotropic microns per pixel (user override → calibrated slide value), or null when the sample has no usable scale yet.
The sample's canonical tag strings, sorted alphabetically.
When the sample moves to Trash. Null when it never expires.
org_default = derived from the org policy at upload time. custom = set by an explicit expiration call (a date or a never-expire pin). Null when the sample has no expiration and no org policy applies.
org_default, custom, null Whole days until expiry, clamped at 0 for a sample at/past its date but not yet swept. Null when the sample never expires.
True when the sample has an expiration date set.
When the sample entered Trash, or null if it is still active. Trashed samples are permanently deleted 7 days after this time.
50Total inference-job count for the sample before the 50-job cap.
x >= 0