CMS Page — Update
Updates a CMS page using a locale-nested payload.
Locale-nested payload required
Unlike Create (top-level fields broadcast to all locales), Update validates and writes per-locale via nested blocks:
json
{
"locale": "en",
"channels": [1],
"en": {
"url_key": "about-us",
"page_title": "About Us",
"html_content": "<h1>About Us</h1>"
}
}The top-level locale field names which locale block is being updated. url_key uniqueness excludes the current page (no false-positive collisions against itself).
Endpoint
| Endpoint | Method |
|---|---|
/api/admin/cms/pages/{id} | PUT |
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
locale | string | yes | Names which locale block is being updated. |
channels | int[] | yes | Non-empty array of existing channel IDs. |
<locale> | object | yes | Per-locale block — url_key, page_title, html_content (required), plus optional meta_*. |
Response
200 OK — same shape as GET /api/admin/cms/pages/{id}.
Errors
| HTTP | Cause |
|---|---|
404 Not Found | Page not found. |
422 Unprocessable Entity | Missing nested fields, duplicate url_key, or empty channels. |

