Browse the docs ▾

Agent guides

Work with pages, sections and themes

A site is pages of sections, sections are trees of nodes, and every node has a ref. Learn these and the ops follow.

The model

Page

A page key like home, with an address, sections, and optionally data sources.

Section

A top-level container or shared part on a page.

Node

Anything inside: a heading, text, image, link, button, container, list or icon.

Ref

A node's path, such as home/home-hero/headline. Refs come from reads. Never make one up.

Shared part

Header, footer, or another component used in many places. Read it as component:<key>. An edit reaches everywhere it appears.

Tokens

Shared colours, sizes, text styles, element styles and container styles.

Library

Texts, links, images and lists that sit on no single page. Header and footer words are often here, and saves are live at once. A design shows one anywhere with store.<key>.

Read only what you need

Reads cost context, so narrow them.

get_site

Start here. Pages, sections, theme and revision.

search_site

Find a node by its words, such as "Order now". It often saves reading a whole page.

get_page_outline

Add section for one section, and a lower depth for a summary.

get_node

One node in full, when you are about to change it.

get_element_catalogue

Read once per session. It's long, because it holds ops_guide with step-by-step walkthroughs. Use with_schemas only if an op keeps being refused for its shape, as that adds about 10,000 tokens.

Change with batches

apply_site_ops applies 1 to 50 ops in order, all or none. For more, write them to a file and send it to create_ops_link's link: up to 1,000 ops, applied as one change. Each op sees the result of those before it. Use the revision in the result for the next batch, and write a short note, which the owner sees in the builder's history.
Use preview_site_ops to check a risky batch without saving. A refusal gives the op_index that failed. Some steps have to be separate calls, as the walkthroughs in ops_guide say. A new content type, for example, doesn't exist until its op is applied.
After a move_node, a ref can change, and the result's ref_changes gives the new one. Copied nodes get new keys, so read the copy's refs before editing it.

Which op for which job

Words

set_text. Use field: "body" for rich text. Data-bound words are refused, with the tool that changes them.

Rows of a written list

set_list_items, with all the rows in order. Rows left out are removed.

Images and backgrounds

set_image, set_background.

Add

add_section for a whole section in one op, laid out for computers, tablets and phones. add_element for one element, or duplicate_section to copy a section, including to another page.

Pages

add_page, rename_page, remove_page. Change addresses with preview_page_settings.

Reorder and remove

move_node, move_section, remove_node, remove_section.

Hide

set_hidden, or set_display_condition to show something only sometimes.

Links

set_link. A link inside a card that already opens something is refused.

Forms

add_form, update_form, remove_form. Responses reach the Inbox once the site is published. set_form_look gives one form its own look, and a field can check lengths, a number range or a pattern.

Shared styles

set_token changes one everywhere; add_style adds a new one based on one the site has.

Components

make_component turns a section into a shared part, which stays where it was. add_element kind: "component" places it on other pages, and a change inside it shows in every copy.

Menus

Most headers hold the menu twice: once for computers and once in a drawer for phones and tablets. Add a link to both, and check the drawer in a screenshot with state: {"show_menu": "true"}. A page's name doesn't change the menu's words, as each link has its own text. Removing a page leaves links to it, and the result names them.

Business names and contact details

Some text is only a business detail, like the phone number in a footer. It changes with preview_business_details. A rename across the site is the rename_brand op, and the business itself is renamed when the site is published.

A small, safe workflow

search_site {
  "org_id": 1042,
  "q": "Order now" }
→ "ref": "home/hero/cta"

get_node {
  "org_id": 1042,
  "ref": "home/hero/cta" }
→ fields, styles, "revision": "7d95…"

apply_site_ops {
  "org_id": 1042,
  "base_revision": "7d95…",
  "note": "Clearer hero button",
  "ops": [{
    "op": "set_text",
    "ref": "home/hero/cta",
    "value": "Book a table" }] }
→ "revision": "a41f…", "action_id": "01M…"

Words with data inside

{ "op": "set_text",
  "ref": "component:footer/copyright",
  "value": "© 2026 Opmiz Tutorials.
    All rights reserved." }