CMS Page — Create
Creates a new CMS page.
Create takes the translated fields — page_title, html_content, url_key, and the meta_* set — at the top level, and the same values are written to every configured locale. Update works the other way round: it requires a locale-nested payload such as { "en": { "page_title": "…" } } and touches only the locale you name. Send a create payload to update and nothing is written.
Endpoint
| Endpoint | Method |
|---|---|
/api/admin/cms/pages | POST |
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
url_key | string | yes | Must be unique on cms_page_translations and pass slug regex. |
page_title | string | yes | |
html_content | string | yes | |
channels | int[] | yes | Non-empty array of existing channel IDs. |
meta_title | string | no | |
meta_keywords | string | no | |
meta_description | string | no |
Response
201 Created returning the same shape as GET /api/admin/cms/pages/{id}.
Errors
| HTTP | Cause |
|---|---|
422 Unprocessable Entity | Validation failure (missing required field, duplicate url_key, empty channels). |

