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

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

// Idempotent — re-publishing an already-published product updates its
// publication window. `published_at`/`unpublished_at` are optional:
// `null` (or omitted) means live immediately and never come down.
const { product_count } = await client.channels.addProducts('channel_xxx', {
  product_ids: ['prod_xxx', 'prod_yyy'],
  published_at: '2026-07-01T00:00:00Z',
})
{
  "product_count": 1
}

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

Path Parameters

id
string
required

Body

application/json
product_ids
string[]
required
published_at
string<date-time> | null

When the publications go live. null means immediately.

unpublished_at
string<date-time> | null

When the publications come down. null means never.

Response

200 - application/json

products published

product_count
integer