OnPress v2 is a platform of sites on multisite WordPress where the work is done through an API rather than in wp-admin. An agent publishes pages as markdown, uploads ready-made markup as frames, fills lists from data and changes the look with design tokens and custom CSS — all with one personal op_ token.
This documentation is written for a developer and for an agent alike. Every example is a working call, and every response in the text was taken from the live endpoints of the staging environment. Values that differ per installation are shell variables — $BASE, $SITE, $OP_TOKEN — set once in the Quickstart.
Start here
- Introduction — what v2 is, its entities, the one development rule, and how API v2 relates to API v1.
- Quickstart — a token, the first call, the first published page.
- Authentication — the
op_token, choosing the network site, rights, the rate limit. - How it works — Node and PHP, storage, baking and rebaking frames.
Map of the section
| Section | What is inside |
|---|---|
| Pages and markdown | POST /pages/markdown, frontmatter, the page tree, a page’s frame, language and translation |
| Markdown syntax | what the converter understands: headings, lists, tables, code, quotes, links |
| Frames | ready-made markup: BEM names, op/frame references, one frame per page, upload, rename |
| Inserts | every op/* insert: content, menu, repeater, language switcher, docs navigation and the rest |
| Bindings | data-op-bind: site and page values in attributes and text |
| Data | system sources and your own datasets, language variants, match |
| Styles | design tokens and site-wide custom CSS |
| Menus | menus, theme locations, invalid items |
| Docs sidebar | how the tree on the left is built and changed |
| API reference | every v2 endpoint in one table |
| Recipes | typical tasks end to end |
| Dashboard | the web app for sites, pages, frames and data |
| Errors | the response shape and every error code |
The API reference has three pages of its own: Sites and settings, Media and Translations.
Recipes: Create a page, Shell with header and footer, FAQ from data, Translate a page, Upload an image, Rename a frame.
In one paragraph
A page is markdown with frontmatter. Its look is a frame — markup stored as it is, which pulls in other frames by name and comes alive through inserts and bindings. Lists inside frames are printed from data. Styling is design tokens plus custom CSS. Everything lives in the options of one network site and is changed only through the API; a request always names its site.