Channels
A channel represents an individual storefront — its hostname, theme, allowed locales and currencies, default locale, base currency, and SEO defaults. Most stores have one channel; multi-channel installations expose every channel through the same endpoints.
Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /api/shop/channels | Paginated list of channels |
| GET | /api/shop/channels/{id} | Single channel by ID |
Use the example switcher above the curl block to flip between the two.
Request Headers
| Header | Required | Description |
|---|---|---|
Accept | Yes | application/json |
X-STOREFRONT-KEY | Yes | Storefront API key (pk_storefront_…) |
Query Parameters (collection only)
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number (1-based) |
per_page | integer | 10 | Items per page. Max 50. |
The collection response carries pagination headers (X-Total-Count, X-Page, X-Per-Page, X-Total-Pages). See Pagination.
Channel Object Fields
Both endpoints return the same shape — the collection wraps an array of these objects, the single endpoint returns one.
| Field | Type | Description |
|---|---|---|
id | integer | Channel primary key |
code | string | Unique channel code — pass it as the X-Channel header to scope a request |
hostname | string | Public hostname for this channel |
theme | string | Theme assigned to the channel |
timezone | string | null | Timezone code (e.g. America/New_York) |
homeSeo | object | SEO metadata: { meta_title, meta_keywords, meta_description } |
isMaintenanceOn | boolean (0/1) | Maintenance mode flag |
allowedIps | string | null | Comma-separated IP allowlist (used when maintenance mode is on) |
logo, favicon | string | null | Storage paths |
logoUrl, faviconUrl | string | null | Fully-qualified asset URLs |
createdAt, updatedAt | string (ISO-8601) | null | Timestamps |
locales | array of IRI strings | Locales enabled for this channel — GET <iri> to dereference |
currencies | array of IRI strings | Currencies enabled for this channel |
defaultLocale | string (IRI) | null | Default locale for the channel |
baseCurrency | string (IRI) | null | Base currency for prices |
translation | string (IRI) | null | Channel translation for the request locale (single IRI, not inline) |
translations | array of IRI strings | All locale translations |
Unlike
Attribute/Category, the channel'stranslationis returned as an IRI, not an inline object. Follow it withGET <iri>to readname,description,maintenanceModeText, etc. See IRIs & HATEOAS.
Use Cases
- Discover the channel
codeto send asX-Channelon subsequent requests. - Read
locales/currencies/defaultLocale/baseCurrencyIRIs to render channel-aware switchers. - Read
homeSeofor the home-page<title>and meta tags before any product is loaded. - Check
isMaintenanceOnbefore showing the storefront; if1, fetch thetranslationIRI for the localized maintenance text.

