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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.dintero.com/feedback

```json
{
  "path": "/api-reference/products/products-collection",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Products collection

> Get products in a catalog based on query parameters

scopes:
  - admin:products
  - write:products
  - read:products




## OpenAPI

````yaml /mintlify-docs/openapi/spec-products.yaml get /accounts/{aid}/products/catalogs/{catalog_id}/products
openapi: 3.0.0
info:
  title: Products API
  contact:
    name: API Integration Support
    email: integration@dintero.com
  description: |
    # Changelog
    All notable changes to the API.

    ## 2020-05-01

    > Initial version
    > - [POST /products](/#tag/products)
  version: LATEST
  license:
    name: UNLICENSED
    url: https://dintero.com
  x-logo:
    url: https://docs.dintero.com/img/dintero-dark-padded.svg
servers:
  - url: https://api.dintero.com/v1
security:
  - JWT: []
paths:
  /accounts/{aid}/products/catalogs/{catalog_id}/products:
    get:
      tags:
        - products
      summary: Products collection
      description: |
        Get products in a catalog based on query parameters

        scopes:
          - admin:products
          - write:products
          - read:products
      operationId: aid_products_get
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/catalogId'
        - $ref: '#/components/parameters/productId'
        - $ref: '#/components/parameters/product_name'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/startingAfter'
      responses:
        '200':
          description: Product collection
          content:
            application/json:
              schema:
                type: object
                properties:
                  products:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/ProductResponse'
                        - properties:
                            groups:
                              type: array
                              items:
                                $ref: '#/components/schemas/Group'
                  starting_after:
                    type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - JWT: []
components:
  parameters:
    accountId:
      name: aid
      description: |
        An id that uniquely identifies the account.
      in: path
      required: true
      schema:
        type: string
        format: ^[PT]{1}\d{8}$
        minLength: 9
        maxLength: 9
    catalogId:
      name: catalog_id
      description: >
        An id that uniquely identifies the catalog. (must not have trailing or
        leading spaces)
      in: path
      required: true
      schema:
        type: string
        maxLength: 255
    productId:
      name: product_id
      description: >
        A string that uniquely identifies the product. (must not have trailing
        or leading spaces)
      in: query
      required: false
      schema:
        type: string
    product_name:
      name: product_name
      description: |
        Lookup on product name
      in: query
      required: false
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: |
        A limit on the number of objects to be returned. Limit can range
        between 1 and 100 items, and the default is 10 items.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
    startingAfter:
      name: starting_after
      in: query
      description: |
        cursor for use in pagination. starting_after is an object ID
        that defines your place in the list. For instance, if you make
        a list request and receive 100 objects, end the result contains
          `paging_token=pt1`, your subsequent call can include
        `starting_after=pt1` in order to fetch the next page of the list.
      required: false
      schema:
        type: string
  schemas:
    ProductResponse:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - $ref: '#/components/schemas/Product'
        - properties:
            product_id:
              description: >
                The id to define the product. An auto-generated product_id will
                be created if no product_id is provided
              type: string
              example: Stol22
              readOnly: true
            catalog_id:
              type: string
              example: S23
              description: >-
                The id to define which catalog the product is a part of. An
                auto-generated ID will be created if not provided
            catalog_name:
              type: string
              example: Sommer
              readOnly: true
              description: |
                Name of corresponding catalog
    Group:
      type: object
      properties:
        group_id:
          type: string
          description: group id
          example: B1
          readOnly: true
        group_name:
          type: string
          description: Name of the group
          example: Møbel
    Entity:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: |
            An UUID that uniquely identifies the resource
          readOnly: true
        created_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was created
          readOnly: true
        created_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was last updated
          readOnly: true
        deleted_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        deleted_at:
          type: string
          format: date-time
          readOnly: true
    Product:
      type: object
      allOf:
        - properties:
            product_name:
              type: string
              example: Stablestol
              description: |
                The products name which is shown to customers
            description:
              type: string
              example: Stablestol for utendørsbruk
            is_virtual_product:
              type: boolean
              default: false
            unit_gross_price:
              type: integer
              example: 10900
            unit:
              type: string
              example: stk
              description: Unit type
            currency:
              type: string
              example: NOK
              description: >
                The three-character ISO-4217 currency.
                https://en.wikipedia.org/wiki/ISO_4217
            starting_at:
              type: string
              format: date-time
              description: |
                The product will not be visible until this time
            stopping_at:
              type: string
              format: date-time
              description: |
                The product will not be visible after this time
            dimension:
              $ref: '#/components/schemas/Dimension'
            images:
              $ref: '#/components/schemas/Images'
            locations:
              description: |
                All locations connected to the product
              type: array
              example:
                - location_id: SC_Oslo
                  location_name: SuperChain Oslo
                  is_available_for_shipping: false
                  is_available_for_pickup: true
                  number_of_items_in_storage: 15
                - location_id: SC_web
                  location_name: SuperChain Webshop
                  is_available_for_shipping: true
                  is_available_for_pickup: false
                  number_of_items_in_storage: 500
              items:
                $ref: '#/components/schemas/Location'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - message
          properties:
            code:
              type: string
              description: The code used to identify the error/warning
            errors:
              type: array
              description: The nested error(s) encountered during validation
              items:
                type: object
            message:
              type: string
              description: The human readable description of the error/warning
    Dimension:
      type: object
      description: |
        Identify item attributes, such as size and color
      properties:
        color:
          type: string
        size:
          type: string
        style:
          type: string
        config:
          type: string
        variant:
          type: string
    Images:
      description: Links to images of product
      type: array
      example:
        - href: https://example.dintero.com/c/photos/2018/6_20_thumbnail_image.png
          rel: thumbnail_image
          caption: Image of current discount
        - href: https://example.dintero.com/c/photos/2018/6_20_medium_image.png
          rel: medium_image
      items:
        type: object
        maxItems: 10
        required:
          - href
        properties:
          href:
            description: The URL of the link.
            type: string
            format: uri
          title:
            description: Describes the image
            type: string
          rel:
            description: |
              Specifies the relationship between the image and the link

              Following `rel` values are reserved for specific usage

                - thumbnail_image: link to image
                - medium_image: link to image
                - large_image: link to image
                - webshop: link to site where the image may be used
            type: string
          type:
            type: string
            description: Specifies the media type of the link
    Location:
      type: object
      properties:
        location_id:
          type: string
          description: >
            The id you have defined for the sales location. 

            (must not have trailing or leading spaces). 

            An auto-generated location_id will be created if no location_id is
            provided
          maxLength: 255
        location_name:
          type: string
          description: |
            The name that will be shown to customers
        is_available_for_shipping:
          description: |
            If true, the product is available for shipping
          type: boolean
          default: true
        is_available_for_pickup:
          description: |
            If true, the product can be picked up at this location
          type: boolean
          default: false
        number_of_items_in_storage:
          description: |
            Number of items currently in storage at this location
          type: integer
  responses:
    BadRequest:
      description: Bad / Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    AccessForbidden:
      description: Access forbidden, invalid JWT token was used
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Unexpected Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    JWT:
      type: http
      description: >
        Bearer authentication (token authentication) should be used for
        accessing the API.


        Use [Get
        Token](https://docs.dintero.com/api.html#operation/aid_auths_oauth_token_post)
        to get an access token for client credentials.

        Pass the token in the request header:

            Authorization: Bearer {access_token}

        where the **access_token** is JSON Web Tokens (JWT).
      scheme: bearer
      bearerFormat: JWT

````