---
title: "Get Products"
method: GET
path: "/products"
tags: ["Catalog API"]
---

# Get Products

`GET /products`

Returns list of Products available in the Printful

## Query parameters

- `category_id` string

## Response `200`

OK

- object
  - `code` integer — Response status code `200`
  - `result` Product[]
    - `id` integer — Product ID
    - `main_category_id` integer — Main category of product
    - `type` string — Product type identifier
    - `type_name` string — Product type name
    - `title` string — Product title
    - `brand` string — Brand name
    - `model` string — Model name
    - `image` string — URL of a sample image for this product
    - `variant_count` integer — Number of available variants for this product
    - `currency` string — Currency in which prices are returned
    - `files` FileType[] — Definitions of Print/Mockup file categories that can be attached to this product
      - `id` string — Deprecated file type identifier. Please use type field instead!
      - `type` string — File type identifier - use this to specify a file's purpose when creating an order
      - `title` string — Display name
      - `additional_price` string — Additional price when this print file type is used
      - `options` CatalogFileOption[] — Additional options available to product files
        - `id` string — File option identifier. Use this to specify which option you are adding to your file in a request.
        - `type` string — The type of the value property when using this option in a request.
        - `title` string
        - `additional_price` number — Additional cost this will add to the item.
    - `options` OptionType[] — Definitions of additional options that are available for this product [See examples](#tag/Common/Options)
      - `id` string — Option identifier - use this to specify the option when creating an order
      - `title` string — Display name
      - `type` string — Data type of this option (currently only 'bool' is supported)
      - `values` object — Possible option values - [key, value] map
      - `additional_price` string — Additional price when this option is used
      - `additional_price_breakdown` object — Additional price breakdown by type - [key, value] map
    - `is_discontinued` boolean — If product is disabled in push
    - `avg_fulfillment_time` number — Average number of days for order to be fulfilled
    - `description` string — Product description
    - `techniques` AvailableTechnique[] — Available techniques
      - `key` string — The technique key to be used in the API
      - `display_name` string — The human-readable technique name
      - `is_default` boolean — Whether the technique is the default one
    - `origin_country` string, nullable — The origin country for inside label

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/printful/apis/api-documentation-printful.md) · [All operations](https://skmtc.net/printful/apis/api-documentation-printful/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/printful/api-documentation-printful/revisions/18e2f2e178dd/schema)
