> ## 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.

# List custom sample fields

> Your organization's custom-field definitions, including the ids a `field` filter on List samples binds to. Credit-free.



## OpenAPI

````yaml GET /sample-fields
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:
  /sample-fields:
    get:
      summary: List custom sample fields
      description: >-
        The calling organization's custom-field definitions. Credit-free. This
        is the discovery surface for the `field` filter on GET /samples: a
        caller cannot guess a definition's id, so it reads the catalog once and
        filters by the ids returned here. `key` is stable and unique within the
        organization; `label` is display text and is not unique.
      responses:
        '200':
          description: The organization's custom-field definitions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SampleFieldList'
        '401':
          description: Missing or invalid credential
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    SampleFieldList:
      type: object
      additionalProperties: false
      required:
        - count
        - fields
      properties:
        count:
          type: integer
          description: Number of definitions in `fields`.
        fields:
          type: array
          items:
            type: object
            additionalProperties: false
            required:
              - id
              - key
              - label
              - valueType
              - origin
              - storage
              - writable
              - options
            properties:
              id:
                type: string
                format: uuid
                description: >-
                  Stable definition id. This is the `DEFINITION_UUID` in a
                  `field` filter on GET /samples.
              key:
                type: string
                description: Stable lowercase key, unique within the organization.
              label:
                type: string
                description: Human-readable name; not unique.
              valueType:
                type: string
                enum:
                  - text
                  - number
                  - date
                  - checkbox
                  - single_select
                  - multi_select
                  - open_multi_select
                description: >-
                  The field's declared value type, which decides the operators a
                  `field` filter may use.
              origin:
                type: string
                enum:
                  - system
                  - custom
              storage:
                type: string
                enum:
                  - value_table
                  - core_column
              writable:
                type: boolean
                description: Whether the generic field writer may set this field.
              options:
                type:
                  - array
                  - 'null'
                items:
                  type: string
                description: Allowed values for the select types; null otherwise.
    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

````