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.
Continue to Rendering & publishing »