---
title: "List print products"
method: GET
path: "/v1/products"
tags: ["prints"]
---

# List print products

`GET /v1/products`

## Request

- Base URL: `https://api.noerrands.com/c/prints`
- URL: `https://api.noerrands.com/c/prints/v1/products`
- Auth: HTTP bearer

List what can be made from a photo -- print sizes, a canvas, a custom T-shirt (2799 credits, sizes and colours listed) and an 11oz mug (1799) -- with list prices (a 4x6 is 49 credits), each product's shipping by speed and the pixels each needs to print sharp; free, read-only, and not consequential.

## Response `200`

Success.

- object
  - `currency` 'usd', required
  - `products` object[], required
    - `product` '4x6' | '5x7' | '8x10' | 'canvas-12x16' | 'tshirt' | 'mug-11oz', required
    - `label` string, required
    - `width_in` number, required: Print size, or print area for a T-shirt or mug, in inches (short side first, except a T-shirt: width).
    - `height_in` number, required
    - `price_cents` integer, required: List price per copy.
    - `recommended_pixels` string, required: Pixels for a sharp 300 dpi print, long side x short side.
    - `shipping_cents` object, required: List shipping for this product in an order, by speed. Each product ships as its own package. A speed that is missing is not offered for this product (T-shirts have no express).
      - `budget` integer, required
      - `standard` integer, required
      - `express` integer
    - `details` string: What the product is and how the photo is placed.
    - `options` object: Choices each quote item for this product must make (T-shirt only).
      - `shirt_size` string[]
      - `shirt_color` string[]
  - `shipping` object[], required
    - `method` 'budget' | 'standard' | 'express', required
    - `price_cents` integer, required: List shipping for each photo size in the order; every size ships as its own package. T-shirts and mugs have their own rate, in each product's shipping_cents.
    - `canvas_price_cents` integer, required: List shipping for each canvas size in the order.
    - `typical_delivery` string, required
  - `note` string, required

## Other responses

- `400`: invalid_request
- `401`: unauthorized. Carries WWW-Authenticate: Bearer resource_metadata="..."
- `403`: forbidden_scope: a write tool called with a read-only key.
- `404`: not_found
- `429`: rate_limited
- `502`: provider_error

---

[API](https://skmtc.dev/noerrands/apis/no-errands-prints-api.md) · [All operations](https://skmtc.dev/noerrands/apis/no-errands-prints-api/llms.txt) · [OpenAPI document](https://skmtc.dev/noerrands/apis/no-errands-prints-api/revisions/f3ad0da7ed08?raw)
