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

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

const market = await client.markets.create({
  name: 'Europe',
  currency: 'EUR',
  default_locale: 'de',
  supported_locales: ['de', 'en', 'fr'],
  tax_inclusive: true,
  country_isos: ['DE', 'FR', 'IT'],
})
{
  "id": "mkt_gbHJdmfrXB",
  "name": "France only",
  "currency": "EUR",
  "default_locale": "fr",
  "tax_inclusive": true,
  "default": false,
  "country_isos": [
    "FR"
  ],
  "supported_locales": [
    "en",
    "fr"
  ],
  "created_at": "2026-06-17T13:36:59.707Z",
  "updated_at": "2026-06-17T13:36:59.707Z"
}

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
name
string
required
Example:

"Europe"

currency
string
required

ISO 4217 currency code.

Example:

"EUR"

default_locale
string
required

IETF locale tag used as the market default.

Example:

"de"

country_isos
string[]
required

2-letter ISO country codes assigned to this market. At least one is required.

Example:
["DE", "FR"]
supported_locales
string[]

Locale codes available in this market. The default is always implicitly included.

Example:
["de", "en"]
tax_inclusive
boolean
default:false

Display prices with tax included.

default
boolean
default:false

Setting to true demotes the previous default.

position
integer

Sort order within the store; lower = first.

Response

market created

id
string
required
name
string
required
currency
string
required
default_locale
string
required
tax_inclusive
boolean
required
default
boolean
required
country_isos
string[]
required
supported_locales
string[]
required
created_at
string
required
updated_at
string
required
countries
object[]