API Reference

The platform exposes two API Gateway endpoints:

  • CMS_API — the authenticated admin API used by the admin UI.
  • Public_API — the unauthenticated delivery API used by published sites.

Both are defined declaratively (components/cms-api.json, components/public-api.json); each route maps a method + path to a Lambda handler.

Admin API — CMS_API

  • Base URL: https://cms-api.<rootDomain>
  • Auth: Cognito JWT (Authorization: Bearer <accessToken>), enforced by the cms-pre-process authorizer and per-handler permission checks. Routes marked public below require no token.
  • CORS: only https://admin.<rootDomain> is allowed.

Authentication & platform (public)

Method
Path
Handler
POST
/auth/login
auth-login
POST
/auth/logout
auth-logout
POST
/auth/refresh
auth-refresh
POST
/auth/change-password
auth-change-password
POST
/auth/forgot-password
auth-forgot-password
POST
/auth/confirm-forgot-password
auth-confirm-forgot-password
GET
/platform/status
platform-status

Users & groups

Method
Path
Handler
GET
/users
users-list
POST
/users
users-create
PUT/PATCH
/users/{userId}
users-update
GET
/groups
groups-list
PUT/PATCH
/groups/{groupId}/members
groups-members-update
POST
/groups/custom
custom-groups-create
PUT
/groups/custom/{groupId}
custom-groups-update
DELETE
/groups/custom/{groupId}
custom-groups-delete

Sites

Method
Path
Handler
GET
/sites
sites-list
POST
/sites
sites-create
GET
/sites/{siteId}
sites-get
PUT
/sites/{siteId}
sites-update
DELETE
/sites/{siteId}
sites-delete
GET
/root-domains
root-domains
POST
/sites/{siteId}/rebuild
rebuild-site
GET
/sites/{siteId}/ai-crawler-activity
ai-crawler-activity
GET
/sites/{siteId}/activity-log
activity-log-list
GET
/sites/{siteId}/groups
site-groups-list
PUT
/sites/{siteId}/groups/{groupType}/members
site-groups-members-update

Templates

Method
Path
Handler
GET
/sites/{siteId}/templates
templates-list
POST
/sites/{siteId}/templates
templates-create
GET
/sites/{siteId}/templates/{templateId}
templates-get
PUT
/sites/{siteId}/templates/{templateId}
templates-update
DELETE
/sites/{siteId}/templates/{templateId}
templates-delete
POST
/sites/{siteId}/templates/{templateId}/duplicate
templates-duplicate
POST
/sites/{siteId}/templates/{templateId}/propagate
templates-propagate

Pages, versions & locks

Method
Path
Handler
GET
/sites/{siteId}/pages
pages-list
POST
/sites/{siteId}/pages
pages-create
GET
/sites/{siteId}/pages/{pageId}
pages-get
PUT
/sites/{siteId}/pages/{pageId}
pages-update
DELETE
/sites/{siteId}/pages/{pageId}
pages-delete
POST
/sites/{siteId}/pages/{pageId}/move
pages-move
POST
/sites/{siteId}/pages/{pageId}/revert
pages-revert
POST
/sites/{siteId}/pages/{pageId}/preview
pages-preview
GET
/sites/{siteId}/pages/{pageId}/versions
page-versions-list
POST
/sites/{siteId}/pages/{pageId}/versions/{versionNumber}/restore
page-versions-restore
POST
/sites/{siteId}/pages/{pageId}/lock
pages-lock-acquire
GET
/sites/{siteId}/pages/{pageId}/lock
pages-lock-status
DELETE
/sites/{siteId}/pages/{pageId}/lock
pages-lock-release

Publishing & workflow

Method
Path
Handler
POST
/sites/{siteId}/pages/{pageId}/publish
publish-page
POST
/sites/{siteId}/pages/{pageId}/publish-tree
publish-tree
POST
/sites/{siteId}/pages/{pageId}/unpublish
unpublish-page
POST
/sites/{siteId}/bulk-publish
bulk-publish-initiate
GET
/sites/{siteId}/bulk-publish/{jobId}
bulk-publish-status
POST
/sites/{siteId}/pages/{pageId}/publish-request
publish-requests-create
GET
/sites/{siteId}/publish-requests
publish-requests-list
POST
/sites/{siteId}/publish-requests/{requestId}/approve
publish-requests-approve
POST
/sites/{siteId}/publish-requests/{requestId}/reject
publish-requests-reject

Components & design system

Method
Path
Handler
GET
/components
components-list
POST
/components
components-upload
PUT
/components/{componentId}
components-update
DELETE
/components/{componentId}
components-delete
GET
/components/{componentId}/css
component-css
GET
/sites/{siteId}/themes
themes-list
POST
/sites/{siteId}/themes
themes-create
PUT
/sites/{siteId}/themes/{themeId}
themes-update
DELETE
/sites/{siteId}/themes/{themeId}
themes-delete
GET
/sites/{siteId}/theme
theme-get
PUT
/sites/{siteId}/theme
theme-update
PUT
/sites/{siteId}/breakpoints
breakpoints-update
GET
/variables
variables-list
PUT
/variables/{name}
variables-update
GET
/page-types
page-types-list
POST
/page-types
page-types-create
PUT
/page-types/{pageTypeId}
page-types-update
DELETE
/page-types/{pageTypeId}
page-types-delete

Assets & fonts

Method
Path
Handler
GET
/sites/{siteId}/assets
assets-list
POST
/sites/{siteId}/assets
assets-upload
POST
/sites/{siteId}/assets/folders
assets-create-folder
GET
/sites/{siteId}/fonts
fonts-list
POST
/sites/{siteId}/fonts
fonts-upload
DELETE
/sites/{siteId}/fonts/{fileName}
fonts-delete

Backup & restore

Method
Path
Handler
POST
/sites/{siteId}/backups
backup-create
GET
/sites/{siteId}/backups
backup-list
GET
/sites/{siteId}/backups/{backupId}
backup-get
DELETE
/sites/{siteId}/backups/{backupId}
backup-delete
POST
/sites/{siteId}/backups/restore
backup-restore
GET
/backups
backup-list-all
POST
/backups/platform
backup-create-platform

Public delivery API — Public_API

  • Base URL: https://api.<rootDomain>
  • Auth: none (read-only delivery + form intake).
Method
Path
Handler
Purpose
GET
/sites/{siteId}/pages/{slug}
page-content
Fetch a published page by slug
GET
/sites/{siteId}/navigation
navigation
Site navigation tree
GET
/sites/{siteId}/meta
site-meta
Site-level metadata
GET
/sites/{siteId}/search
search
On-site search
POST
/sites/{siteId}/forms
form-submit
Submit a form embedded in a page
Most page views are served as static HTML directly from CloudFront
(backed by Publish_Store); the Public API covers the dynamic reads and
form posts that a static page needs at runtime.