Skip to main content
GET
/
api
/
v3
/
admin
/
products
/
{id}
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'

const client = createAdminClient({
  baseUrl: 'https://your-store.com',
  secretKey: 'sk_xxx',
})

const product = await client.products.get('prod_86Rf07xd4z', {
  expand: ['variants', 'option_types'],
})
{
  "id": "prod_UkLWZg9DAJ",
  "name": "Product 439727",
  "slug": "product-439727",
  "meta_title": null,
  "meta_description": null,
  "meta_keywords": null,
  "variant_count": 0,
  "available_on": "2025-05-21T18:11:35.746Z",
  "purchasable": true,
  "in_stock": false,
  "backorderable": true,
  "available": true,
  "description": "Eaque quos laborum maxime rem. Tenetur consequatur iste inventore quae. Nobis libero fuga animi dolorum ea eveniet deserunt. Repellendus autem placeat tempore nesciunt unde in suscipit eligendi. Occaecati minus exercitationem vel dignissimos. Veritatis blanditiis adipisci perspiciatis vero autem sapiente fugiat quos. Laboriosam provident omnis unde qui nam quasi corrupti quibusdam. Hic minus aliquam voluptates tempore culpa facere. Sed earum aperiam natus repellat blanditiis asperiores nobis animi. Illo veritatis autem quibusdam laudantium blanditiis alias. Dolorem quae laboriosam qui voluptate occaecati ab. Maiores deserunt fugit maxime temporibus cupiditate tempore distinctio minus.",
  "description_html": "Eaque quos laborum maxime rem. Tenetur consequatur iste inventore quae. Nobis libero fuga animi dolorum ea eveniet deserunt. Repellendus autem placeat tempore nesciunt unde in suscipit eligendi.\nOccaecati minus exercitationem vel dignissimos. Veritatis blanditiis adipisci perspiciatis vero autem sapiente fugiat quos. Laboriosam provident omnis unde qui nam quasi corrupti quibusdam. Hic minus aliquam voluptates tempore culpa facere.\nSed earum aperiam natus repellat blanditiis asperiores nobis animi. Illo veritatis autem quibusdam laudantium blanditiis alias. Dolorem quae laboriosam qui voluptate occaecati ab. Maiores deserunt fugit maxime temporibus cupiditate tempore distinctio minus.",
  "default_variant_id": "variant_UkLWZg9DAJ",
  "thumbnail_url": null,
  "tags": [],
  "price": {
    "id": "price_UkLWZg9DAJ",
    "amount": "19.99",
    "amount_in_cents": 1999,
    "compare_at_amount": null,
    "compare_at_amount_in_cents": null,
    "currency": "USD",
    "display_amount": "$19.99",
    "display_compare_at_amount": null,
    "price_list_id": null,
    "variant_id": "variant_UkLWZg9DAJ",
    "created_at": "2026-05-21T18:11:35.771Z",
    "updated_at": "2026-05-21T18:11:35.771Z"
  },
  "original_price": null,
  "status": "active",
  "make_active_at": "2025-05-21T18:11:35.746Z",
  "discontinue_on": null,
  "metadata": {},
  "deleted_at": null,
  "created_at": "2026-05-21T18:11:35.758Z",
  "updated_at": "2026-05-21T18:11:35.772Z",
  "tax_category_id": "taxcat_UkLWZg9DAJ"
}

Documentation Index

Fetch the complete documentation index at: https://spreecommerce.org/docs/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

x-spree-api-key
string
header
required

Secret API key for admin access

Authorization
string
header
required

JWT token for admin user authentication

Headers

x-spree-api-key
string
required
Authorization
string
required

Bearer token for admin authentication

Path Parameters

id
string
required

Product ID (e.g., prod_xxx)

Query Parameters

expand
string

Comma-separated associations to expand (e.g., variants, media, option_types, categories). Use dot notation for nested expand (max 4 levels).

fields
string

Comma-separated list of fields to include (e.g., name,slug,price,status). id is always included.

Response

product found

id
string
required
name
string
required
slug
string
required
meta_title
string | null
required
meta_description
string | null
required
meta_keywords
string | null
required
variant_count
number
required
available_on
string | null
required
purchasable
boolean
required
in_stock
boolean
required
backorderable
boolean
required
available
boolean
required
description
string | null
required
description_html
string | null
required
default_variant_id
string
required
thumbnail_url
string | null
required
tags
string[]
required
price
object
required
original_price
object
required
status
string
required
make_active_at
string | null
required
discontinue_on
string | null
required
metadata
object
required
deleted_at
string | null
required
created_at
string
required
updated_at
string
required
tax_category_id
string | null
required
primary_media
object
media
object[]
variants
object[]
default_variant
object
option_types
object[]
categories
object[]
custom_fields
object[]
prior_price
object