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

# List all products

> Returns a list of all catalog products. The products are sorted by creation date, with the most recent products appearing first. When using modified filters, results are sorted in descending modification date instead.

A **product** represents a specific formulation or variant within a product line (e.g., "Heartgard Plus Chewables for Dogs"). Each product belongs to a product line and contains one or more items (individual SKUs).



## OpenAPI

````yaml get /ext/v2/products/
openapi: 3.1.0
info:
  description: ''
  title: NinjaAPI
  version: 2.0.0
servers:
  - url: https://connect.vetcove.com/
security: []
paths:
  /ext/v2/products/:
    get:
      tags:
        - Catalog
      summary: List all products
      description: >-
        Returns a list of all catalog products. The products are sorted by
        creation date, with the most recent products appearing first. When using
        modified filters, results are sorted in descending modification date
        instead.


        A **product** represents a specific formulation or variant within a
        product line (e.g., "Heartgard Plus Chewables for Dogs"). Each product
        belongs to a product line and contains one or more items (individual
        SKUs).
      operationId: products_list
      parameters:
        - description: When provided, filters to objects with these IDs.
          in: query
          name: ids
          required: false
          schema:
            anyOf:
              - items:
                  type: integer
                type: array
              - type: 'null'
            description: When provided, filters to objects with these IDs.
            title: Ids
        - description: >-
            A cursor used for pagination. Fetches the page of results ending
            immediately before the object with the given ID. Cannot be used at
            the same time as `starting_after`.
          in: query
          name: ending_before
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              A cursor used for pagination. Fetches the page of results ending
              immediately before the object with the given ID. Cannot be used at
              the same time as `starting_after`.
            title: Ending Before
        - description: >-
            A cursor used for pagination. Fetches the page of results starting
            immediately after the given ID. Cannot be used at the same time as
            `ending_before`.
          in: query
          name: starting_after
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              A cursor used for pagination. Fetches the page of results starting
              immediately after the given ID. Cannot be used at the same time as
              `ending_before`.
            title: Starting After
        - description: The maximum number of items to return per page.
          in: query
          name: limit
          required: false
          schema:
            default: 10
            description: The maximum number of items to return per page.
            maximum: 100
            minimum: 1
            title: Limit
            type: integer
        - description: >-
            A cursor token used for pagination. This token contains encoded
            information about the last seen record in order to continue
            pagination. Cannot be used with `starting_after` or `ending_before`
            parameters.
          in: query
          name: cursor
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              A cursor token used for pagination. This token contains encoded
              information about the last seen record in order to continue
              pagination. Cannot be used with `starting_after` or
              `ending_before` parameters.
            title: Cursor
        - description: >-
            Filters to objects modified on or after this datetime (ISO8601 UTC,
            e.g. 2025-08-25T10:30:00Z). Cannot be used with `starting_after` or
            `ending_before` parameters.
          in: query
          name: modified__gte
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              Filters to objects modified on or after this datetime (ISO8601
              UTC, e.g. 2025-08-25T10:30:00Z). Cannot be used with
              `starting_after` or `ending_before` parameters.
            title: Modified  Gte
        - description: >-
            Filters to objects modified on or before this datetime (ISO8601 UTC,
            e.g. 2025-08-25T10:30:00Z). Cannot be used with `starting_after` or
            `ending_before` parameters.
          in: query
          name: modified__lte
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              Filters to objects modified on or before this datetime (ISO8601
              UTC, e.g. 2025-08-25T10:30:00Z). Cannot be used with
              `starting_after` or `ending_before` parameters.
            title: Modified  Lte
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalProductListSchemaList'
          description: OK
      security:
        - ExternalAPIAuth: []
components:
  schemas:
    ExternalProductListSchemaList:
      properties:
        data:
          description: A single page of data contained within this list.
          items:
            $ref: '#/components/schemas/ExternalProductListSchema'
          title: Data
          type: array
        has_more:
          default: false
          description: Whether there are more pages or data in this list.
          title: Has More
          type: boolean
        next_page:
          description: A URL linking to the next page of this list.
          title: Next Page
          type: string
        type:
          default: list
          description: Type of this object. Always `list`.
          title: Type
          type: string
      required:
        - data
        - next_page
      title: ExternalProductListSchemaList
      type: object
    ExternalProductListSchema:
      properties:
        alt_image_url:
          anyOf:
            - type: string
            - type: 'null'
          description: Alternative URL to the product's image
          title: Alt Image Url
        created:
          description: The datetime this object was created.
          format: date-time
          title: Created
          type: string
        default_sig:
          anyOf:
            - type: string
            - type: 'null'
          description: The default directions for the Product, if available
          title: Default Sig
        full_name:
          description: Complete name of the Product
          title: Full Name
          type: string
        id:
          description: Unique identifier for the product
          title: Id
          type: integer
        image_url:
          anyOf:
            - type: string
            - type: 'null'
          description: URL to the product's image
          title: Image Url
        modified:
          description: >-
            The datetime this object was last modified; changes to related
            entities will not update this field.
          format: date-time
          title: Modified
          type: string
        name:
          description: >-
            Name of the Product itself. For the complete name of the Product,
            see the full_name field.
          title: Name
          type: string
        product_line_id:
          description: ID of the associated product line
          title: Product Line Id
          type: integer
      required:
        - created
        - modified
        - id
        - default_sig
        - name
        - full_name
        - product_line_id
      title: ExternalProductListSchema
      type: object
  securitySchemes:
    ExternalAPIAuth:
      scheme: bearer
      type: http

````