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

# Create an isolated Test Mode session

> Creates a short-lived anonymous Test Mode bearer session for evaluation. The session is isolated from every other session and cannot access Live Mode, billing, studios, or events. Calls must use the public API host so the edge can apply abuse controls.



## OpenAPI

````yaml https://api.batchrelay.com/openapi.json post /v1/anonymous-sessions
openapi: 3.1.0
info:
  description: >-
    Provider-neutral print catalog and prepared-media validation. This document
    covers only routes owned by the Go service; it deliberately excludes
    migration-proxied order lifecycle routes and all provider payloads.
  license:
    name: Proprietary
    url: https://github.com/SENTINELITE/Batch-Relay-Go/blob/main/README.md
  title: Batch Relay API
  version: 1.0.1
servers:
  - url: https://api.batchrelay.com
security: []
tags:
  - description: Service health and the public API description.
    name: System
  - description: Test Mode session creation and API credential entry points.
    name: Authentication
  - description: >-
      Provider-neutral canonical catalog resources and platform-owned semantic
      definitions.
    name: Catalog
  - description: Studio-scoped guest checkout-link management.
    name: Checkout links
  - description: >-
      One-way operational event messages. Alert emails contain no message body
      and recipients read messages after Batch Relay authentication.
    name: Studio messages
  - description: >-
      Explicit, reviewable sandbox-to-Live promotion plans for forms, catalog,
      and storefront configuration.
    name: Sandbox promotions
  - description: Provider-neutral validation, quoting, and order lifecycle operations.
    name: Print orders
  - description: Managed fulfillment asset ingestion and metadata.
    name: Managed assets
  - description: Studio-scoped original asset upload sessions and objects.
    name: Studio assets
  - description: Prepared and confirmed event roster team changes.
    name: Event team changes
  - description: Authenticated studio, event, and form-management operations.
    name: Studio management
  - description: >-
      Authenticated studio retail catalog management. Draft and publication
      lifecycles are explicit per product or package.
    name: Studio catalog
  - description: >-
      Authenticated singular storefront assortment management. PATCH atomically
      publishes a new immutable assortment revision; no storefront draft
      lifecycle exists yet.
    name: Storefront
  - description: Managed media used by the studio retail catalog.
    name: Studio catalog assets
  - description: Template rendering job creation and retrieval.
    name: Template renders
  - description: >-
      Published browser-side template packages and short-lived server proof
      renders. Preview artifacts are never fulfillment artwork.
    name: Browser previews
  - description: API account and credential administration.
    name: API accounts
paths:
  /v1/anonymous-sessions:
    parameters:
      - $ref: '#/components/parameters/ClientSurface'
      - $ref: '#/components/parameters/ClientVersion'
      - $ref: '#/components/parameters/InvocationMode'
    post:
      tags:
        - Authentication
      summary: Create an isolated Test Mode session
      description: >-
        Creates a short-lived anonymous Test Mode bearer session for evaluation.
        The session is isolated from every other session and cannot access Live
        Mode, billing, studios, or events. Calls must use the public API host so
        the edge can apply abuse controls.
      operationId: createAnonymousSession
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnonymousSession'
          description: >-
            New anonymous Test Mode session. Save session_token as a bearer
            credential; it is returned only once.
          headers:
            Cache-Control:
              description: The token response must not be cached.
              schema:
                const: no-store
                type: string
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Anonymous session capacity has been reached.
          headers:
            Retry-After:
              schema:
                minimum: 1
                type: integer
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Anonymous sessions are temporarily unavailable.
      security: []
components:
  parameters:
    ClientSurface:
      description: >-
        Untrusted optional analytics hint naming the calling client surface. It
        never affects authorization, routing, pricing, or behavior.
      in: header
      name: X-BatchRelay-Client-Surface
      required: false
      schema:
        maxLength: 100
        minLength: 1
        type: string
    ClientVersion:
      description: >-
        Untrusted optional analytics hint naming the calling client version. It
        never affects authorization, routing, pricing, or behavior.
      in: header
      name: X-BatchRelay-Client-Version
      required: false
      schema:
        maxLength: 100
        minLength: 1
        type: string
    InvocationMode:
      description: >-
        Untrusted optional analytics hint naming the invocation mode. It never
        affects authorization, routing, pricing, or behavior.
      in: header
      name: X-BatchRelay-Invocation-Mode
      required: false
      schema:
        maxLength: 100
        minLength: 1
        type: string
  schemas:
    AnonymousSession:
      additionalProperties: false
      properties:
        environment:
          const: sandbox
          type: string
        expires_at:
          format: date-time
          type: string
        scopes:
          items:
            enum:
              - print_orders:read
              - print_orders:write
              - usage:read
            type: string
          maxItems: 3
          minItems: 3
          type: array
        session_token:
          description: >-
            Bearer token returned once at creation. Store it securely and do not
            log it.
          pattern: ^br_anon_
          type: string
          writeOnly: true
      required:
        - session_token
        - environment
        - expires_at
        - scopes
      type: object
    Error:
      additionalProperties: false
      properties:
        code:
          description: Stable machine-readable error code.
          type: string
        docs_url:
          format: uri
          type: string
        error:
          description: Backward-compatible human-readable error.
          type: string
        message:
          type: string
        request_id:
          type: string
      required:
        - error
        - code
        - message
        - docs_url
        - request_id
      type: object

````