---
title: "Get one product"
method: GET
path: "/products/{id}"
tags: ["Products"]
---

# Get one product

`GET /products/{id}`

## Request

- Base URL: `https://sitesplaced.com/api/v1`
- URL: `https://sitesplaced.com/api/v1/products/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

Secret or publishable key. Permission `products:read`.

## Response `200`

The product.

- ProductEnvelope
  - `product` Product, required
    - `id` string, uuid, required
    - `object` 'product', required
    - `name` string, required
    - `description` string
    - `price` number, required: The price the storefront shows.
    - `compare_at_price` number, nullable
    - `delivery_fee` number, nullable: The product's own delivery fee. null = sent at the store's standard fee; 0 = ships free. An order is charged one delivery fee, the highest among its products.
    - `currency` string, required
    - `image_url` string, nullable
    - `images` string[]
    - `category` string, nullable
    - `categories` string[]
    - `type` string
    - `in_stock` boolean, required
    - `stock` number, nullable
    - `variants` ProductVariant[]
      - `options` object
      - `price` number
      - `stock` number, nullable
      - `sku` string, nullable
    - `url` string, uri, required: The product's page on the SitesPlaced storefront.

## Other responses

- `401`: `unauthorized`. The key is missing, wrong or revoked.
- `403`: `forbidden`. The key may not do this: a secret key sent from a browser, a publishable key from a website not on its list, the wrong kind of key, or a missing permission.
- `404`: `not_found`.
- `429`: `rate_limited`. Wait for `Retry-After` seconds.
- `500`: `internal_error`.
- `503`: `unavailable`.

---

[API](https://skmtc.dev/sitesplaced/apis/sitesplaced-developer-api.md) · [All operations](https://skmtc.dev/sitesplaced/apis/sitesplaced-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sitesplaced/apis/sitesplaced-developer-api/revisions/66fbfbbaad1a?raw)
