---
title: "List products"
method: GET
path: "/product"
tags: ["Product"]
---

# List products

`GET /product`

List all products for sale in the Terminal shop.

## Response `200`

A list of products.

- object
  - `data` Product[], required — A list of products.
    - `id` string, required — Unique object identifier. The format and length of IDs may change over time.
    - `name` string, required — Name of the product.
    - `description` string, required — Description of the product.
    - `variants` ProductVariant[], required — List of variants of the product.
      - `id` string, required — Unique object identifier. The format and length of IDs may change over time.
      - `name` string, required — Name of the product variant.
      - `price` integer, required — Price of the product variant in cents (USD).
      - `tags` object — Tags for the product variant.
        - `app` string
        - `market_na` boolean
        - `market_eu` boolean
        - `market_global` boolean
    - `order` integer — Order of the product used when displaying a sorted list of products.
    - `subscription` 'allowed' | 'required' — Whether the product must be or can be subscribed to.
    - `tags` object — Tags for the product.
      - `app` string
      - `color` string
      - `featured` boolean
      - `market_na` boolean
      - `market_eu` boolean
      - `market_global` boolean
    - `timeHidden` string — Timestamp when the product was hidden from public view.

## Other responses

- `429` — Too Many Requests
- `500` — Internal Server Error

## Changes

- **2025-08-05** `84ef614abb97` — 1 warning, 1 info
  - removed the optional property `data/items/variants/items/description` from the response with the `200` status
  - added the optional property `data/items/timeHidden` to the response with the `200` status
- **2025-04-24** `007e5b747998` — 1 info
  - added the optional property `data/items/variants/items/description` to the response with the `200` status
- **2025-04-24** `128873249a64` — 2 info
  - added the optional property `data/items/tags/market_global` to the response with the `200` status
  - added the optional property `data/items/variants/items/tags` to the response with the `200` status
- **2025-03-19** `1c6726b12e29` — 2 breaking, 12 info
  - the response's body type/format changed from ``/`` to `object`/`` for status `429`
  - the response's body type/format changed from ``/`` to `object`/`` for status `500`
  - removed `#/components/schemas/ErrorResponse` from the response body `allOf` list for the response status `429`
  - removed `#/components/schemas/ErrorResponse` from the response body `allOf` list for the response status `500`
  - …10 more
- **2025-03-13** `cb50019f2425` — 1 warning
  - removed the optional property `data/items/tags/type` from the response with the `200` status

[Full history](https://skmtc.dev/terminaldotshop/apis/terminal-api/changes/product/get.md)

---

[API](https://skmtc.dev/terminaldotshop/apis/terminal-api.md) · [All operations](https://skmtc.dev/terminaldotshop/apis/terminal-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/terminaldotshop/terminal-api/revisions/84ef614abb97/schema)
