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

# List exact published provider offers

> Returns canonical provider-neutral discovery offers. Available WHCC offers include exact verified unit costs; unknown or unavailable offers are intentionally unpriced. Fulfillment constraints are discovery data, not a provider submission guarantee. Provider-native SKU and UID values are never exposed.



## OpenAPI

````yaml https://api.batchrelay.com/openapi.json get /v1/catalog/products/{product_id}/offers
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/catalog/products/{product_id}/offers:
    parameters:
      - $ref: '#/components/parameters/ClientSurface'
      - $ref: '#/components/parameters/ClientVersion'
      - $ref: '#/components/parameters/InvocationMode'
    get:
      tags:
        - Catalog
      summary: List exact published provider offers
      description: >-
        Returns canonical provider-neutral discovery offers. Available WHCC
        offers include exact verified unit costs; unknown or unavailable offers
        are intentionally unpriced. Fulfillment constraints are discovery data,
        not a provider submission guarantee. Provider-native SKU and UID values
        are never exposed.
      operationId: listCatalogProductOffers
      parameters:
        - in: path
          name: product_id
          required: true
          schema:
            minLength: 1
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderOfferList'
          description: Published provider offers
        '404':
          $ref: '#/components/responses/ProductNotFound'
      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:
    ProviderOfferList:
      additionalProperties: false
      properties:
        offers:
          items:
            $ref: '#/components/schemas/ProviderOffer'
          type: array
        product:
          $ref: '#/components/schemas/ProductReference'
      required:
        - product
        - offers
      type: object
    ProviderOffer:
      additionalProperties: false
      allOf:
        - if:
            properties:
              availability:
                const: available
            required:
              - availability
          then:
            required:
              - currency
              - unit_cost_cents
              - pricing_revision
        - if:
            properties:
              availability:
                enum:
                  - unavailable
                  - unknown
            required:
              - availability
          then:
            not:
              anyOf:
                - required:
                    - currency
                - required:
                    - unit_cost_cents
                - required:
                    - pricing_revision
      description: >-
        Canonical provider-neutral discovery data. Available WHCC offers include
        a verified exact unit cost. Unknown or unavailable offers, including the
        current RPL entry, never contain a currency, unit cost, or pricing
        revision and are not chargeable quotes.
      properties:
        availability:
          $ref: '#/components/schemas/ProviderOfferAvailability'
        configuration:
          additionalProperties:
            type: string
          type: object
        currency:
          const: USD
          type: string
        fulfillment_constraints:
          $ref: '#/components/schemas/ProviderOfferConstraints'
        id:
          minLength: 1
          type: string
        pricing_revision:
          minLength: 1
          type: string
        product:
          $ref: '#/components/schemas/ProductReference'
        provider_id:
          $ref: '#/components/schemas/ProviderID'
        unit_cost_cents:
          minimum: 0
          type: integer
      required:
        - id
        - product
        - configuration
        - provider_id
        - availability
        - fulfillment_constraints
      type: object
    ProductReference:
      additionalProperties: false
      properties:
        id:
          minLength: 1
          type: string
        revision:
          minimum: 1
          type: integer
      required:
        - id
        - revision
      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
    ProviderOfferAvailability:
      enum:
        - available
        - unavailable
        - unknown
      type: string
    ProviderOfferConstraints:
      additionalProperties: false
      properties:
        fulfillment_group:
          minLength: 1
          type: string
        requirements:
          items:
            minLength: 1
            type: string
          type: array
        shipping_services:
          items:
            $ref: '#/components/schemas/ShippingService'
          type: array
      required:
        - fulfillment_group
      type: object
    ProviderID:
      enum:
        - whcc
        - rpl
      type: string
    ShippingService:
      description: >-
        Required domestic US delivery service. The server freezes the exact
        deterministic provider shipping quote before payment; a service can be
        unavailable when provider eligibility, a one-day zone result, or
        required provider cost evidence is unavailable.
      enum:
        - economy_untracked
        - economy
        - expedited
        - standard_one_day
        - priority_one_day
      type: string
  responses:
    ProductNotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: The active public product does not exist.

````