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

# Get product prices

> Daily price history for a sealed product.

The same windowing as [card prices](/cards/prices): the last 90 days by default, `from` and
`to` as `YYYY-MM-DD` for anything else up to 366 days wide, and a `400` for a range that is
malformed, inverted, or wider than the maximum.

A product has no printings, so the response is one `tcgplayer`/`cardmarket` pair rather than
one per variant.


## OpenAPI

````yaml openapi.json GET /v1/products/{id}/prices
openapi: 3.0.0
info:
  title: Cromos API
  version: 1.0.0
servers:
  - url: https://api.cromos.so
security:
  - bearerAuth: []
paths:
  /v1/products/{id}/prices:
    get:
      tags:
        - Products
      summary: Get product prices
      description: >-
        Daily price history for one sealed product. Defaults to the last 90
        days; pass `from` and `to` as `YYYY-MM-DD` for a different window, up to
        366 days wide. Returns 404 if no product carries the id, and 400 if the
        range is malformed, inverted, or wider than the maximum.
      parameters:
        - schema:
            type: integer
            nullable: true
          required: false
          name: id
          in: path
        - schema:
            type: string
          required: false
          name: from
          in: query
        - schema:
            type: string
          required: false
          name: to
          in: query
      responses:
        '200':
          description: Product price history
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ProductPriceHistory'
                  error:
                    type: object
                    nullable: true
                required:
                  - data
                  - error
              example:
                data:
                  from: '2026-05-06'
                  to: '2026-08-04'
                  tcgplayer:
                    - condition: NM
                      currency: USD
                      history:
                        - observed_on: '2026-07-22'
                          market: 8381
                          low: 6999
                          high: 9499
                        - observed_on: '2026-07-27'
                          market: 8370
                          low: 6999
                          high: 9499
                        - observed_on: '2026-07-28'
                          market: 8298
                          low: 6999
                          high: 8999
                        - observed_on: '2026-07-31'
                          market: 8098
                          low: 6999
                          high: 8829
                        - observed_on: '2026-08-02'
                          market: 8171
                          low: 6999
                          high: 8829
                  cardmarket:
                    currency: EUR
                    history:
                      - observed_on: '2026-07-26'
                        avg: 6888
                        low: 4299
                        trend: 6487
                        avg_holo: null
                        low_holo: null
                        trend_holo: 0
                      - observed_on: '2026-07-27'
                        avg: 7091
                        low: 4299
                        trend: 6675
                        avg_holo: null
                        low_holo: null
                        trend_holo: 0
                      - observed_on: '2026-07-31'
                        avg: 7091
                        low: 4299
                        trend: 6659
                        avg_holo: null
                        low_holo: null
                        trend_holo: 0
                      - observed_on: '2026-08-01'
                        avg: 7091
                        low: 4299
                        trend: 7040
                        avg_holo: null
                        low_holo: null
                        trend_holo: 0
                      - observed_on: '2026-08-02'
                        avg: 7091
                        low: 4299
                        trend: 7049
                        avg_holo: null
                        low_holo: null
                        trend_holo: 0
                      - observed_on: '2026-08-03'
                        avg: 7091
                        low: 4299
                        trend: 6999
                        avg_holo: null
                        low_holo: null
                        trend_holo: 0
                error: null
        '400':
          description: Bad range
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ProductPriceHistory:
      type: object
      properties:
        from:
          type: string
        to:
          type: string
        tcgplayer:
          type: array
          items:
            type: object
            properties:
              condition:
                type: string
              currency:
                type: string
                enum:
                  - USD
              history:
                type: array
                items:
                  type: object
                  properties:
                    observed_on:
                      type: string
                      description: The date this price was observed, as YYYY-MM-DD.
                    market:
                      type: integer
                      nullable: true
                      description: An integer amount in cents (minor units).
                    low:
                      type: integer
                      nullable: true
                      description: An integer amount in cents (minor units).
                    high:
                      type: integer
                      nullable: true
                      description: An integer amount in cents (minor units).
                  required:
                    - observed_on
                    - market
                    - low
                    - high
            required:
              - condition
              - currency
              - history
        cardmarket:
          type: object
          properties:
            currency:
              type: string
              enum:
                - EUR
            history:
              type: array
              items:
                type: object
                properties:
                  observed_on:
                    type: string
                    description: The date this price was observed, as YYYY-MM-DD.
                  avg:
                    type: integer
                    nullable: true
                    description: An integer amount in cents (minor units).
                  low:
                    type: integer
                    nullable: true
                    description: An integer amount in cents (minor units).
                  trend:
                    type: integer
                    nullable: true
                    description: An integer amount in cents (minor units).
                  avg_holo:
                    type: integer
                    nullable: true
                    description: An integer amount in cents (minor units).
                  low_holo:
                    type: integer
                    nullable: true
                    description: An integer amount in cents (minor units).
                  trend_holo:
                    type: integer
                    nullable: true
                    description: An integer amount in cents (minor units).
                required:
                  - observed_on
                  - avg
                  - low
                  - trend
                  - avg_holo
                  - low_holo
                  - trend_holo
          required:
            - currency
            - history
      required:
        - from
        - to
        - tcgplayer
        - cardmarket
    ErrorResponse:
      type: object
      properties:
        data:
          type: object
          nullable: true
        error:
          $ref: '#/components/schemas/ApiError'
      required:
        - data
        - error
    ApiError:
      type: object
      properties:
        code:
          type: string
          description: A stable machine-readable token. Switch on this, not on `message`.
        message:
          type: string
          description: A human-readable sentence. Always present, never empty.
      required:
        - code
        - message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````