Skip to main content
POST
/
api
/
v3
/
store
/
cart
Spree SDK
import { createSpreeClient } from '@spree/sdk'

const client = createSpreeClient({
  baseUrl: 'https://your-store.com',
  publishableKey: '<api-key>',
})

const cart = await client.store.cart.create()
{
  "id": "or_UkLWZg9DAJ",
  "number": "R935471658",
  "state": "cart",
  "token": "-E3d_5Ejn1imZYqw-tENWw1772705573567",
  "email": null,
  "special_instructions": null,
  "currency": "USD",
  "locale": "en",
  "item_count": 0,
  "state_lock_version": 0,
  "shipment_state": null,
  "payment_state": null,
  "item_total": "0.0",
  "display_item_total": "$0.00",
  "ship_total": "0.0",
  "display_ship_total": "$0.00",
  "adjustment_total": "0.0",
  "display_adjustment_total": "$0.00",
  "promo_total": "0.0",
  "display_promo_total": "$0.00",
  "tax_total": "0.0",
  "display_tax_total": "$0.00",
  "included_tax_total": "0.0",
  "display_included_tax_total": "$0.00",
  "additional_tax_total": "0.0",
  "display_additional_tax_total": "$0.00",
  "total": "0.0",
  "display_total": "$0.00",
  "completed_at": null,
  "created_at": "2026-03-05T10:12:53.568Z",
  "updated_at": "2026-03-05T10:12:53.568Z",
  "order_promotions": [],
  "line_items": [],
  "shipments": [],
  "payments": [],
  "bill_address": null,
  "ship_address": null,
  "payment_methods": []
}

Authorizations

x-spree-api-key
string
header
required

Publishable API key for store access

Headers

x-spree-api-key
string
required
Authorization
string

Bearer JWT token (optional - for authenticated customers)

Idempotency-Key
string

Unique key for request idempotency. Duplicate requests with the same key return the cached response.

Body

application/json
metadata
object

Write-only key-value metadata (Stripe-style). Not returned in responses.

Response

cart created with metadata

id
string
required
number
string
required
state
string
required
token
string
required
email
string | null
required
special_instructions
string | null
required
currency
string
required
locale
string | null
required
item_count
number
required
state_lock_version
number
required
shipment_state
string | null
required
payment_state
string | null
required
item_total
string
required
display_item_total
string
required
ship_total
string
required
display_ship_total
string
required
adjustment_total
string
required
display_adjustment_total
string
required
promo_total
string
required
display_promo_total
string
required
tax_total
string
required
display_tax_total
string
required
included_tax_total
string
required
display_included_tax_total
string
required
additional_tax_total
string
required
display_additional_tax_total
string
required
total
string
required
display_total
string
required
completed_at
string | null
required
created_at
string
required
updated_at
string
required
order_promotions
object[]
required
line_items
object[]
required
shipments
object[]
required
payments
object[]
required
bill_address
object
required
ship_address
object
required
payment_methods
object[]
required