Skip to content

CMS Pages — List

Equivalent to GET /api/admin/cms/pages. Cursor pagination via first / after.

TIP

For what CMS Pages are, how multi-locale / multi-channel works, and the previewUrl / htmlContent semantics, see the CMS Pages overview.

Operation

OperationType
adminCmsPagesQuery (cursor)

Arguments

ArgTypeNotes
first, aftercursor paginationPage size + cursor from a previous pageInfo.endCursor.
idIntFilter by ID.
page_titleStringPartial title match.
url_keyStringPartial url_key match.
channelIntFilter by channel ID.
localeStringLocale for translation resolution.
sortStringid, page_title, url_key, created_at.
orderStringasc or desc.

Node fields

FieldTypeNotes
idIDIRI (/api/admin/cms/pages/{id}).
_idIntNumeric page ID.
urlKeyStringStorefront URL slug.
pageTitleStringTitle for the active locale.
htmlContentStringThe full page HTML body for the active locale.
metaTitle / metaKeywords / metaDescriptionStringSEO fields.
layoutStringPage layout identifier.
previewUrlStringLive storefront URL for the page (the "View" action).
localeStringResolved locale code.
channelStringResolved channel code.
channelsConnectionEvery assigned channel — query via channels { edges { node { … } } } (node: id, code, name).
translationsConnectionPer-locale content — query via translations { edges { node { … } } } (node: locale, pageTitle, urlKey, htmlContent, metaTitle, metaKeywords, metaDescription).
createdAt / updatedAtStringISO 8601.

Field-selectable connections on the listing

translations and channels are Relay connections on the listing too — select them with edges { node { … } } and pick exactly the sub-fields you need. (Over REST they come back as plain JSON arrays.) Every scalar field above resolves over GraphQL — none come back null for transport reasons.

Released under the MIT License.