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

# List Commodity Products

> List priced products under a Shopify category route, each with every metric USDA publishes for it.

Requires the `search-commodities` scope.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/commodities
openapi: 3.1.0
info:
  title: Orbbit Data API
  version: '1.0'
  description: >-
    Commodity prices, packaged-food labels, and online store catalogs over one
    read-only REST API.
servers:
  - url: https://data.orbbit.co
    description: Production
security:
  - bearer: []
tags:
  - name: Commodities
  - name: Branded Food
  - name: Shopify
paths:
  /v1/commodities:
    get:
      tags:
        - Commodities
      summary: List Commodity Products
      description: >-
        List priced products under a Shopify category route, each with every
        metric USDA publishes for it.


        Requires the `search-commodities` scope.
      operationId: CommoditiesController_list
      parameters:
        - name: category
          required: false
          in: query
          description: >-
            A Shopify category route or the start of one, e.g.
            food_beverages_tobacco/food_items/dairy_products; absent lists every
            product
          schema:
            type: string
        - name: limit
          required: false
          in: query
          description: Products per page, 1–500; default 100
          schema:
            type: integer
        - name: cursor
          required: false
          in: query
          description: The next_cursor of the previous page
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCommoditiesResponseDto'
              example:
                data:
                  - slug: cheese_block_cheddar_40_lb
                    category: food_beverages_tobacco/food_items/dairy_products/cheese
                    attributes:
                      cheese_form: block
                    details:
                      size: 40 lb
                      cheese_style: cheddar
                    metrics:
                      - metric_name: >-
                          cheese_block_cheddar_40_lb_us_chicago_wholesale_daily_close_price_usd_per_lb
                        measure: close_price
                        unit: usd_per_lb
                        region: us_chicago
                        market_level: wholesale
                        freight: not_stated
                        frequency: daily
                        source: usda-mars
                        first_observed_on: '2021-02-24'
                        last_observed_on: '2026-08-21'
                      - metric_name: >-
                          cheese_block_cheddar_40_lb_us_wholesale_weekly_cheese_40_price_usd_per_lb
                        measure: cheese_40_price
                        unit: usd_per_lb
                        region: us
                        market_level: wholesale
                        freight: not_stated
                        frequency: weekly
                        source: usda-mpr
                        first_observed_on: '2012-03-03'
                        last_observed_on: '2026-08-15'
                next_cursor: cheese_block_cheddar_40_lb
        '400':
          description: Unknown query parameter or a limit out of range
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiErrorDto'
              example:
                error:
                  type: invalid_request
                  message: 'limit: Too big: expected number to be <=500'
        '401':
          description: Missing, malformed, unknown, or revoked API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiErrorDto'
              example:
                error:
                  type: unauthorized
                  message: 'Missing or malformed Authorization: Bearer header'
        '402':
          description: >-
            The balance, or the key's monthly spend limit, cannot cover this
            call
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiErrorDto'
              example:
                error:
                  type: insufficient_balance
                  message: Insufficient balance
        '403':
          description: The key is not scoped to this route
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiErrorDto'
              example:
                error:
                  type: forbidden
                  message: This key is not scoped to search-commodities
      security:
        - bearer: []
components:
  schemas:
    ListCommoditiesResponseDto:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              slug:
                type: string
              category:
                type: string
              attributes:
                type: object
                propertyNames:
                  type: string
                additionalProperties:
                  anyOf:
                    - type: string
                    - type: array
                      items:
                        type: string
              details:
                type: object
                propertyNames:
                  type: string
                additionalProperties:
                  type: string
              metrics:
                type: array
                items:
                  type: object
                  properties:
                    metric_name:
                      type: string
                    measure:
                      type: string
                    unit:
                      type: string
                    region:
                      type: string
                    market_level:
                      type: string
                    freight:
                      type: string
                    frequency:
                      type: string
                    source:
                      type: string
                    first_observed_on:
                      anyOf:
                        - type: string
                        - type: 'null'
                    last_observed_on:
                      anyOf:
                        - type: string
                        - type: 'null'
                  required:
                    - metric_name
                    - measure
                    - unit
                    - region
                    - market_level
                    - freight
                    - frequency
                    - source
                    - first_observed_on
                    - last_observed_on
            required:
              - slug
              - category
              - attributes
              - details
              - metrics
          x-nestjs_zod-uses-3-point-1-syntax: true
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          x-nestjs_zod-uses-3-point-1-syntax: true
          x-nestjs_zod-empty-type: true
      required:
        - data
        - next_cursor
    PublicApiErrorDto:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
            message:
              type: string
          required:
            - type
            - message
          x-nestjs_zod-self-required: true
      required:
        - error
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: Your API key, which starts with `orbbit_data_`.

````