> ## Documentation Index
> Fetch the complete documentation index at: https://www.1password.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# List products

> Retrieve the 1Password products a distributor can provision.

Retrieve all products available to your distributor account. Use the `product_id` returned by this endpoint when [creating](/accounts-api/create-entitlement) or [linking](/accounts-api/link-entitlement) entitlements.

This endpoint supports [pagination](/accounts-api/conventions#pagination).


## OpenAPI

````yaml openapi/accounts_api.yaml GET /v1/distributor-products
openapi: 3.1.0
info:
  title: 1Password Accounts API for Partners
  version: v1
  description: >-
    The 1Password Accounts API for Partners lets distributors provision and
    manage 1Password

    product entitlements for their customers, retrieve usage data, and list the

    products available to provision.


    Resources are grouped into entitlements, usage, and products. The
    conventions

    for authentication, pagination, and filtering apply across the whole API.
  contact:
    name: 1Password
    url: https://1password.com/contact-us
servers:
  - url: https://api.1password.eu
    description: 1Password.eu (Europe)
security:
  - BearerAuth: []
tags:
  - name: Entitlements
    description: >-
      Provision, update, cancel, and link 1Password product entitlements for a
      customer.
    x-group: Entitlements
  - name: Usage
    description: Retrieve product usage data for a distributor's customers.
    x-group: Usage
  - name: Products
    description: List the 1Password products a distributor can provision.
    x-group: Products
paths:
  /v1/distributor-products:
    get:
      tags:
        - Products
      summary: List products
      description: Retrieve a list of the 1Password products a distributor can provision.
      operationId: listProducts
      parameters:
        - name: max_page_size
          in: query
          description: >-
            The maximum number of products to return per page. Defaults to 100
            when omitted or set to 0. Values greater than 100 are clamped to
            100. Negative values return an `invalid_argument` error.
          schema:
            type: integer
            minimum: 0
            format: int32
        - name: page_token
          in: query
          description: >-
            The pagination token that identifies the page of results to return.
            Tokens don't expire and must be treated as opaque.
          schema:
            type: string
      responses:
        '200':
          description: A paginated list of products available to the distributor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/distributor.v1.ListProductsResponse'
              example:
                results:
                  - name: 1Password MSP
                    product_id: 1p-msp-us
                next_page_token: ''
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/Internal'
components:
  schemas:
    distributor.v1.ListProductsResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/distributor.v1.DistributorProduct'
          description: The list of products available to the distributor.
        next_page_token:
          type: string
          description: >-
            The token to use for the next page of results. Empty if there are no
            more results.
      additionalProperties: false
      description: The paginated product catalog available to the distributor.
    distributor.v1.DistributorProduct:
      type: object
      properties:
        name:
          type: string
          description: The display name of the 1Password product.
          example: 1Password MSP
        product_id:
          type: string
          description: >-
            The unique identifier for the product. Use this value when creating
            entitlements.
          example: 1p-msp-us
      additionalProperties: false
      description: A 1Password product that a distributor can provision.
      x-aep-resource:
        singular: distributorproduct
    Error:
      type: object
      properties:
        code:
          type: string
          description: Error code.
          example: not_found
        message:
          type: string
          description: Human-readable message.
          example: The requested resource was not found.
      required:
        - code
        - message
      description: Standard error response format.
  responses:
    BadRequest:
      description: Bad Request - Invalid parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: invalid_argument
            message: The 'email' field must be a valid email address.
    Unauthenticated:
      description: Unauthenticated - Missing or invalid credentials.
      headers:
        WWW-Authenticate:
          description: The authentication scheme to use ("Bearer").
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: unauthenticated
            message: Authentication required. Please provide a valid bearer token.
    NotFound:
      description: Not Found - Resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: not_found
            message: The requested resource was not found.
    TooManyRequests:
      description: >-
        Too Many Requests - Limit is 1,000 requests per minute per distributor.
        There is no separate hourly limit.
      headers:
        Retry-After:
          description: How long to wait before retrying, in seconds.
          schema:
            type: string
      content:
        text/plain:
          schema:
            type: string
          example: Too Many Requests
    Internal:
      description: Internal Server Error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: internal
            message: An internal error occurred. Please try again later.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Bearer token authentication. When a distributor is registered, they
        receive an opaque bearer token (prefixed `op_b_`). Include it in the
        Authorization header of every request as `Bearer <token>`.

````

## Related topics

- [Reference for the 1Password Accounts API for Partners](/accounts-api/reference.md)
- [1Password Accounts API for Partners](/accounts-api.md)
- [List customer usage](/accounts-api/list-customer-usage.md)
