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

> Use this endpoint to retrieve a paginated list of the account's swag designs, newest first. Every design includes its tags.

###### Filtering options
- `filter[search]` - case-insensitive search on the design name
- `filter[tag]` - comma-separated list of tag names (up to 20). Returns designs that have any of the tags, case-insensitive
- `Snappy-Account-Id` header - required account identifier

###### Optional parameters
- `page[number]` / `page[size]` - page-number pagination (1-indexed; max 100 per page, default 100)

###### Please note
- Designs are always sorted newest first. `sort` is not supported.
- Designs that are still being generated are not returned.
- A tag that no design has is not an error: it matches no designs.
- Unknown query parameters return a 400 error.

#### Permissions
- Requires: `swag:designs:read`



## OpenAPI

````yaml get /v3/swag/designs
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.
  - name: Designs
    description: >-
      A **Design** is a logo-based swag design that can be applied to base
      products. Use these endpoints to retrieve your designs and their tags.
paths:
  /v3/swag/designs:
    get:
      tags:
        - Designs
      summary: Get designs
      description: >-
        Use this endpoint to retrieve a paginated list of the account's swag
        designs, newest first. Every design includes its tags.


        ###### Filtering options

        - `filter[search]` - case-insensitive search on the design name

        - `filter[tag]` - comma-separated list of tag names (up to 20). Returns
        designs that have any of the tags, case-insensitive

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


        ###### Optional parameters

        - `page[number]` / `page[size]` - page-number pagination (1-indexed; max
        100 per page, default 100)


        ###### Please note

        - Designs are always sorted newest first. `sort` is not supported.

        - Designs that are still being generated are not returned.

        - A tag that no design has is not an error: it matches no designs.

        - Unknown query parameters return a 400 error.


        #### Permissions

        - Requires: `swag:designs:read`
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 100
            description: Case-insensitive search on the design name (1-100 characters).
            example: Summit
          required: false
          description: Case-insensitive search on the design name (1-100 characters).
          name: filter[search]
          in: query
        - schema:
            type: array
            items:
              type: string
              minLength: 1
              maxLength: 50
            description: >-
              Comma-separated list of tag names (1-20 names, each 1-50
              characters). Returns designs that have any of the tags. Matching
              is case-insensitive.
            example:
              - summit-2026
              - customer-gifts
          required: false
          description: >-
            Comma-separated list of tag names (1-20 names, each 1-50
            characters). Returns designs that have any of the tags. Matching is
            case-insensitive.
          name: filter[tag]
          in: query
          style: form
          explode: false
        - schema:
            type: integer
            minimum: 1
            default: 1
            description: 1-indexed page number.
            example: 1
          required: false
          description: 1-indexed page number.
          name: page[number]
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 100
            description: Number of designs per page (max 100, default 100).
            example: 100
          required: false
          description: Number of designs per page (max 100, default 100).
          name: page[size]
          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: Paginated list of designs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDesignsV3Response'
        '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: 'Too big: expected number to be <=100'
                    path: queryStringParameters.page[size]
        '404':
          description: Not Found - Account does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseV3'
              example:
                message: Account not found
                errorCode: 404_PBLC_001
      security:
        - ApiKeyAuthentication: []
components:
  schemas:
    GetDesignsV3Response:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/DesignV3'
          description: Designs for the requested page, newest first.
        links:
          $ref: '#/components/schemas/PaginationLinksV3'
      required:
        - data
        - links
      description: Paginated design list response (page-number pagination).
    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.
    DesignV3:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Design UUID.
          example: 3f1c2a9e-8b7d-4c1e-9f0a-2b3c4d5e6f70
        name:
          type: string
          description: Design name.
          example: Acme Summit 2026 - Primary
        imprint:
          type: string
          nullable: true
          description: >-
            URL of the logo printed on the design items, or `null` when the
            design has no logo.
          example: https://image.snappy.com/designs/dsg_8f2k1/logo.png
        tags:
          type: array
          items:
            type: string
          description: Tag names assigned to the design. `[]` when the design has no tags.
          example:
            - summit-2026
            - customer-gifts
      required:
        - id
        - name
        - imprint
        - tags
      description: >-
        A swag design: a logo-based design that can be applied to swag base
        products.
    PaginationLinksV3:
      type: object
      properties:
        first:
          type: string
          nullable: true
          description: Link to the first page.
          example: >-
            /v3/products/655277e68e0719000d6c3fd5/variants?page[size]=100&page[number]=1
        next:
          type: string
          nullable: true
          description: Link to the next page, or `null` on the final page.
          example: >-
            /v3/products/655277e68e0719000d6c3fd5/variants?page[size]=100&page[number]=2
        prev:
          type: string
          nullable: true
          description: Link to the previous page, or `null` when not applicable.
          example: null
      required:
        - first
        - next
        - prev
      description: >-
        Top-level JSON:API-style pagination links for paginated list responses.
        `first`, `next`, and `prev` are all required and all nullable. `prev` is
        `null` on cursor-paginated endpoints (backward navigation not
        supported).
  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.