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

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

// `code` is optional — when omitted it's derived from `name`
// ("Point of Sale" → "point-of-sale").
const channel = await client.channels.create({
  name: 'Point of Sale',
  code: 'pos',
  active: true,
})
{
  "id": "ch_EfhxLZ9ck8",
  "name": "Marketplace",
  "code": "marketplace",
  "active": true,
  "default": false,
  "preferred_order_routing_strategy": null,
  "created_at": "2026-06-17T13:36:30.703Z",
  "updated_at": "2026-06-17T13:36:30.703Z"
}

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:

"Point of Sale"

code
string

Slug — auto-derived from name when blank.

Example:

"pos"

active
boolean
default:true

Response

201 - application/json

channel created