Skip to main content
PATCH
Update page content

Authorizations

Authorization
string
header
required

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.

Path Parameters

projectId
string
required
type
string
required

Page type (e.g. PRODUCT, INDEX, CUSTOM)

handle
string
required

Page handle. Final greedy path component; may include /. Leave empty to target a singleton type's default page (e.g. the home page for INDEX, or the /collections index COLLECTION_LIST). A handle is required for CUSTOM pages and for per-resource templated types (PRODUCT, COLLECTION, PAGE, BLOG, ARTICLE).

Body

application/json
items
object[]
required
Maximum array length: 100
locale
string

Optional. Same resolution as GET; defaults to the stored default locale.

expectedUpdatedAt
string<date-time> | null

Optimistic-concurrency token: the updatedAt value from the GET read this patch was based on. Required for delegated (MCP OAuth) tokens — omitted → 428 PRECONDITION_REQUIRED; optional for API keys. When the page changed since (e.g. a concurrent studio save), the whole request is rejected with 409 STALE_PAGE before any item is written; once an earlier item was written or may have been (its outcome unconfirmed), a move reports that item and the remaining ones as failed (not confirmed applied) with 200 instead. null matches a page whose revision was never set. Re-read and reapply on top of the newer content instead of retrying the same patch.

exact
boolean

Refuse locale/handle fallback; 404 instead

Response

Update result with per-item accounting

object
enum<string>
Available options:
page_update
pageId
string
locale
string
requested
integer
updated
integer
created
integer
notFound
integer
failed
integer
updatedIds
string[]
createdIds
string[]
notFoundIds
string[]
failedIds
string[]