sections
The published sections of the current channel's active theme, in render order, as a cursor-paginated connection.
Arguments
| Argument | Type | Description |
|---|---|---|
type | String | Exact match on the section type. |
first | Int | Items to take from the start. |
after | String | Cursor to continue from. |
last | Int | Items to take from the end. |
before | String | Cursor to end at. |
Node fields
| Field | Type | Description |
|---|---|---|
id | ID! | Resource IRI. |
_id | Int! | Section ID. |
themeCode | String | Theme the section belongs to. |
channelId | Int | Channel the section belongs to. |
type | String | One of the six section types. |
name | String | Section name. |
sortOrder | Int | Position in the page. |
status | String | Always "1" — only published sections are returned. |
createdAt | String | ISO 8601. |
updatedAt | String | ISO 8601. |
translation | object | Content for the current locale. |
translations | array | Every locale the section has content for. |
Each translation carries id, _id, sectionId, locale and options.
Use cases
- Render a home page in one round trip — take the connection without
typeand switch on each node'stypeto pick a component. - Fetch only the footer —
sections(type: "footer_links", first: 1).
Best practices
optionsis a JSON-encoded string. Parse it client-side; it is not a typed object, because its shape changes per section type.statuscomes back as a string. It is always"1"here, since unpublished sections are not part of the storefront surface — do not filter on it.- Draw the nodes in the order returned. The connection is already in render order.
Permissions
Public. Requires only the storefront key.

