Skip to main content
POST
Initiate a resumable upload

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
filename
string
required
fileSize
integer
required
contentType
string
required
contentSha256
string

Optional client-computed SHA-256. On a match within the calling organization, the response returns the existing upload and skips byte transfer.

Pattern: ^[0-9a-f]{64}$
autoSegment
boolean

Opt out of automatic cell segmentation for this upload. Defaults to the organization's autoSegmentDefault (true unless changed). When false, the slide is ingested and rendered but no segmentation job runs; marker runs still work but without cell-level readouts until segmented.

mpp

Optional user-reported microns per pixel, for callers that already know their slide's scale. Slides are isotropic: pass a number, or an { x, y } object whose axes are equal (anisotropic input is rejected). Persisted on the sample at creation and takes precedence over the slide's own calibrated value, so POST /predict works as soon as preprocessing finishes — no follow-up PATCH /samples/{id} needed. Ignored when contentSha256 deduplicates to an existing sample (that sample's scale stands).

Required range: 0 < x <= 100

Response

Resumable upload URL

uploadId
string<uuid>
required
gcsPath
string
required
existing
boolean
required

True when contentSha256 matched an existing active upload in the same organization.

uploadUrl
string

Resumable upload URL. Present for a new upload; omitted when existing is true.