CMS Page — Create
Creates a new CMS page. Equivalent to POST /api/admin/cms/pages.
Operation
| Operation | Type |
|---|---|
createAdminCmsPage | Mutation |
Input
GraphQL input fields are camelCase.
| Field | Type | Required | Notes |
|---|---|---|---|
urlKey | String! | yes | Unique slug (lowercase, hyphen-separated). Serves the page at /page/{urlKey}. |
pageTitle | String! | yes | |
htmlContent | String! | yes | Page body (HTML). |
channels | [Int!]! | yes | Non-empty list of channel IDs the page is published to. |
metaTitle | String | no | |
metaKeywords | String | no | |
metaDescription | String | no |
Broadcast to every locale
Create takes flat top-level fields and broadcasts them to every configured locale — the new page starts with the same pageTitle / htmlContent / urlKey / SEO values in each language. Translate individual languages afterwards with Update (which is locale-nested).
Response
The mutation returns the created page. All scalars resolve, and translations / channels are field-selectable connections ({ edges { node { … } } }) — translations carries one entry per configured locale (the broadcast content). Select only what you need.
Errors
| Condition | Result |
|---|---|
urlKey, pageTitle, or htmlContent missing | validation error |
urlKey not a valid slug, or already in use | validation error |
channels empty or contains an unknown ID | validation error |
Admin role lacks cms.create | permission error |

