{
"object": "page_settings_updated",
"pageId": "clz8q1m2n0004pg01abou0003",
"handle": "our-story"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "CONFLICT",
"message": "Page already exists: CUSTOM/our-story",
"status": 409
}Rename a page or update its SEO
Updates one page’s metadata, selected by op. These are live writes: they change labels, routes or SEO immediately and do not go through the page draft. They never publish page content.
Operations:
rename: sets the pagename(1-191 characters) andprefix. Omittingprefixclears it.rename-custom: renames a CUSTOM page and changes its URL handle. Requiresname,handleand theassignmentIdof the CUSTOM assignment to change. Returns the handle actually written. A non-CUSTOM page returns400; a handle already used by another custom page returns409 CONFLICT. A page version is recorded after the rename.set-seo: upserts the page SEO.seoacceptstitle(max 70),description(max 320),keywords(max 500),canonicalUrl(URL),openGraph(titlemax 90,descriptionmax 200,imageURL,type:website,article,product,profileorvideo.other),twitter(cardType:summary,summary_large_image,apporplayer;titlemax 70,descriptionmax 200,imageURL) androbots(index,followbooleans). Empty strings are treated as unset.
Only pages this project owns exclusively can be changed; others return 404.
Required scope: content:write
{
"object": "page_settings_updated",
"pageId": "clz8q1m2n0004pg01abou0003",
"handle": "our-story"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "CONFLICT",
"message": "Page already exists: CUSTOM/our-story",
"status": 409
}Authorizations
Bearer authentication: a shop API key (WEAVERSE_API_KEY), a scoped API key, a delegated MCP OAuth token, or (translation-unit routes only) a project-bound translation agent token. Scopes: content:read — Read projects, pages, theme settings, versions, drafts and translation units. content:write — Save drafts and make non-destructive edits (page items, metadata, SEO, assignments, languages, glossary). Never publishes or deletes. content:publish — Publish drafts, schedule/reschedule/cancel publications, restore versions, publish global sections. content:delete — Delete pages, global sections, languages, static keys, override reverts; required with project:manage for project deletion. project:manage — Create/copy/delete projects, settings, variants, hierarchy, backups, restore-as-new, previews, hostname policy. translations:read — Read translation units only (no general content access). translations:write — Apply translation units only; never mutates page content. A legacy unscoped API key keeps read/write/translation baseline access and every pre-scope endpoint, but never gains publish/delete/project-manage implicitly.
Response
Updated
The response is of type object.
Was this page helpful?