Headers
Client-Level Defaults
Set locale, currency, and country once at initialization — all subsequent requests use these defaults:SDK
Per-Request Overrides
Override client defaults for individual requests:Country and Markets
TheX-Spree-Country header resolves the customer’s market, which influences default locale and currency. Markets allow you to configure different pricing, languages, and product availability per region.
- The market’s default locale is used (unless overridden by
X-Spree-Locale) - The market’s default currency is used (unless overridden by
X-Spree-Currency)
Resolution Priority
Each value is resolved in the following order:Locale
X-Spree-Localeheaderlocalequery parameter- Market default locale (if country is set)
- Store default locale
Currency
X-Spree-Currencyheadercurrencyquery parameter- Market default currency (if country is set)
- Store default currency
Market
X-Spree-Countryheadercountryquery parameter
The locale and currency must be supported by the current store. If an unsupported value is provided, the API falls back to the store’s default.
Caching
Cacheable guest responses (products, categories, collections, markets, locales, currencies, policies, sellers) are sent withCache-Control: public and:
country, currency and locale query parameters are part of the URL, so they are cached separately without needing Vary. Responses to signed-in customers are Cache-Control: private, no-store.

