Server API
The type-safe server-side API on cms.api, grouped by area.
createCMS returns an api object namespaced by collection and by system feature. You call cms.api.<collection>.<method> for content (e.g. cms.api.pages.createRoot) and cms.api.<namespace>.<method> for system features (e.g. cms.api.media.uploadAssets). Inputs and outputs are fully typed from your collection definitions.
const { roots } = await cms.api.pages.listRoots({ query: { limit: 20 } });Every method follows the better-call convention: read methods take a query object, write methods take a body object. Every commit-producing mutation returns a commit: { id, message, createdAt, createdBy } envelope, the new branch head. The same methods are available on the client as client.<collection>.<method>, with identical types.
Permissions
Every endpoint runs an authorization check keyed by a resource and an operation (create, read, update, or delete), shown on each method as a resource:operation chip (for example root:create). Access control maps those to your roles. The only endpoint reachable without a session is the public media gate media.asset; the anonymous-readable reads (getPublishedContent, resolveRedirect, and the A/B resolveAbVariant) still run the auth chain under the publishedContent resource, so plugin scope is enforced.
Collection methods
Available on every collection as cms.api.<collection>.<method>.
Roots
Blocks
Branches
Merges
Publications
Comments
Approvals
Redirects
System namespaces
Feature APIs, each on its own cms.api.<namespace>.
Media
Variables
{{key}} values.Templates
Search
Releases
Notifications
Users
Admin
Plugins extend cms.api with their own methods (for example createTranslation from i18n and the cms.api.abTest.* methods from A/B testing). Each plugin page documents its methods the same way.