curl --request POST \
--url https://studio.weaverse.io/api/v1/content/projects/{projectId}/page-settings/{pageId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"op": "rename",
"name": "About"
}
'{
"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
}Page settings
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
POST
/
projects
/
{projectId}
/
page-settings
/
{pageId}
curl --request POST \
--url https://studio.weaverse.io/api/v1/content/projects/{projectId}/page-settings/{pageId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"op": "rename",
"name": "About"
}
'{
"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 token: a shop API key (WEAVERSE_API_KEY), a scoped API key or a delegated MCP OAuth token; translation-unit routes also accept a project-bound translation agent token. Each operation lists the scope it requires; the scope table is in the API description.
Response
Updated
The response is of type object.
Was this page helpful?