Developers

Page Builder Sandwich abilities reference

Page Builder Sandwich registers its actions with the WordPress Abilities API. The same abilities are MCP tools on the site’s own server and REST routes under /wp-json/wp-abilities/v1. This page is generated from the plugin’s own registry.

User guide: connect an AI app

Endpoints

AbilityREST
MCP over HTTP (streamable)/wp-json/pbs/v1/mcp
MCP over WP-CLI (standard input and output)wp mcp-adapter serve --server=page-builder-sandwich --user=<login>
REST: list the abilities/wp-json/wp-abilities/v1/abilities?category=page-builder-sandwich
REST: run an ability/wp-json/wp-abilities/v1/abilities/<name>/run (GET with ?input= for read-only abilities, POST {"input": {...}} otherwise)

Authentication and permissions

HTTP requests authenticate with a WordPress application password (HTTP Basic). Connecting to the MCP server needs the capability shown below; every ability then checks its own permission, per object. Read-only abilities run with GET and their input in the query string; the others with POST and a JSON body ‘{“input”: {…}}’.

a WordPress application password (HTTP) or --user (WP-CLI); the user needs the capability each ability names · Settings: Allow AI agents (MCP), on by default

All abilities

AbilityEditionRESTPermissionParameters
pbs/activate-custom-font
Makes an uploaded custom font (a font file in the media library, by id) available in the font pickers.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/activate-custom-font/runedit_theme_options (the REST route’s own check)id integer (required)
pbs/add-local-font
Downloads a Google font family (family, weights, italic) and serves it from this site.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/add-local-font/runmanage_options (the REST route’s own check)family string (required)
weights array
italic boolean
pbs/add-section
Adds a ready-made section to a page: at the start, at the end, or after the section at a given position.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/add-section/runedit_post on that pageid integer (required)
section string (required)
position string: start, end, after
after integer
pbs/add-shop-block
Adds a WooCommerce block at the end of a post: a product element (part: title, gallery, image, price, rating, excerpt, description, add_to_cart, meta, tabs, related, upsells, sale_badge, stock; productId, or 0 for the product being viewed) or a mini cart (label).
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/add-shop-block/runedit_post (the REST route’s own check)post integer (required)
block string (required): product-element, mini-cart
part string: title, gallery, image, price, rating, excerpt, add_to_cart, meta, tabs, related, upsells, sale_badge, stock, description
productId integer
label string
pbs/ai-check-accessibility
Lists a page’s accessibility problems: images without alt text, headings that skip a level, links whose text says nothing on its own, and links with no text. Each says whether it can be fixed automatically.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/ai-check-accessibility/runedit_post on the pagepost_id integer (required)
pbs/ai-create-block
Designs a reusable component from a description (a pricing card, a team card, a banner) and saves it as a synced pattern in the editor’s “My patterns”, with each text overridable per placement. Returns its id and the block that places it.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/ai-create-block/runedit_posts and publish_posts; the AI settings’ role and spending rulesdescription string (required)
title string
pbs/ai-css-help
Explains, writes or fixes the custom CSS of one element, where `selector` stands for the element. Returns the CSS and an explanation; nothing is saved.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/ai-css-help/runedit_posts and the builder’s code permissionaction string (required): explain, write, fix
css string
instruction string
block string
pbs/ai-design-from
Recreates the layout of a screenshot (an image in the media library) or of a public web page (its address) as editable blocks in a new draft page: the same sections, columns, headings, text, lists and buttons. Logos and images are not copied.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/ai-design-from/runedit_pages (edit_post on the screenshot); the AI settings’ role and spending rulesattachment_id integer
url string
title string
instruction string
pbs/ai-edit-page
Changes a page as asked in plain words (“make the hero text shorter”, “add an FAQ about delivery after the pricing”, “translate the page into German”). AI answers with edit operations that are checked against the page’s blocks and their settings before anything is applied; refused operations are listed with the reason. A revision is saved first and its id returned as undo_revision.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/ai-edit-page/runedit_post on the page; the AI settings’ role and spending rulespost_id integer (required)
instruction string (required)
pbs/ai-fix-accessibility
Fixes the accessibility problems that can be fixed (all, or the listed issue ids): alt text written by looking at each image, heading levels corrected, vague link texts rewritten. A revision is saved first and its id returned as undo_revision.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/ai-fix-accessibility/runedit_post on the page; the AI settings’ role and spending rulespost_id integer (required)
issues array
pbs/ai-generate-image
Creates an image from a description with the site’s image model (OpenAI or Google) and saves it to the media library with alt text. Returns its id and address.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/ai-generate-image/runupload_files; the AI settings’ role and spending rulesprompt string (required)
size string: square, landscape, portrait
alt string
title string
post_id integer
pbs/ai-generate-section
Turns a one-sentence description into a ready-designed section (real, editable blocks in the site’s brand style) with text written for it. Returns the block markup, and adds it to the start or end of a page when a post_id is given (a revision keeps what was there before).
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/ai-generate-section/runedit_posts; edit_post to add it to a page; the AI settings’ role and spending rulesdescription string (required)
section string
post_id integer
position string: start, end
pbs/ai-plan-site
From a description of the business, lists the pages a website needs (home first, contact last), each with a title and a brief for that page. Nothing is created; each page can then be built from its brief.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/ai-plan-site/runedit_pages; the AI settings’ role and spending rulesbrief string (required)
pbs/ai-save-seo-meta
Saves a meta title and description into the SEO plugin the site uses (Yoast SEO, Rank Math, SEOPress or All in One SEO) and says which ones were written.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/ai-save-seo-meta/runedit_post on the pagepost_id integer (required)
title string (required)
description string (required)
pbs/ai-suggest-seo-meta
Reads a page and suggests a meta title (up to 60 characters) and meta description (up to 155), optionally around a focus keyword. Nothing is saved.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/ai-suggest-seo-meta/runedit_post on the page; the AI settings’ role and spending rulespost_id integer (required)
keyword string
pbs/ai-undo
Puts a page back the way it was before an AI change, from the undo_revision that change returned.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/ai-undo/runedit_post on the pagepost_id integer (required)
revision integer (required)
pbs/ai-write-alt-text
Looks at images and saves alt text for them: one image (attachment_id), or every image on a page that has none (post_id). At most 20 images per call; the answer says how many remain.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/ai-write-alt-text/runupload_files and edit_post on the image or page; the AI settings’ role and spending rulesattachment_id integer
post_id integer
only_missing boolean
language string
pbs/ai-write-text
Writes new text, or improves, shortens, expands, changes the tone of or fixes the grammar of a piece of text, with the site’s own AI provider. Returns the new text; nothing on the site is changed.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/ai-write-text/runedit_posts (edit_post when post_id is given); the AI settings’ role and spending rulesaction string (required): write, improve, shorten, expand, tone, fix, custom
text string
tone string: professional, friendly, confident, playful, formal, simple
instruction string
context string
pbs/apply-brand-kit
Applies the saved brand kit’s colours and fonts to the site design.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/apply-brand-kit/runedit_theme_options (the REST route’s own check)none
pbs/apply-kit
Imports a website kit’s pages (all of them, or the ones named), optionally publishing them, setting the home page and adding them to a menu. Importing again updates the same pages.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/apply-kit/runedit_pages and publish_pages; manage_options to set the home page; edit_theme_options to create a menuslug string (required)
pages array
publish boolean
front boolean
menu boolean
pbs/apply-replace
Applies a previewed job. Every changed post keeps a backup, so the job can be undone.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/apply-replace/runmanage_options (the REST route’s own check)id string (required)
pbs/build-landing-page
A guided workflow: the agent picks sections that fit your business, builds the page as a draft and writes its text.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/build-landing-page/runedit_pagesbusiness string (required)
pbs/build-pages
Creates up to 50 pages in one call, each from sections and/or block content. Each page is checked and created on its own; the answer lists every page made and every one refused, with the reason.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/build-pages/runedit_pages; each page is checked on its own (publish_pages to publish)pages array (required)
pbs/check-performance
Reports what a page’s content adds to its weight: its images (bytes, oversized ones and the smaller size that would do), the stylesheets of the blocks it uses and its third-party embeds, each problem with its fix.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/check-performance/runedit_post on the pagepost_id integer (required)
pbs/connect-adobe-fonts
Connects an Adobe Fonts (Typekit) web project by its kit id, so its fonts appear in the font pickers.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/connect-adobe-fonts/runedit_theme_options (the REST route’s own check)kit string (required)
pbs/connect-marketing-service
Connects a mailing-list service with its API key (service, key; account where the service needs one), or disconnects it with an empty key.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/connect-marketing-service/runmanage_options (the REST route’s own check)service string (required)
key string
account string
pbs/connect-support
Connects this site to Zinn Digital® support (name, email, consent).
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/connect-support/runmanage_options (the REST route’s own check)email string (required)
name string
consent boolean (required)
pbs/convert-builder-export
Converts an export (builder: elementor, divi, beaver or wpbakery; content: the exported text) into a new draft page made of blocks, optionally copying its images into the media library (media). Answers with the draft and a conversion report.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/convert-builder-export/runedit_pages (the REST route’s own check)builder string (required): elementor, divi, beaver, wpbakery
content string (required)
title string
media boolean
dryRun boolean
status string: draft, pending, private, publish
pbs/convert-builder-page
Converts one page built with Elementor, Divi, Beaver Builder or WPBakery (id) into a new draft made of blocks, keeping its layout, typography, colours and images; the original page is not changed. Answers with the draft and a report of what was converted, approximated or not converted. dryRun converts without saving.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/convert-builder-page/runedit_pages and edit_post (the REST route’s own check)id integer (required)
dryRun boolean
status string: draft, pending, private, publish
pbs/convert-post
Converts one 5.x page to blocks (backed up first).
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/convert-post/runthe REST route’s own per-item permission checkid string (required)
pbs/create-ab-test
Adds a test of two versions of a section to the end of a post (post, name, a, b; split and goal optional).
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/create-ab-test/runedit_post (the REST route’s own check)post integer (required)
name string
a string (required)
b string (required)
split integer
goal string
pbs/create-class
Creates a reusable global style class: label, slug and its styles (s).
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/create-class/runedit_theme_options (the REST route’s own check)label string (required)
slug string
s object
cat string
pbs/create-cookie-banner
Creates a ready-made consent banner design to start from.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/create-cookie-banner/runmanage_options (the REST route’s own check)none
pbs/create-form
Creates a form (contact, quote, signup or multi-step: fields, steps, settings and actions such as email, save, webhook or a mailing list), on a new page or at the end of an existing post (post).
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/create-form/runedit_pages (the REST route’s own check)title string
fields array (required)
steps array
actions object
submitText string
successMessage string
redirectUrl string
trackEvent string
post integer
pageTitle string
status string: draft, publish, private
pbs/create-page
Creates a page from library sections and/or block content. A new page is a draft unless another status is asked for.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/create-page/runedit_pages; publish_pages to publish or make privatetitle string (required)
status string: draft, pending, publish, private
sections array
content string
pbs/create-popup
Creates a popup, slide-in or bar: its content, trigger (exit intent, scroll, time, click), frequency and the pages it shows on.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/create-popup/runedit_pages (the REST route’s own check)title string (required)
content string (required)
status string: draft, publish
settings object
pbs/create-query-loop
Adds a query loop with a ready-made card, on a new page (pageTitle, status) or at the end of a post (post): source posts|users|terms|field, postType (product for a shop grid), perPage, columns, orderBy, order, pagination, and live filters [{type: search|taxonomy|meta|sort|price|onsale|instock, taxonomy, key, label, ui}].
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/create-query-loop/runedit_post and edit_posts (the REST route’s own check)post integer
pageTitle string
status string: draft, publish, private
source string: posts, users, terms, field
postType string
perPage integer
columns integer
orderBy string
order string: ASC, DESC
pagination string: none, numbers, prevnext
taxonomy string
fieldKey string
filters array
pbs/create-team
Creates a team library (name) that other sites can join with an invite code.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/create-team/runmanage_options (the REST route’s own check)name string (required)
pbs/create-theme-template
Creates a template (title, type) that replaces that part of every matching page, on classic and block themes. Without content it starts from a ready-made design for its type. include/exclude are display-condition rules ({kind, values, key, value, from, to, days}, the kinds this site’s theme builder offers); priority breaks ties; status publish (live) or draft.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/create-theme-template/runthe REST route’s own per-item permission checktitle string (required)
type string (required)
content string
include array
exclude array
priority integer
status string: publish, draft
pbs/deactivate-custom-font
Removes a custom font (by slug) from the font pickers.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/deactivate-custom-font/runedit_theme_options (the REST route’s own check)slug string (required)
pbs/delete-class
Deletes a global class. Elements that used it keep their content and lose its styles.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/delete-class/runedit_theme_options (the REST route’s own check)id string (required)
pbs/delete-icon
Removes an uploaded icon; blocks that used it keep their own copy.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/delete-icon/rundelete_post (the REST route’s own check)id string (required)
pbs/delete-library-item
Deletes a design from the cloud library.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/delete-library-item/runedit_posts (the REST route’s own check)item string (required)
team string
pbs/delete-page
Moves a page to the trash. It can be restored from Pages, Trash for 30 days.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/delete-page/rundelete_post on that pageid integer (required)
pbs/delete-team
Deletes a team and every design in its library.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/delete-team/runmanage_options (the REST route’s own check)team string (required)
pbs/delete-theme-template
Moves one template (id) to the trash; the theme’s own design shows again where it applied. Restorable from the trash.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/delete-theme-template/runthe REST route’s own per-item permission checkid string (required)
pbs/disconnect-support
Disconnects this site from support.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/disconnect-support/runmanage_options (the REST route’s own check)none
pbs/duplicate-class
Copies a global class under a new id.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/duplicate-class/runedit_theme_options (the REST route’s own check)id string (required)
pbs/duplicate-page
Copies a page (its title, content and template) into a new draft.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/duplicate-page/runedit_post on the page and edit_pagesid integer (required)
title string
pbs/export-design
Returns the Site design file: categories, global classes, variables, spacing, radius and shadow scales and custom colours (format page-builder-sandwich-design, version 1).
ProGET /wp-json/wp-abilities/v1/abilities/pbs/export-design/runedit_theme_options (the REST route’s own check)none
pbs/export-designs
Exports the chosen templates and patterns (ids) and, optionally, settings as one package for another site.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/export-designs/runmanage_options (the REST route’s own check)ids array
settings boolean
pbs/find-builder-pages
Lists the pages and posts built with Elementor, Divi, Beaver Builder or WPBakery (page, per_page), each with its builder and, when it was converted before, the converted draft.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/find-builder-pages/runedit_pages (the REST route’s own check)page integer
per_page integer
pbs/generate-page
Builds a page from sections (given, or chosen by AI from the section library) and has AI rewrite all of its text for your brief, keeping the design. Uses the AI provider set up in the plugin’s AI settings. The page is a draft unless another status is asked for.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/generate-page/runedit_pages; publish_pages to publish; the AI settings’ role and spending rulesbrief string (required)
title string
sections array
status string: draft, pending, publish, private
pbs/get-block
Returns one block’s settings (attributes with their types, choices and defaults), what it supports, which blocks it may contain, and a ready-to-use example in block markup.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/get-block/runedit_postsname string (required)
pbs/get-breakpoints
Returns the tablet and mobile widths (and custom breakpoints in Pro) the responsive controls use.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/get-breakpoints/runedit_theme_options (the REST route’s own check)none
pbs/get-conversion-tracking
Returns the Google Analytics 4, Google Tag Manager and Meta Pixel settings and which clicks and form submissions are sent.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-conversion-tracking/runmanage_options (the REST route’s own check)none
pbs/get-cookie-banner
Returns the consent banner: whether it is on, its text and design, the categories, and where it applies.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-cookie-banner/runmanage_options (the REST route’s own check)none
pbs/get-design-globals
Returns the site-wide colours and fonts (heading and body) every block uses, as the Site design screen shows them.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/get-design-globals/runedit_theme_options (the REST route’s own check)none
pbs/get-design-system
Returns the Pro design system: global classes, variables, design tokens, dark mode, brand kit and custom fonts.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-design-system/runedit_theme_options (the REST route’s own check)none
pbs/get-diagnostics
Returns the diagnostics a support ticket would carry: versions, active plugins, limits and recent errors.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/get-diagnostics/runmanage_options (the REST route’s own check)none
pbs/get-figma-connection
Returns whether the site has a Figma personal access token, the Figma account it belongs to and its last four characters. The token itself is never returned.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-figma-connection/runmanage_options (the REST route’s own check)none
pbs/get-library-account
Returns the cloud library’s storage use, plan quota and team facts.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-library-account/runedit_posts (the REST route’s own check)none
pbs/get-library-item
Returns one saved design, ready to insert on this site (its images brought into the media library).
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-library-item/runedit_posts (the REST route’s own check)item string (required)
team string
pbs/get-library-storage
Returns the bring-your-own R2/S3 storage settings (the secret is never returned).
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-library-storage/runmanage_options (the REST route’s own check)none
pbs/get-licence
Returns this site’s Page Builder Sandwich plan, licence state, renewal date and what the plan includes.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/get-licence/runmanage_options (the REST route’s own check)none
pbs/get-maintenance
Returns maintenance / coming-soon mode: mode, page, retry-after and which roles still see the site.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-maintenance/runmanage_options (the REST route’s own check)none
pbs/get-migration
Returns the 5.x content conversion’s progress and report.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/get-migration/runthe REST route’s own per-item permission checknone
pbs/get-motion-options
Returns every motion setting (entrance animation, its length and delay, scroll effect, hover effect, stay in view, parallax, follow the pointer) with its choices or range, and the site’s breakpoints.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-motion-options/runedit_posts (the REST route’s own check)none
pbs/get-newsletter-keys
Says whether a Mailchimp key is saved (the key itself is never returned).
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-newsletter-keys/runedit_posts (the REST route’s own check)none
pbs/get-page
Returns a page’s title, status, links and block content, and the sections (top-level blocks) it is made of.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/get-page/runedit_post on that pageid integer (required)
pbs/get-replace-job
Returns a job’s matches, page by page, to review before applying.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-replace-job/runmanage_options (the REST route’s own check)id string (required)
pbs/get-reviews-sources
Returns the Google and Trustpilot sources the Reviews block shows.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-reviews-sources/runmanage_options (the REST route’s own check)none
pbs/get-roles
Returns which roles may use the builder, design, code and templates (client mode).
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-roles/runmanage_options (the REST route’s own check)none
pbs/get-settings
Returns the front-end class prefix, the beta-updates state and whether AI agents (MCP) are allowed.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/get-settings/runmanage_options (the REST route’s own check)none
pbs/get-structured-data
Lists the schema.org structured data a page’s blocks print (FAQ, How-To, Product, Review, Breadcrumb) and which types are left to the site’s SEO plugin so nothing is printed twice.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-structured-data/runedit_post on the pagepost_id integer (required)
pbs/get-support-connection
Says whether this site is connected to Zinn Digital® support, and as whom.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/get-support-connection/runmanage_options (the REST route’s own check)refresh boolean
pbs/get-theme-builder-options
Returns the template types, the display-condition kinds (page, post type, term, archive, search, 404, logged in, role, device, date, time, URL parameter, referrer, language, cart) with their choices on this site (roles, languages, post types, taxonomies), and the block attribute (pbswConditions: {match, rules}) that shows or hides any block.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-theme-builder-options/runedit_posts (the REST route’s own check)none
pbs/get-white-label
Returns the white-label settings: on or off, the name shown and which users still see the original.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/get-white-label/runmanage_options (the REST route’s own check)none
pbs/import-design
Validates a Site design file (file) and, with apply false, returns what merge or replace (mode) would add, change and remove; with apply true, writes it.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/import-design/runedit_theme_options (the REST route’s own check)file object (required)
mode string: merge, replace
apply boolean
pbs/import-designs
Imports a Page Builder Sandwich design package (dryRun first to see what would change; mode: skip or replace; media; settings).
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/import-designs/runmanage_options (the REST route’s own check)package object (required)
mode string: skip, replace, duplicate
settings boolean
media boolean
dryRun boolean
pbs/import-figma-frame
Imports one Figma frame (url: the frame’s link, with its node-id) into a new draft page made of blocks: auto layout becomes flex and grid containers, text keeps its fonts and sizes, images are copied into the media library. Uses the site’s own Figma token. Answers with the draft and a conversion report.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/import-figma-frame/runedit_pages and upload_files (the REST route’s own check)url string (required)
title string
dryRun boolean
status string: draft, pending, private, publish
pbs/invite-team-member
Creates a single-use invite code (role: read or write; label; days valid). The code is shown once.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/invite-team-member/runmanage_options (the REST route’s own check)team string (required)
role string: read, write
days integer
label string
pbs/join-team
Joins a team library with an invite code.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/join-team/runmanage_options (the REST route’s own check)code string (required)
pbs/leave-team
Leaves the team library this site joined.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/leave-team/runmanage_options (the REST route’s own check)none
pbs/list-ab-tests
Lists the A/B tests with each version’s visitors and conversions, and which one is winning.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-ab-tests/runedit_pages (the REST route’s own check)none
pbs/list-blocks
Lists every Page Builder Sandwich block this site can use (Pro blocks too when Pro is active): name, title, category and description.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/list-blocks/runedit_postssearch string
pbs/list-dynamic-sources
Returns what a block can be filled from (post, author, site, archive, custom field, product) with each source’s fields, the field plugins on this site (ACF, Meta Box, Pods, JetEngine, Toolset, post meta) and a post type’s fields (postType). A block is bound to a source through its attributes.metadata.bindings, one {source, args} per attribute.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-dynamic-sources/runedit_posts (the REST route’s own check)postType string
pbs/list-extensions
Lists what other plugins have added to Page Builder Sandwich through its developer API: blocks, dynamic data sources, display conditions and form actions, each with its name, label and plugin.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/list-extensions/runedit_postsnone
pbs/list-form-submissions
Lists what visitors sent through the forms that save submissions (form narrows it), a page at a time.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-form-submissions/runthe REST route’s own per-item permission checkform string
per_page integer
page integer
pbs/list-forms
Lists the forms built with the Form block and the form plugins it can embed.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/list-forms/runedit_posts (the REST route’s own check)none
pbs/list-kits
Lists the website kits (a set of ready-made pages for one kind of business) this site can import.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/list-kits/runedit_pages and publish_pagesrefresh boolean
pbs/list-library-items
Lists the designs saved to the cloud library (kind: section, page or pattern; team: a team’s library).
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-library-items/runedit_posts (the REST route’s own check)team string
kind string: , section, page, style
pbs/list-local-fonts
Lists the Google fonts this site hosts itself (downloaded once, served from the site, no request to Google).
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/list-local-fonts/runmanage_options (the REST route’s own check)none
pbs/list-lottie
Lists the uploaded Lottie animations.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-lottie/runedit_posts (the REST route’s own check)none
pbs/list-marketing-connections
Lists the mailing-list services (Mailchimp, Brevo, MailerLite, Kit, ActiveCampaign) and which are connected. Keys are never returned.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-marketing-connections/runmanage_options (the REST route’s own check)none
pbs/list-marketing-forms
Lists every form made with the form builder: the page it is on, its fields and what happens when it is sent.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-marketing-forms/runedit_pages (the REST route’s own check)none
pbs/list-marketing-lists
Lists the audiences or lists of a connected mailing-list service, for a form’s subscribe action.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-marketing-lists/runedit_posts (the REST route’s own check)service string (required)
pbs/list-pages
Lists the pages you can edit, newest first, with an optional search.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/list-pages/runedit_pages; only pages the user can edit are listedsearch string
status string: any, draft, pending, publish, private
page integer
per_page integer
pbs/list-popups
Lists the popups, slide-ins and bars with their triggers, frequency rules and where they show.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-popups/runedit_pages (the REST route’s own check)none
pbs/list-replace-jobs
Lists the site-wide find-and-replace jobs and their state.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-replace-jobs/runmanage_options (the REST route’s own check)none
pbs/list-sections
Lists the ready-made sections (hero, features, FAQ, testimonials, call to action and more) that can be added to a page.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/list-sections/runedit_pagessearch string
pbs/list-team-members
Lists the sites in a team and their access.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-team-members/runmanage_options (the REST route’s own check)team string (required)
pbs/list-teams
Lists the teams this site belongs to or owns.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-teams/runmanage_options (the REST route’s own check)none
pbs/list-theme-templates
Lists the theme builder’s templates (header, footer, single, archive, search, 404 and, with WooCommerce, product, shop, cart, checkout, thank-you and My Account): each one’s type, where it shows (include/exclude rules), priority, status and blocks.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/list-theme-templates/runthe REST route’s own per-item permission checknone
pbs/list-transferable
Lists the templates, patterns and settings that can be exported to another site.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/list-transferable/runmanage_options (the REST route’s own check)none
pbs/list-uploaded-icons
Lists the SVG icons uploaded to the icon library, newest first.
FreeGET /wp-json/wp-abilities/v1/abilities/pbs/list-uploaded-icons/runedit_posts (the REST route’s own check)page integer
per_page integer
pbs/move-section
Moves a section of a page from one position to another (0-based, in the order the page lists them).
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/move-section/runedit_post on that pageid integer (required)
from integer (required)
to integer (required)
pbs/open-support-ticket
Files a support ticket (subject, message, kind, email), with this site’s diagnostics when the administrator agreed. It never creates a login or sends one.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/open-support-ticket/runmanage_options (the REST route’s own check)subject string (required)
message string (required)
kind string: help, bug, feedback, feature_request
email string
name string
diagnostics boolean
pbs/preview-dynamic-value
Returns what a binding shows on one post (post, source, and field or provider + key, as text|url), to check a binding before or after adding it.
ProGET /wp-json/wp-abilities/v1/abilities/pbs/preview-dynamic-value/runedit_post (the REST route’s own check)post integer (required)
source string (required)
field string
provider string
key string
as string: text, url
pbs/record-support-consent
Records the administrator’s consent to send diagnostics with support tickets.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/record-support-consent/runmanage_options (the REST route’s own check)consent boolean (required)
pbs/refresh-reviews
Fetches the latest Trustpilot reviews now instead of waiting for the daily refresh.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/refresh-reviews/runmanage_options (the REST route’s own check)none
pbs/remove-block
Removes one block (a whole section, or a block inside one) from a page, found by its path. The page’s previous version stays in its revisions.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/remove-block/runedit_post on that pageid integer (required)
path array (required)
pbs/remove-library-storage
Removes the bring-your-own storage settings; the plan storage is used again.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/remove-library-storage/runmanage_options (the REST route’s own check)none
pbs/remove-local-font
Deletes a self-hosted font family’s files.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/remove-local-font/runmanage_options (the REST route’s own check)family string (required)
pbs/remove-team-member
Removes a site from a team.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/remove-team-member/runmanage_options (the REST route’s own check)team string (required)
member string (required)
pbs/reset-ab-test
Clears a test’s counts and starts it again (test).
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/reset-ab-test/runedit_pages (the REST route’s own check)test string (required)
pbs/save-library-item
Saves block markup (title, kind, markup, styles, tags) to your cloud library or a team’s; images are packed with it.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/save-library-item/runedit_posts (the REST route’s own check)team string
kind string (required): section, page, style
title string (required)
tags array
markup string
styles object
pbs/set-block-motion
Sets or removes (null) motion settings on one block of a page, found by its path, at a breakpoint (base by default). Works on any block, including core blocks whose HTML is saved in the page. Visitors who ask for reduced motion never see the movement.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/set-block-motion/runedit_post (the REST route’s own check)post string (required)
path array (required)
breakpoint string
motion object (required)
pbs/set-library-storage
Saves bring-your-own storage: provider (r2 or s3), bucket, region, endpoint, prefix, key_id, secret, enabled.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/set-library-storage/runmanage_options (the REST route’s own check)enabled boolean
provider string: r2, s3, other
endpoint string
region string
bucket string
prefix string
keyId string
secret string
pathStyle boolean
pbs/set-maintenance
Turns maintenance (503) or coming-soon mode on or off (mode), with the page to show (page_id), retry_after and the roles that bypass it.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/set-maintenance/runmanage_options (the REST route’s own check)mode string: off, maintenance, coming_soon
page_id integer
roles array
retry_after integer
pbs/set-newsletter-keys
Saves (or, with an empty value, removes) the Mailchimp API key the newsletter block uses.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/set-newsletter-keys/runmanage_options (the REST route’s own check)mailchimp string (required)
pbs/set-reviews-sources
Sets the Google place and Trustpilot business the Reviews block reads.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/set-reviews-sources/runmanage_options (the REST route’s own check)google object
trustpilot object
pbs/set-roles
Sets per role what the builder allows (roles), e.g. a content-only client role.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/set-roles/runmanage_options (the REST route’s own check)roles object (required)
pbs/set-white-label
Turns white label on or off and sets the name clients see (enabled, name, agency_users).
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/set-white-label/runmanage_options (the REST route’s own check)enabled boolean
name string
studio_name string
author string
author_url string
description string
menu_icon string
hide_plugin boolean
agency_users array
pbs/site-health-clean
Cleans one kind of finding: revisions (keeps each post’s newest 5, deletes older ones), patterns (moves unused synced patterns to the trash), images (a scaled copy WordPress uses; the original is kept), classes (removes unused design classes, kept for restoring). Each run cleans one batch; “more” is true while findings remain.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/site-health-clean/runmanage_optionswhat string (required): revisions, patterns, images, classes
pbs/site-health-report
Finds old revisions, synced patterns nothing uses, heavy original images and design classes no page uses. Works in short steps: each run continues where the last one stopped while the status is “scanning”; restart starts over.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/site-health-report/runmanage_optionsrestart boolean
pbs/start-migration
Starts (or restarts) converting every 5.x page to blocks; each post is backed up first.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/start-migration/runthe REST route’s own per-item permission checknone
pbs/start-replace
Starts a block-safe find-and-replace (find, replace, kind: text, link or colour; match_case; types). Nothing changes until the previewed job is applied.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/start-replace/runmanage_options (the REST route’s own check)find string (required)
replace string
kind string: text, link, colour
types array
match_case boolean
pbs/start-trial
Starts the 14-day Page Builder Sandwich Pro trial for this site (no payment needed).
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/start-trial/runmanage_options (the REST route’s own check)none
pbs/test-library-storage
Writes, reads and deletes a test object in your own storage and reports each step.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/test-library-storage/runmanage_options (the REST route’s own check)none
pbs/undo-convert-post
Restores one converted page from its backup.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/undo-convert-post/runthe REST route’s own per-item permission checkid string (required)
pbs/undo-migration
Restores every converted post from its backup.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/undo-migration/runthe REST route’s own per-item permission checknone
pbs/undo-replace
Restores the posts a job changed (a post edited since keeps its edit).
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/undo-replace/runmanage_options (the REST route’s own check)id string (required)
pbs/update-block
Changes the settings (attributes) of one block inside a page, found by its path; attributes you send are merged over the current ones. Works on blocks the site renders from their settings; a block whose HTML is saved in the page is changed by replacing the page’s markup.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/update-block/runedit_post on that pageid integer (required)
path array (required)
attributes object (required)
pbs/update-brand-kit
Saves the brand kit: name, logo, colours, heading and body fonts, and the brand voice AI writing uses.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/update-brand-kit/runedit_theme_options (the REST route’s own check)name string
logo integer
colors array
headingFont string
bodyFont string
voice string
pbs/update-breakpoints
Changes the tablet and mobile widths in pixels; with Pro, custom extra breakpoints.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/update-breakpoints/runedit_theme_options (the REST route’s own check)tablet integer
mobile integer
custom array
pbs/update-class
Changes a global class’s label, slug or styles; every element using it updates.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/update-class/runedit_theme_options (the REST route’s own check)id string (required)
label string
slug string
s object
cat string
pbs/update-conversion-tracking
Changes the Google Analytics 4, Google Tag Manager and Meta Pixel settings and which events are sent.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/update-conversion-tracking/runmanage_options (the REST route’s own check)ga4 string
gtm string
pixel string
loadTags boolean
formEvent string
pbs/update-cookie-banner
Changes the consent banner. While it is on, tracking scripts wait for the visitor’s consent.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/update-cookie-banner/runmanage_options (the REST route’s own check)enabled boolean
popup integer
handles array
cookieDays integer
optOutOutsideEu boolean
pbs/update-dark-mode
Sets dark mode (mode: off, auto or toggle) and its colours.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/update-dark-mode/runedit_theme_options (the REST route’s own check)mode string (required): device, light, dark
colors object
pbs/update-design-categories
Replaces one category list (group: classes or tokens; items: a list of slug and name). Entries filed under a removed category become uncategorised.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/update-design-categories/runedit_theme_options (the REST route’s own check)group string (required): classes, tokens
items array (required)
pbs/update-design-globals
Changes the site-wide colours (colors), fonts (fonts, headingFont, bodyFont). Every page picks the change up; the theme’s theme.json is kept in sync.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/update-design-globals/runedit_theme_options (the REST route’s own check)colors object
fonts object
bodyFont string
headingFont string
pbs/update-form
Changes one form (post, form): settings and actions merge with what is there; fields (and steps) replace the fields.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/update-form/runedit_post (the REST route’s own check)post string (required)
form string (required)
title string
fields array
steps array
actions object
submitText string
successMessage string
redirectUrl string
trackEvent string
pbs/update-page
Changes a page’s title, status or block content. Content you send replaces the page’s content.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/update-page/runedit_post on that page; publish_pages to publish or make privateid integer (required)
title string
status string: draft, pending, publish, private
sections array
content string
pbs/update-popup
Changes a popup, slide-in or bar (id): content, trigger, frequency or where it shows.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/update-popup/runedit_post (the REST route’s own check)id string (required)
title string
content string
status string: draft, publish
settings object
pbs/update-settings
Changes the front-end class prefix (1 to 8 lowercase letters or digits, starting with a letter) and/or turns AI agents (MCP) on or off (mcp: false removes every ability and the MCP endpoint).
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/update-settings/runmanage_options (the REST route’s own check)prefix string
mcp boolean
pbs/update-theme-template
Changes one template (id): any of title, type, content (block markup), include, exclude, priority, status. Only what you send changes.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/update-theme-template/runthe REST route’s own per-item permission checkid string (required)
title string
type string
content string
include array
exclude array
priority integer
status string: publish, draft
pbs/update-tokens
Changes the spacing, radius and shadow scales (space, radius, shadow), or resets them (reset).
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/update-tokens/runedit_theme_options (the REST route’s own check)space array
radius array
shadow array
reset boolean
pbs/update-variables
Replaces the site’s design variables (variables: a list of name and value).
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/update-variables/runedit_theme_options (the REST route’s own check)variables array (required)
pbs/upload-icon
Adds an SVG icon (name, svg markup) to the icon library; the SVG is sanitised first.
FreePOST /wp-json/wp-abilities/v1/abilities/pbs/upload-icon/runupload_files (the REST route’s own check)name string (required)
svg string (required)
pbs/upload-lottie
Validates a Lottie JSON document (json, name) and publishes it as a static file for the Lottie block.
ProPOST /wp-json/wp-abilities/v1/abilities/pbs/upload-lottie/runupload_files (the REST route’s own check)name string (required)
json string (required)

Generated from the plugin’s abilities.json, which is itself generated from a running site; a test fails when the two disagree.

WP-CLI commands

Run these on the server with WP-CLI. Each command checks the same permissions as the plugin’s screens; the examples are taken from the plugin’s own help text.

CommandWhat it doesEdition
wp pbs export [--types=<types>] [--no-settings] [--file=<name>]Export templates, patterns and settings to a file.Free
wp pbs import <file> [--mode=<mode>] [--no-settings] [--media] [--dry-run]Import an export file.Free
wp pbs importers runConvert legacy content: every post, or one.Free
wp pbs importers statusShow the migration state.Free
wp pbs importers undoUndo conversions from their backups: every post, or one.Free
wp pbs migrate runConvert legacy content: every post, or one.Free
wp pbs migrate statusShow the migration state.Free
wp pbs migrate undoUndo conversions from their backups: every post, or one.Free
wp pbs replace <find> <replace> [--kind=<kind>] [--types=<types>] [--ignore-case] [--dry-run] [--undo=<job>]Find and replace across the whole site.Pro
wp pbsw fonts download <family> [--weights=<weights>] [--italic]Download a Google Fonts family to this site.Free
wp pbsw fonts listList the stored families.Free
wp pbsw fonts remove <family>Remove a stored family and its files.Free

Actions and filters

Every hook the plugin offers, with the description from its source code. Filters change a value; actions let you run code at a moment; entry points are actions you fire to ask the plugin to do something.

HookKindWhat it doesParametersEdition
pbs_assets_changedActionFires when PBS’s published front-end files changed and the page caches it can reach were emptied: hook it to purge what PBS cannot reach (a CDN, a proxy, a host’s cache).noneFree
pbs_enqueue_scriptsActionLegacy action: enqueue scripts that call window.pbsAddInspector().noneFree
pbs_shortcodesFilterLegacy filter: shortcode tag => {label, desc, options[]} (Shortcode-API.md).array $shortcodesFree
pbsw_admin_dataFilterFilters the data the admin app boots with. The premium layer uses it to report its edition; nothing sensitive belongs here, because it is printed into the page.noneFree
pbsw_admin_enqueueActionFires after the admin screen’s script is enqueued, so a module can enqueue a script that adds a panel through the `pbs.admin.panels` JavaScript filter (it must depend on this handle; the screen renders on DOM ready, after every footer script has run).string $handleFree
pbsw_ai_enqueueActionFires after the AI editor bundle is enqueued, so an add-on (and the Pro layer) can enqueue its own AI panels after it.string $handleFree
pbsw_ai_messagesFilterFilters the messages of every AI request the plugin sends, with its context (task, purpose, provider, model, user); the Pro brand kit adds your brand here.array $messages
array $context
Free
pbsw_ai_pro_featuresFilterFilters the Pro AI features the editor offers (the premium layer adds its names: agent, site, block, design, image, css, a11y).noneFree
pbsw_ai_seo_pluginsFilterFilters which SEO plugins the AI SEO helper writes the meta title and description into.noneFree
pbsw_ai_seo_writeFilterFilters whether another SEO plugin took the meta title and description. A plugin added on `pbsw_ai_seo_plugins` saves them here, in its own way, and answers true.bool $written
string $plugin
int $post_id
string $title
string $description
Free
pbsw_asset_sourcesFilterEvery front-end source: this file’s, the ones the performance layer registers with add_source() (per-block CSS, view modules), and any the premium layer adds for itself through `pbsw_asset_sources` (its files live in its own directory, which only the premium package ships). Only a plain relative `.css`/`.js` path inside the plugin is accepted, under a key of lowercase segments (`legacy.css`, `block/row.css`, `module/tabs.js`).noneFree
pbsw_breakpoints_changedActionFires when the breakpoints change (compiled page sheets rebuild on their next view, because the breakpoints are part of their signature).noneFree
pbsw_cache_purgedActionFires after PBS purged a post from the active cache plugins.int $post_idFree
pbsw_cache_purgersFilterFilters the extra purgers run when the published files change: name => callable. A host adds its own (a CDN, a proxy); one that throws is skipped and not reported as purged.noneFree
pbsw_code_blocksFilterFilters the block names treated as custom code (only roles with the `code` permission may add or change them).nonePro
pbsw_consent_countryFilterFilters the visitor’s country (ISO 3166-1 alpha-2) for the cookie banner’s regional rule. The plugin never looks a country up; return ” when unknown.string $countryPro
pbsw_content_onlyFilterFilters whether a user may only edit text and images, with the layout locked.bool $content_only
int $user_id
Free
pbsw_design_class_cssFilterFilters a global class’s compiled CSS before the design engine is asked. Return a string to use it instead.string|null $css
string $selector
Pro
pbsw_design_custom_breakpointsFilterFilters whether custom breakpoints are available (pbs-d3, Pro).bool $allowedFree
pbsw_design_element_cssFilterFilters whether per-element custom CSS is compiled (the premium layer enables it, d8).bool $enabledFree
pbsw_design_layout_suffixFilterFilters the layout-element selector suffix for a block (” = the block’s own element).string $suffix
string $prefix
Free
pbsw_design_propsFilterFilters the design props (the premium layer adds its own).noneFree
pbsw_dynamic_editor_sourcesFilterMore sources in the editor (WooCommerce product fields).nonePro
pbsw_dynamic_fieldsFilterField catalogue for providers that have no listing API this plugin reads (JetEngine, Toolset): their field keys are typed in the editor, or added here.string $post_typePro
pbsw_dynamic_sourcesFilterMore sources (WooCommerce products): name → label; their values come from `pbsw_dynamic_value`.nonePro
pbsw_dynamic_valueFilterA value from another source (WooCommerce).string|null $value
string $source
Pro
pbsw_form_submittedActionFires after a form submission passed validation and its actions ran.nonePro
pbsw_frontend_prefixFilterFilters the neutral front-end class prefix.string $prefixFree
pbsw_fs_loadedActionFires once the licensing SDK has loaded (in the main file, before any Page Builder Sandwich code). Hook here to talk to `pbsw_fs()`.noneFree
pbsw_is_agencyFilterFilters whether the Agency plan’s features are available on this site.bool $agencyFree
pbsw_is_proFilterFilters whether the premium layer is running. Only the premium layer answers it.bool $proFree
pbsw_kit_api_baseFilterFilters the Zinn Digital® API base the support screens call.string $baseFree
pbsw_kit_diagnosticsFilterFilters the diagnostics before the site owner sees them. A plugin adds its own facts under `extra`. ⛔ This runs BEFORE the preview, never between the preview and the send.noneFree
pbsw_kit_footprint_freeFilterFilters whether this site is footprint-free, so Zinn® Ads is never promoted on it.bool $footprint_freeFree
pbsw_kit_importedActionFires after a kit was imported.int $frontFree
pbsw_kit_promotionsFilterFilters the promotion registry before it is resolved. Add a row to promote another product: `id`, `kind` (hosting|marketplace|platform|plugin|bundle|membership|ads), `slot` (promo|cross-sell), and `url` or (for a plugin) `name`, `site`, `main_files`.noneFree
pbsw_kit_tierFilterFilters the plan tier the kit reports for this plugin (tests and staging; the licence decides in production).string $tierFree
pbsw_lcp_foldFilterHow far down the content counts as the first screen, in CSS pixels from its top. Blocks starting above it are treated as above the fold: their images load eagerly and the likeliest LCP image gets `fetchpriority=”high”`; blocks below it lazy-load. Raise it for a tall hero, lower it for a compact header.int $foldFree
pbsw_legacy_body_classesFilterFilters the legacy body classes. The premium layer adds legacy premium’s responsive classes here (guideline 5: that behaviour is not in the free plugin).noneFree
pbsw_legacy_script_enqueuedActionA legacy post was examined for its front-end behaviour (the premium layer adds its own).int $post_id
string $content
string|null $handle
Free
pbsw_library_tokenFilterFilters the bearer token sent with kit requests (the premium cloud library supplies it).string $tokenFree
pbsw_link_baseFilterFilters the path short links live under (`/go/<slug>/`).string $basePro
pbsw_list_servicesFilterFilters the mailing-list services forms can subscribe to.nonePro
pbsw_loop_query_argsFilterThe loop’s query (WooCommerce: price range, on sale, in stock, price/popularity/rating sorts).nonePro
pbsw_loop_sortsFilterSort choices (WooCommerce adds price, popularity and rating).nonePro
pbsw_mcp_abilitiesActionFires after the free abilities are registered: Page Builder Sandwich Pro registers its own here (its boot hooks this only when the licence allows the premium code).noneFree
pbsw_migration_batch_sizeFilterHow many legacy (5.x) posts one background migration step converts. Each step is one Action Scheduler action; a smaller batch suits a slow or memory-tight host, a larger one a fast host with many posts. Values below 1 are treated as 1.int $sizeFree
pbsw_migration_post_typesFilterFilters the post types the legacy migration converts.list<string> $typesFree
pbsw_nav_menu_item_classesFilterFilters an item’s classes (the Pro item options add `nav-menu__item–hide-mobile` and `–hide-desktop`). Only `nav-menu__item–<name>` classes are kept.int $depthFree
pbsw_nav_menu_item_labelFilterFilters an item’s label, which is escaped HTML (the Pro item options add an icon, a badge and the description). A callback must return escaped HTML.string $label
int $depth
string $prefix
Free
pbsw_nav_menu_toggleFilterFilters the Menu button’s HTML: the Pro toggle bar designer puts it in a bar with a logo, a search box, links… (shown only while the menu is folded). A result that does not contain the button unchanged is ignored, so the menu can never lose it.string $toggle
string $prefix
Free
pbsw_newsletter_form_settingsFilterThe settings of a form that is not a 5.x one (data-* ⇒ value), or an empty array.int $post_id
string $form
Free
pbsw_newsletter_providersFilterThe newsletter services this site can subscribe with: service ⇒ callable( string $email, array $settings ): array{ok: bool, message: string}. The premium layer adds 5.x’s three.noneFree
pbsw_page_css_changedActionFires when a post’s compiled stylesheet changed (cache plugins purge on it).int $post_idFree
pbsw_page_css_enqueuedActionFires after a page’s compiled stylesheet is enqueued (the premium critical-CSS layer hooks here).string $handle
int $post_id
Free
pbsw_page_css_extraFilterFilters the CSS appended to a page’s compiled sheet after the blocks’ own stylesheets (pbs-p4: the design system’s `.<prefix>-s-<id>` rules). Compiled, not minified here: a listener returns its CSS ready to serve.string $extra
string $prefix
int $post_id
Free
pbsw_page_css_signatureFilterFilters what else makes a compiled state current (pbs-p4: the breakpoints).string $extra
\WP_Post $post
Free
pbsw_page_css_stateFilterFilters a post’s compiled state before it is stored (pbs-p4 records which design rules the sheet carries, so the render filter does not print them again).int $post_idFree
pbsw_permissionFilterFilters whether a user may use a builder capability. The free plugin allows every one; the Pro role manager answers per role. Administrators should always be allowed.bool $allowed
string $what
int $user_id
Free
pbsw_popup_forceFilterPopups printed on every page whatever their targeting (the cookie banner).nonePro
pbsw_replace_post_typesFilterFilters the post types find and replace searches by default.nonePro
pbsw_schema_skipFilterFilters the structured-data types Page Builder Sandwich leaves out because the site’s SEO plugin already prints them for this page.string $contentPro
pbsw_site_design_dataFilterFilters the Site design boot data. The premium layer reports its edition and adds the data its sections need.noneFree
pbsw_site_design_depsFilterFilters the dependencies of the Site design bundles. The premium layer adds its own script here, so its sections are registered before the panel first renders.string $handleFree
pbsw_site_health_keep_revisionsFilterFilters how many of each post’s newest revisions the clean-up keeps (default 5).int $keepPro
pbsw_style_at_rulesFilterFilters the at-rule presets the style builder offers under Style › Condition: a list of `array( ‘id’ => ‘narrow-card’, ‘label’ => ‘Narrow card’, ‘type’ => ‘container’, ‘query’ => ‘card (max-width:400px)’ )`, where `type` is `media`, `container` or `supports`. Values set under a condition print as `@<type> <query>{…}` after the screen-size rules. The built-in presets are print, dark colour scheme, reduced motion and mouse or trackpad; an invalid preset is dropped and named in the `pbsw_style_at_rules_invalid` action.noneFree
pbsw_style_at_rules_invalidActionFires when presets from `pbsw_style_at_rules` were dropped as invalid.noneFree
pbsw_template_content_locationFilterA more specific content location (WooCommerce: single_product, product_archive, cart…).string $locationPro
pbsw_template_resolvedFilterThe templates chosen for a location.string $typePro
pbsw_template_typesFilterMore template types (WooCommerce pages).nonePro
pbsw_theme_builder_editor_dataFilterMore editor data (dynamic data sources and field plugins, the WooCommerce pieces).nonePro
pbsw_theme_globals_savedActionThis action is documented below.noneFree
pbsw_transfer_importedActionFires after a package was imported, so caches built from templates and settings (the per-page styles, the site style sheet) can be rebuilt.noneFree
pbsw_transfer_meta_keysFilterFilters the post meta keys import and export carry with each item.noneFree
pbsw_transfer_optionsFilterFilters the options import and export can move between sites. Only `pbsw_` options are accepted; anything else is dropped so a package can never write a core or third-party option.noneFree
pbsw_transfer_post_typesFilterFilters the post types that import and export can move between sites.noneFree
pbsw_visitor_countryFilterFilters the visitor’s country for the age gate and responsible gambling notices, for a site that knows it another way (a geolocation plugin, a membership profile).string $countryPro
pbsw_white_label_mapFilterFilters the white-label replacements (source text => shown text).nonePro