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

# Get base variant by ID

> Use this endpoint to retrieve a single base variant by its UUID. Returns the same `BaseVariant` object shape as items in the Get base product variants list response.

###### Request parameters
- `location` - required ISO 3166-1 alpha-2 country code
- `Snappy-Account-Id` header - required account identifier

###### Please note
Unknown query keys return a 400 error. This endpoint does not accept `fields` or `include`.

#### Permissions
- Requires: `products:read`



## OpenAPI

````yaml get /v3/swag/base-variants/{baseVariantId}
openapi: 3.0.3
info:
  title: Snappy Public API v3
  version: 3.0.0
  contact:
    name: Snappy Support
    email: info@snappy.com
  description: >-
    Welcome to the Snappy API reference documentation!

    You can use this API to integrate with Snappy and spread smiles to your
    employees/clients/customers and much more.

    So let's get started!
servers:
  - url: https://api.snappy.com/public-api
    description: Base API URL
  - url: https://mtls-api.snappy.com/public-api
    description: >-
      ## mTLS URL

      You can also use mTLS to enhance your API security. To get your specific
      certificates please contact our support.

      Once you configure the certificated correctly, you need to also update
      endpoints to use the following secure api base URL:
security: []
tags:
  - name: Products
    description: >-
      Use these endpoints to retrieve products and tags for building catalog and
      browse experiences in your UI.
  - name: Collections
    description: >-
      Use these endpoints to retrieve products within curated collections for
      marketplace and browse experiences.
  - name: Variants
    description: >-
      Use these endpoints to retrieve variants, variant pricing, and country
      availability for orderable product SKUs.
  - name: Billing Methods
    description: >-
      A **Billing Method** is the funding source attached to an **Account** -
      for example, a Purchase Order (PO), Invoice, Prepay deposit, or Credit
      Card. Use these endpoints to retrieve billing method details such as
      remaining balance, status, and expiration.
  - name: Accounts
    description: >-
      An **Account** is a sub-entity within a **Company**, used to organize
      campaigns and gift sends. Use these endpoints to list, retrieve, and
      create accounts.
  - name: API Keys
    description: >-
      Use these endpoints to manage API keys for programmatic access. Key
      management requires company owner privileges.
  - name: Orders
    description: >-
      Use these endpoints to place, retrieve, cancel, and validate orders and
      shipping addresses.
  - name: Digital cards
    description: Use these endpoints to create, retrieve, and access digital cards.
  - name: Base products
    description: Browse swag product templates and their available variants.
  - name: Base variants
    description: Retrieve individual orderable variants of swag product templates.
paths:
  /v3/swag/base-variants/{baseVariantId}:
    get:
      tags:
        - Base variants
      summary: Get base variant by ID
      description: >-
        Use this endpoint to retrieve a single base variant by its UUID. Returns
        the same `BaseVariant` object shape as items in the Get base product
        variants list response.


        ###### Request parameters

        - `location` - required ISO 3166-1 alpha-2 country code

        - `Snappy-Account-Id` header - required account identifier


        ###### Please note

        Unknown query keys return a 400 error. This endpoint does not accept
        `fields` or `include`.


        #### Permissions

        - Requires: `products:read`
      parameters:
        - schema:
            type: string
            format: uuid
            description: Base-variant UUID.
            example: d772e853-64d4-4578-b6d2-4c00396ad6a6
          required: true
          description: Base-variant UUID.
          name: baseVariantId
          in: path
        - schema:
            type: string
            pattern: ^[A-Z]{2}$
            description: Required ISO 3166-1 alpha-2 country code.
            example: US
          required: true
          description: Required ISO 3166-1 alpha-2 country code.
          name: location
          in: query
        - schema:
            type: string
            minLength: 1
            description: Required. Account identifier.
            example: acc123456
          required: true
          description: Required. Account identifier.
          name: snappy-account-id
          in: header
      responses:
        '200':
          description: Single base variant.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBaseVariantByIdV3Response'
        '400':
          description: Bad Request - Invalid query parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseV3'
              example:
                message: Request validation failed.
                errorCode: 400_PBLC_001
                errors:
                  - errorCode: 400_PBLC_002
                    message: must be a supported country code
                    path: queryStringParameters.location
        '404':
          description: >-
            Not Found - Base variant does not exist or location is not
            supported.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseV3'
              example:
                message: Base variant not found.
                errorCode: 404_PDCT_002
                errors:
                  - errorCode: 404_PDCT_002
                    message: >-
                      Base variant with id
                      'd772e853-64d4-4578-b6d2-4c00396ad6a6' was not found
                    path: pathParameters.baseVariantId
      security:
        - ApiKeyAuthentication: []
components:
  schemas:
    GetBaseVariantByIdV3Response:
      type: object
      properties:
        data:
          allOf:
            - $ref: '#/components/schemas/BaseVariantV3'
            - description: Base variant.
      required:
        - data
      description: Single base variant.
    ErrorResponseV3:
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message.
          example: Product not found.
        errorCode:
          type: string
          description: Structured error code.
          example: 404_PROD_001
        errors:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
                example: Product with id 'q1w2e3r4t5' was not found
              path:
                type: string
                description: Dot-separated path to the field that caused the error.
                example: pathParameters.productId
              errorCode:
                type: string
                example: 404_PROD_001
            required:
              - message
              - path
          description: Optional field-level error details.
      required:
        - message
        - errorCode
      description: Standard v3 error envelope.
    BaseVariantV3:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Base-variant UUID.
          example: d772e853-64d4-4578-b6d2-4c00396ad6a6
        baseProductId:
          type: string
          format: uuid
          description: Parent base-product UUID.
          example: 048392af-5f4c-4ddc-b0e2-7a0edf152268
        title:
          type: string
          description: Base variant title.
          example: Classic Tee - Black / M
        selectedOptions:
          type: object
          additionalProperties:
            type: string
          description: Selected option values for this variant.
          example:
            color: Black
            size: M
        taxable:
          type: boolean
          description: Whether the variant is taxable.
          example: true
        media:
          type: array
          items:
            $ref: '#/components/schemas/MediaV3'
          description: Base variant media.
        shippingRequired:
          type: boolean
          description: Whether the variant requires shipping. Returned when available.
      required:
        - id
        - baseProductId
        - title
        - selectedOptions
        - taxable
        - media
      description: A purchasable option combination for a swag base product.
    MediaV3:
      type: object
      properties:
        type:
          type: string
          enum:
            - image
            - video
          description: Media type.
          example: image
        src:
          type: string
          format: uri
          description: Media source URL.
          example: >-
            https://media.snappy.com/image/o1xc17wfbda6cl91hm0r6_picture-1.jpg?w=1000&h=1000&q=80&f=auto
      required:
        - type
        - src
      description: A media item for v3 endpoints.
  securitySchemes:
    ApiKeyAuthentication:
      type: apiKey
      in: header
      name: X-Api-Key
      description: |-
        ## Company Level Authentication

        Include your API key in the `X-Api-Key` header for every request:
        ```
        X-Api-Key: YOUR_API_KEY
        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.