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

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

const price = await client.prices.create({
  variant_id: 'variant_xxx',
  currency: 'USD',
  amount: '19.99',
})
{
  "id": "price_uw2YK1rnl0",
  "amount": "9.99",
  "amount_in_cents": 999,
  "compare_at_amount": null,
  "compare_at_amount_in_cents": null,
  "currency": "EUR",
  "display_amount": "€9.99",
  "display_compare_at_amount": null,
  "price_list_id": null,
  "variant_id": "variant_EfhxLZ9ck8",
  "created_at": "2026-06-17T13:37:36.160Z",
  "updated_at": "2026-06-17T13:37:36.160Z"
}

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

Body

application/json
variant_id
string
required
Example:

"variant_xY9"

currency
string
required
Example:

"USD"

amount
string | null
Example:

"19.99"

compare_at_amount
string | null
Example:

"24.99"

price_list_id
string | null
Example:

"pl_aBc123"

Response

201 - application/json

price created

id
string
required
amount
string | null
required
amount_in_cents
number | null
required
compare_at_amount
string | null
required
compare_at_amount_in_cents
number | null
required
currency
string | null
required
display_amount
string | null
required
display_compare_at_amount
string | null
required
price_list_id
string | null
required
variant_id
string | null
required
created_at
string
required
updated_at
string
required
variant
object