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

> Use this endpoint to retrieve a list of Accounts available to your API key. Use this when you need to discover which Accounts you have access to, find a specific Account by name, or load Account options into your UI.

###### Filtering options:
- `filter[name]` - case-insensitive substring match on Account name
- `fields` - comma-separated list of fields to return. Valid values: `id`, `name`
- `Snappy-Account-Id` header - optional account scoping
- `Snappy-Company-Id` header - optional company scoping
- `Request-Source` header - source of the request (`api_native`, `api_zapier`, `api_salesforce`, `api_ftp`, `api_make`).

###### Pagination:
- `page[number]` - 1-indexed page number (default `1`).
- `page[size]` - Accounts per page (max `1000`, default `100`).

#### Permissions
- Requires: `accounts:read`



## OpenAPI

````yaml get /v3/accounts
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/accounts:
    get:
      tags:
        - Accounts
      summary: List accounts
      description: >-
        Use this endpoint to retrieve a list of Accounts available to your API
        key. Use this when you need to discover which Accounts you have access
        to, find a specific Account by name, or load Account options into your
        UI.


        ###### Filtering options:

        - `filter[name]` - case-insensitive substring match on Account name

        - `fields` - comma-separated list of fields to return. Valid values:
        `id`, `name`

        - `Snappy-Account-Id` header - optional account scoping

        - `Snappy-Company-Id` header - optional company scoping

        - `Request-Source` header - source of the request (`api_native`,
        `api_zapier`, `api_salesforce`, `api_ftp`, `api_make`).


        ###### Pagination:

        - `page[number]` - 1-indexed page number (default `1`).

        - `page[size]` - Accounts per page (max `1000`, default `100`).


        #### Permissions

        - Requires: `accounts:read`
      parameters:
        - schema:
            type: string
            description: Case-insensitive substring filter on account name.
            example: Snappy
          required: false
          description: Case-insensitive substring filter on account name.
          name: filter[name]
          in: query
        - schema:
            type: array
            items:
              $ref: '#/components/schemas/AccountFieldsV3'
            minItems: 1
            uniqueItems: true
            description: 'Comma-separated field projection. Valid values: id, name.'
            example:
              - name
          required: false
          description: 'Comma-separated field projection. Valid values: id, name.'
          style: form
          explode: false
          name: fields
          in: query
        - 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: 1000
            default: 100
            description: Number of accounts per page (max 1000, default 100).
            example: 100
          required: false
          description: Number of accounts per page (max 1000, default 100).
          name: page[size]
          in: query
        - 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: Page of accounts plus pagination links.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAccountsV3Response'
        '400':
          description: Bad Request - Invalid query parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseV3'
      security:
        - ApiKeyAuthentication: []
components:
  schemas:
    AccountFieldsV3:
      type: string
      enum:
        - id
        - name
      description: >-
        The fields that can be returned for the account. Valid values are: id,
        name.
      example: name
    GetAccountsV3Response:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountV3'
          description: Accounts for the requested page.
        links:
          $ref: '#/components/schemas/PaginationLinksV3'
      required:
        - data
        - links
      description: Paginated accounts response.
    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.
    AccountV3:
      type: object
      properties:
        id:
          type: string
          description: The id of the account.
          example: a12bcd34
        name:
          type: string
          description: The name of the account.
          example: Snappy
      description: Account object.
    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
        ```

````