Skip to main content
A page is a JSON document — a versioned tree of PageBlocks plus data bindings and capability hooks. Every Builder save creates a new version. Through this resource you fetch the current draft, apply surgical edits as RFC 6902 JSON Patch, roll back to a prior version, and publish the draft live. By the end of this page you will know which endpoints exist, what each scope unlocks, and how draft and live state relate.

A page in shape

The root block is always a NavShell; its children are the visible sections. The full block catalogue lives in PageBlocks.

Endpoints

List all pages in the workspace. Fetch the current draft page document. Apply RFC 6902 JSON Patch operations to the draft. Roll back the draft to a prior version. Publish the current draft to live.

Draft vs live

The decoupling means you can iterate on the draft as long as you like — visitors keep seeing the last published version until you publish again.

Patching the tree

PATCH /pages/{id} accepts an RFC 6902 array. Each operation is { op, path, value? }, where path is a JSON Pointer into the page document. The pointer /tree/children/0/props/headline targets the headline prop of the first child block.
Fetch the document first to compute the right paths. We chose JSON Patch over a custom diff format because patches are standard, debuggable, and hand-writable in a console without an SDK.

Common errors

PageBlocks overview

The block catalogue, prop shapes, and how to compose a page tree.