Returns the channel’s routing rules in priority order. The rules engine walks them top-down; see the Order Routing guide.
Required scope: read_settings (for API-key authentication).
GET
/
api
/
v3
/
admin
/
channels
/
{channel_id}
/
order_routing_rules
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const { data: rules } = await client.channels.orderRoutingRules.list('ch_UkLWZg9DAJ')spree api get /channels/{channel_id}/order_routing_rules{
"data": [
{
"id": "orule_UkLWZg9DAJ",
"position": 1,
"active": true,
"created_at": "2026-07-27T19:59:58.888Z",
"updated_at": "2026-07-27T19:59:58.888Z",
"type": "preferred_location",
"channel_id": "ch_UkLWZg9DAJ",
"preferences": {},
"preference_schema": [],
"label": "Preferred location",
"description": "Fulfill from the location pinned on the order, when one is set"
},
{
"id": "orule_gbHJdmfrXB",
"position": 2,
"active": true,
"created_at": "2026-07-27T19:59:58.891Z",
"updated_at": "2026-07-27T19:59:58.891Z",
"type": "minimize_splits",
"channel_id": "ch_UkLWZg9DAJ",
"preferences": {},
"preference_schema": [],
"label": "Minimize splits",
"description": "Prefer the location that can fulfill the most items on its own, avoiding split shipments"
},
{
"id": "orule_EfhxLZ9ck8",
"position": 3,
"active": true,
"created_at": "2026-07-27T19:59:58.895Z",
"updated_at": "2026-07-27T19:59:58.895Z",
"type": "default_location",
"channel_id": "ch_UkLWZg9DAJ",
"preferences": {},
"preference_schema": [],
"label": "Default location",
"description": "Prefer the stock location marked as default"
}
],
"meta": {
"page": 1,
"limit": 25,
"count": 3,
"pages": 1,
"from": 1,
"to": 3,
"in": 3,
"previous": null,
"next": null
}
}Authorizations
Secret API key for admin access
JWT token for admin user authentication
Path Parameters
Response
200 - application/json
rules found
Was this page helpful?
⌘I
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const { data: rules } = await client.channels.orderRoutingRules.list('ch_UkLWZg9DAJ')spree api get /channels/{channel_id}/order_routing_rules{
"data": [
{
"id": "orule_UkLWZg9DAJ",
"position": 1,
"active": true,
"created_at": "2026-07-27T19:59:58.888Z",
"updated_at": "2026-07-27T19:59:58.888Z",
"type": "preferred_location",
"channel_id": "ch_UkLWZg9DAJ",
"preferences": {},
"preference_schema": [],
"label": "Preferred location",
"description": "Fulfill from the location pinned on the order, when one is set"
},
{
"id": "orule_gbHJdmfrXB",
"position": 2,
"active": true,
"created_at": "2026-07-27T19:59:58.891Z",
"updated_at": "2026-07-27T19:59:58.891Z",
"type": "minimize_splits",
"channel_id": "ch_UkLWZg9DAJ",
"preferences": {},
"preference_schema": [],
"label": "Minimize splits",
"description": "Prefer the location that can fulfill the most items on its own, avoiding split shipments"
},
{
"id": "orule_EfhxLZ9ck8",
"position": 3,
"active": true,
"created_at": "2026-07-27T19:59:58.895Z",
"updated_at": "2026-07-27T19:59:58.895Z",
"type": "default_location",
"channel_id": "ch_UkLWZg9DAJ",
"preferences": {},
"preference_schema": [],
"label": "Default location",
"description": "Prefer the stock location marked as default"
}
],
"meta": {
"page": 1,
"limit": 25,
"count": 3,
"pages": 1,
"from": 1,
"to": 3,
"in": 3,
"previous": null,
"next": null
}
}
