> ## Documentation Index
> Fetch the complete documentation index at: https://docs.strandai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Stream a public sample's OME-Zarr

> Authenticated byte proxy for a public sample's OME-Zarr store — the H&E image (`he/...`) and every pinned marker channel (`markers/{marker}/...`). The root manifest is `zarr.json`. This is the way to read the actual marker pixel data. Only the `he/` and `markers/` namespaces are served; everything else is denied. Never reserves or spends credits.



## OpenAPI

````yaml GET /public/samples/{publicId}/zarr/{path}
openapi: 3.1.0
info:
  title: Strand AI Platform API
  version: v1
  description: >-
    REST surface for uploading WSIs, submitting Lattice inference jobs, and
    streaming results. All endpoints require an API key or Strand AI OAuth
    access token in the `Authorization: Bearer` header.
servers:
  - url: https://app.strandai.com/api/v1
    description: Production
security:
  - ApiKey: []
  - OAuth2: []
paths:
  /public/samples/{publicId}/zarr/{path}:
    get:
      summary: Stream a public sample's OME-Zarr pyramid
      description: >-
        Authenticated byte proxy for a public sample's OME-Zarr store — the H&E
        image (`he/...`) and every pinned marker channel
        (`markers/{marker}/...`). The root manifest is `zarr.json`. This is the
        way to read the actual marker pixel data. Only the `he/` and `markers/`
        namespaces are served; everything else is denied. Never reserves or
        spends credits.
      parameters:
        - name: publicId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: path
          in: path
          required: true
          description: >-
            Path within the zarr store; slashes are not URL-encoded (e.g.
            `zarr.json`, `he/0/zarr.json`, `markers/CD3/c/0/0/0`).
          schema:
            type: string
      responses:
        '200':
          description: File bytes (binary for chunks, JSON for metadata).
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
            application/json:
              schema:
                type: object
        '401':
          description: Missing or invalid credential
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Public sample or file not found
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
components:
  schemas:
    Error:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
        message:
          type: string
        required:
          type: integer
          nullable: true
        retryAfterSeconds:
          type: integer
          nullable: true
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      bearerFormat: sk-strand-XXXXXXXXXXXXXXXXXXXXXXXX
    OAuth2:
      type: oauth2
      description: >-
        Strand AI authorization-code flow with S256 PKCE, explicit organization
        consent, and RFC 8707 resource binding.
      flows:
        authorizationCode:
          authorizationUrl: https://auth.strandai.com/oauth2/auth
          tokenUrl: https://auth.strandai.com/oauth2/token
          scopes:
            samples:read: Read slide metadata and estimates
            samples:write: Upload and change slides
            jobs:read: Read run status
            jobs:write: Start, export, or cancel runs
            results:read: Read and download results
            credits:spend: Reserve and spend organization credits

````