> ## 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 variant availability

> Use this endpoint to retrieve a variant's availability across countries. Returns an availability map keyed by ISO 3166-1 alpha-2 country code (e.g., "US", "DE").

###### Each entry includes:
- `isAvailable` - whether the variant ships to that country
- `price` - variant price for that country (null if not available)
- `priceBreakdown` - full pricing detail (null if not available)

###### Please note
- Country codes not present in the response should be treated as `isAvailable: false` - only supported countries are returned.
- Unlike other variant endpoints, this endpoint does **not** accept a `location` parameter. It returns availability for every supported country in a single response.

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



## OpenAPI

````yaml get /v3/variants/{variantId}/availability
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.
paths:
  /v3/variants/{variantId}/availability:
    get:
      tags:
        - Variants
      summary: Get variant availability by country
      description: >-
        Use this endpoint to retrieve a variant's availability across countries.
        Returns an availability map keyed by ISO 3166-1 alpha-2 country code
        (e.g., "US", "DE").


        ###### Each entry includes:

        - `isAvailable` - whether the variant ships to that country

        - `price` - variant price for that country (null if not available)

        - `priceBreakdown` - full pricing detail (null if not available)


        ###### Please note

        - Country codes not present in the response should be treated as
        `isAvailable: false` - only supported countries are returned.

        - Unlike other variant endpoints, this endpoint does **not** accept a
        `location` parameter. It returns availability for every supported
        country in a single response.


        #### Permissions

        - Requires: `products:read`
      parameters:
        - schema:
            type: string
            pattern: >-
              ^(?:^[A-Za-z0-9]{8,}$|^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)$
            description: Variant ID.
            example: FB6bgFV4lf
          required: true
          description: Variant ID.
          name: variantId
          in: path
        - schema:
            type: string
            description: Optional account identifier for swag validation/filtering.
            example: acc123456
          required: false
          description: Optional account identifier for swag validation/filtering.
          name: snappy-account-id
          in: header
        - schema:
            type: string
            description: Optional company identifier for swag validation/filtering.
            example: cmp123456
          required: false
          description: Optional company identifier for swag validation/filtering.
          name: snappy-company-id
          in: header
      responses:
        '200':
          description: Availability map keyed by ISO 3166-1 alpha-2 country code.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VariantAvailabilityMapV3'
              example:
                US:
                  isAvailable: true
                  price:
                    amount: 244.99
                    currency: USD
                  priceBreakdown:
                    ddp: 0
                    shippingFee: 0
                    itemPrice: 244.99
                CA:
                  isAvailable: true
                  price:
                    amount: 268.5
                    currency: USD
                  priceBreakdown:
                    ddp: 12.5
                    shippingFee: 11.01
                    itemPrice: 244.99
        '400':
          description: Bad Request - Invalid path parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseV3'
              example:
                message: Request validation failed.
                errorCode: 400_PBLC_001
                errors:
                  - errorCode: 400_PBLC_001
                    message: Invalid variant ID format
                    path: pathParameters.variantId
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseV3'
        '404':
          description: Not Found - Variant does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseV3'
              example:
                message: Variant not found.
                errorCode: 404_PDCT_001
                errors:
                  - errorCode: 404_PDCT_001
                    message: Variant with id 'q1w2e3r4t5' was not found
                    path: pathParameters.variantId
      security:
        - ApiKeyAuthentication: []
components:
  schemas:
    VariantAvailabilityMapV3:
      type: object
      properties: {}
      additionalProperties:
        $ref: '#/components/schemas/VariantAvailabilityEntryV3'
      description: >-
        Map keyed by ISO 3166-1 alpha-2 country code. Missing countries should
        be treated as unavailable.
      example:
        US:
          isAvailable: true
          price:
            amount: 244.99
            currency: USD
          priceBreakdown:
            ddp: 0
            shippingFee: 0
            itemPrice: 244.99
        CA:
          isAvailable: true
          price:
            amount: 268.5
            currency: USD
          priceBreakdown:
            ddp: 12.5
            shippingFee: 11.01
            itemPrice: 244.99
    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.
    VariantAvailabilityEntryV3:
      type: object
      properties:
        isAvailable:
          type: boolean
          description: Whether the variant is available in this country.
          example: true
        price:
          $ref: '#/components/schemas/PriceV3'
        priceBreakdown:
          $ref: '#/components/schemas/PriceBreakdownV3'
      required:
        - isAvailable
        - price
        - priceBreakdown
      description: Availability entry for a single country.
    PriceV3:
      type: object
      properties:
        amount:
          type: number
          example: 244.99
        currency:
          type: string
          description: ISO 4217 currency code.
          example: USD
      required:
        - amount
        - currency
      description: Variant price in a given currency.
    PriceBreakdownV3:
      type: object
      properties:
        ddp:
          type: number
          description: Delivered Duty Paid charges (duties + import taxes).
          example: 0
        shippingFee:
          type: number
          example: 0
        itemPrice:
          type: number
          description: Base item price before shipping/duties.
          example: 244.99
      required:
        - ddp
        - shippingFee
        - itemPrice
      description: Detailed breakdown of the variant price.
  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
        ```

````