HTTP API reference
Both APIs are oRPC routers, so each also serves an OpenAPI document at /openapi.json on
its instance, the source of the tables below. The management procedures are mounted twice:
as oRPC under /rpc for the admin’s typed client, and as REST under /api/v1. A REST error
answers { "error": { key, kind, status, message, details } }, and oRPC carries the same
object as the error’s data; see the error body. Both OpenAPI
documents declare this body once, as the Error schema, and reference it from the 400, 401,
403, 404, 409, 422, 429 and 500 responses of every operation. Unmatched paths answer
route.notFound in the same body to JSON clients.
Management API (/api/v1)
Authenticated with the session cookie or an x-api-key header. Space-scoped procedures
take a spaceId; the caller needs the permission in that space. See
Users and roles for what each role may do.
They read and write one environment of the space: the one environment names (its
technical name, e.g. staging), else the x-manablox-environment header, else
production. An unknown name answers 404 environment.notFound; another environment than
production needs the environments feature (403 control.feature); an API key limited
to other environments answers 403 environment.forbidden. An id of another environment’s
record answers as missing. The environments procedures name the environment they
manage and take no other one.
| Method | Path | Input | Summary |
|---|---|---|---|
POST | /api/v1/apiHosts/create | spaceId, environment?, hostname | |
POST | /api/v1/apiHosts/delete | spaceId, environment?, id | |
POST | /api/v1/apiHosts/list | spaceId, environment? | |
POST | /api/v1/apiHosts/verify | spaceId, environment?, id | |
POST | /api/v1/assets/delete | spaceId, environment?, id | |
POST | /api/v1/assets/get | spaceId, environment?, id | |
POST | /api/v1/assets/getMany | spaceId, environment?, ids | |
POST | /api/v1/assets/limits | spaceId, environment? | |
POST | /api/v1/assets/list | spaceId, environment?, pagination?, mimeType?, mimeTypeNot?, search?, tagIds? | |
POST | /api/v1/assets/presets | spaceId, environment? | |
POST | /api/v1/assets/schedule | spaceId, environment?, id, publishAt?, unpublishAt? | |
POST | /api/v1/assets/setImageEdits | crop?, focalPoint?, rotate?, flipHorizontal?, flipVertical?, adjust?, effect?, spaceId, environment?, id | |
POST | /api/v1/assets/setSpaces | spaceId, environment?, id, spaceIds | |
POST | /api/v1/assets/update | spaceId, environment?, id, name?, alt?, title?, tags? | |
POST | /api/v1/audit/catalog | ||
POST | /api/v1/audit/forTarget | spaceId, environment?, targetKind, targetId, pagination? | |
POST | /api/v1/audit/get | spaceId, environment?, id | |
POST | /api/v1/audit/list | spaceId, environment?, filter?, sort?, pagination? | |
POST | /api/v1/audit/listInstance | instanceOnly?, filter?, sort?, pagination? | |
POST | /api/v1/audit/verify | ||
POST | /api/v1/content/ancestors | spaceId, environment?, id | |
POST | /api/v1/content/approval | spaceId, environment?, id | |
POST | /api/v1/content/approve | spaceId, environment?, id, note? | |
POST | /api/v1/content/blank | spaceId, environment?, typeId | |
POST | /api/v1/content/create | spaceId, environment?, typeId, locale?, localizationId?, parentId?, title, slug?, fields?, position?, expectedVersion?, tags? | |
POST | /api/v1/content/createFolder | spaceId, environment?, locale?, parentId?, title, position? | |
POST | /api/v1/content/createTranslation | spaceId, environment?, id, locale | |
POST | /api/v1/content/delete | spaceId, environment?, id, children? | |
POST | /api/v1/content/duplicate | spaceId, environment?, id, children? | |
POST | /api/v1/content/get | spaceId, environment?, id | |
POST | /api/v1/content/list | filter, pagination?, sort? | |
POST | /api/v1/content/move | spaceId, environment?, id, parentId, position | |
POST | /api/v1/content/pendingApprovals | spaceId, environment?, pagination? | |
POST | /api/v1/content/publish | spaceId, environment?, id | |
POST | /api/v1/content/reject | spaceId, environment?, id, note? | |
POST | /api/v1/content/requestApproval | spaceId, environment?, id, note? | |
POST | /api/v1/content/restore | spaceId, environment?, id, version | |
POST | /api/v1/content/schedule | spaceId, environment?, id, publishAt?, unpublishAt? | |
POST | /api/v1/content/translations | spaceId, environment?, id | |
POST | /api/v1/content/tree | spaceId, environment?, locale?, rootId? | |
POST | /api/v1/content/treeChildren | spaceId, environment?, locale?, parentId?, pagination? | |
POST | /api/v1/content/treeSearch | spaceId, environment?, locale?, search, typeIds?, limit? | |
POST | /api/v1/content/unpublish | spaceId, environment?, id | |
POST | /api/v1/content/update | spaceId, environment?, typeId, locale?, localizationId?, parentId?, title, slug?, fields?, position?, expectedVersion?, tags?, id | |
POST | /api/v1/content/versionSnapshot | spaceId, environment?, id, version | |
POST | /api/v1/content/versions | spaceId, environment?, id, pagination? | |
POST | /api/v1/content/withdrawApproval | spaceId, environment?, id | |
POST | /api/v1/contentTypes/applyPlan | spaceId, environment?, types | |
POST | /api/v1/contentTypes/create | name, label?, description?, icon?, kind?, spaceId, hasSlug?, isPublishable?, isVisibleInTree?, canBeVisibleInMenu?, requiresApproval?, fields?, environment? | |
POST | /api/v1/contentTypes/delete | spaceId, environment?, id | |
POST | /api/v1/contentTypes/fieldTypeSettingsSchema | name | |
POST | /api/v1/contentTypes/fieldTypes | ||
POST | /api/v1/contentTypes/get | spaceId, environment?, id | |
POST | /api/v1/contentTypes/list | spaceId, environment? | |
POST | /api/v1/contentTypes/reload | ||
POST | /api/v1/contentTypes/update | name, label?, description?, icon?, kind?, spaceId, hasSlug?, isPublishable?, isVisibleInTree?, canBeVisibleInMenu?, requiresApproval?, fields?, environment?, id | |
POST | /api/v1/credentials/create | spaceId, environment?, name, slug?, kind, provider?, data? | |
POST | /api/v1/credentials/delete | spaceId, environment?, id | |
POST | /api/v1/credentials/list | spaceId, environment?, pagination? | |
POST | /api/v1/credentials/update | spaceId, environment?, name, slug?, kind, provider?, data?, id | |
POST | /api/v1/environments/create | spaceId, from?, machineName, name, mode? | |
POST | /api/v1/environments/delete | spaceId, environment | |
POST | /api/v1/environments/diff | spaceId, environment, mode? | |
POST | /api/v1/environments/list | spaceId, environment? | |
POST | /api/v1/environments/promote | spaceId, environment, mode?, confirm? | |
POST | /api/v1/instance/plugins | ||
POST | /api/v1/instance/settings | ||
POST | /api/v1/instance/updateSettings | twoFactorPolicy? | |
POST | /api/v1/invitations/accept | token, name?, password? | |
POST | /api/v1/invitations/create | email, grants?, expiresInDays? | |
POST | /api/v1/invitations/list | spaceId? | |
POST | /api/v1/invitations/preview | token | |
POST | /api/v1/invitations/resend | id | |
POST | /api/v1/invitations/revoke | id | |
POST | /api/v1/menus/create | name, machineName, description?, spaceId, environment? | |
POST | /api/v1/menus/delete | spaceId, environment?, id | |
POST | /api/v1/menus/get | spaceId, environment?, id, locale | |
POST | /api/v1/menus/list | spaceId, environment? | |
POST | /api/v1/menus/placements | spaceId, environment?, localizationId, locale | |
POST | /api/v1/menus/setItems | spaceId, environment?, id, items | |
POST | /api/v1/menus/setPlacements | spaceId, environment?, localizationId, placements | |
POST | /api/v1/menus/update | name?, machineName?, description?, spaceId, environment?, id | |
POST | /api/v1/menus/usedIn | spaceId, environment?, localizationId | |
POST | /api/v1/notifications/catalog | ||
POST | /api/v1/notifications/delete | ids | |
POST | /api/v1/notifications/deleteRead | ||
POST | /api/v1/notifications/list | unreadOnly?, kinds?, spaceId?, pagination? | |
POST | /api/v1/notifications/markAllRead | ||
POST | /api/v1/notifications/markRead | ids | |
POST | /api/v1/notifications/markUnread | ids | |
POST | /api/v1/notifications/preferences | ||
POST | /api/v1/notifications/pushSubscribe | endpoint, keys | |
POST | /api/v1/notifications/pushSubscriptions | ||
POST | /api/v1/notifications/pushUnsubscribe | endpoint | |
POST | /api/v1/notifications/setPreferences | preferences | |
POST | /api/v1/notifications/unreadCount | ||
POST | /api/v1/preferences/get | key | |
POST | /api/v1/preferences/set | key, value | |
POST | /api/v1/redirects/create | spaceId, environment?, locale?, fromPath, toPath?, toContentId?, status? | |
POST | /api/v1/redirects/delete | spaceId, environment?, id | |
POST | /api/v1/redirects/get | spaceId, environment?, id | |
POST | /api/v1/redirects/list | spaceId, environment?, search?, source?, locale?, pagination? | |
POST | /api/v1/redirects/update | spaceId, environment?, id, locale?, fromPath, toPath?, toContentId?, status? | |
POST | /api/v1/roles/catalog | ||
POST | /api/v1/roles/create | spaceId, environment?, name, machineName, description?, permissions | |
POST | /api/v1/roles/delete | spaceId, environment?, id | |
POST | /api/v1/roles/get | spaceId, environment?, id | |
POST | /api/v1/roles/list | spaceId, environment? | |
POST | /api/v1/roles/update | spaceId, environment?, name, machineName, description?, permissions, id | |
POST | /api/v1/snapshots/create | spaceId, environment? | |
POST | /api/v1/snapshots/list | spaceId, environment? | |
POST | /api/v1/snapshots/restore | spaceId, environment?, snapshot, mode, confirm | |
POST | /api/v1/spaces/addMembers | spaceId, environment?, userIds, role? | |
POST | /api/v1/spaces/candidates | spaceId, environment?, search? | |
POST | /api/v1/spaces/configInventory | spaceId, environment? | |
POST | /api/v1/spaces/configSource | spaceId, environment?, selection? | |
POST | /api/v1/spaces/create | name, machineName, description?, url, defaultLocale?, locales?, settings?, starter?, blocks?, plugins?, plan? | |
POST | /api/v1/spaces/delete | spaceId, environment? | |
POST | /api/v1/spaces/export | spaceId, environment?, selection? | |
POST | /api/v1/spaces/get | spaceId, environment? | |
POST | /api/v1/spaces/grant | spaceId, environment?, userId, role | |
POST | /api/v1/spaces/import | payload?, selection? | |
POST | /api/v1/spaces/inventory | spaceId, environment? | |
POST | /api/v1/spaces/list | ||
POST | /api/v1/spaces/locales | spaceId, environment? | |
POST | /api/v1/spaces/members | spaceId, environment? | |
POST | /api/v1/spaces/resumeImport | spaceId, environment? | |
POST | /api/v1/spaces/revoke | spaceId, environment?, userId | |
POST | /api/v1/spaces/setAssetSettings | spaceId, environment?, allowedMimeTypes?, maxFileSize? | |
POST | /api/v1/spaces/setHome | spaceId, environment?, contentId | |
POST | /api/v1/spaces/update | name?, machineName?, description?, url?, defaultLocale?, locales?, settings?, spaceId, environment? | |
POST | /api/v1/sso/create | name, domains, oidc?, saml?, requireSso?, showOnSignIn?, createAccounts?, defaultGrants?, providerId | |
POST | /api/v1/sso/delete | id | |
POST | /api/v1/sso/list | ||
POST | /api/v1/sso/regenerateKeys | id | |
POST | /api/v1/sso/test | oidc?, saml? | |
POST | /api/v1/sso/update | name, domains, oidc?, saml?, requireSso?, showOnSignIn?, createAccounts?, defaultGrants?, id | |
POST | /api/v1/tags/create | spaceId, environment?, name | |
POST | /api/v1/tags/delete | spaceId, environment?, id | |
POST | /api/v1/tags/list | spaceId, environment?, search? | |
POST | /api/v1/tags/listWithCounts | spaceId, environment?, search? | |
POST | /api/v1/tags/merge | spaceId, environment?, sourceId, targetId | |
POST | /api/v1/tags/ofContent | spaceId, environment?, contentIds | |
POST | /api/v1/tags/rename | spaceId, environment?, id, name | |
POST | /api/v1/tags/setForAsset | spaceId, environment?, assetId, tags | |
POST | /api/v1/tags/setForContent | spaceId, environment?, contentId, tags | |
POST | /api/v1/usage/instance | ||
POST | /api/v1/usage/space | spaceId, environment? | |
POST | /api/v1/users/apiKeys | ||
POST | /api/v1/users/ban | userId, reason? | |
POST | /api/v1/users/changePassword | currentPassword, password | |
POST | /api/v1/users/create | name, email, password, role? | |
POST | /api/v1/users/delete | userId | |
POST | /api/v1/users/get | userId | |
POST | /api/v1/users/issueApiKey | name, expiresAt?, spaceIds?, permissions? | |
POST | /api/v1/users/list | search?, pagination? | |
POST | /api/v1/users/me | ||
POST | /api/v1/users/revokeApiKey | id | |
POST | /api/v1/users/revokeSessions | userId | |
POST | /api/v1/users/setPassword | userId, password | |
POST | /api/v1/users/setRole | userId, role | |
POST | /api/v1/users/setupNeeded | ||
POST | /api/v1/users/unban | userId | |
POST | /api/v1/users/update | userId, name?, email? | |
POST | /api/v1/users/updateProfile | name?, email? | |
POST | /api/v1/users/verifyEmail | token |
Delivery API (/v1)
Anonymous and read-only, served by the public instance, which is pinned to one space. See The public API and REST.
| Method | Path | Input | Summary |
|---|---|---|---|
GET | /v1/assets/{id} | id | Fetch asset metadata |
GET | /v1/content | type?, parentId?, under?, search?, tags?, locale?, limit?, offset?, expand? | List published documents |
GET | /v1/content/{id} | id, expand? | Fetch one published document by id |
GET | /v1/menus/{name} | name, locale?, expand? | A navigation menu by name |
GET | /v1/permalink | locale?, expand? | Resolve the space’s home page |
GET | /v1/permalink/{path} | path, locale?, expand? | Resolve a URL path to a document |
GET | /v1/redirects | locale? | Every redirect of a locale, the locale’s own before shared ones |
GET | /v1/types | The space content model, for SDK type generation |
Plugin procedures (/api/v1/plugins/<id>)
A plugin’s router answers under plugins.<id> of the management API, with the same
authentication, environments and error body. While the plugin is off for the instance or the
space it answers 404 route.notFound when hidden and 403 control.feature when locked (a
premium plugin on a production instance without an active subscription, say; a development
instance runs them without a key). The plugins of the default instance:
license
| Method | Path | Input | Summary |
|---|---|---|---|
POST | /api/v1/plugins/license/activate | id | |
POST | /api/v1/plugins/license/addKey | key | |
POST | /api/v1/plugins/license/deactivate | id | |
POST | /api/v1/plugins/license/overview | ||
POST | /api/v1/plugins/license/refresh | id | |
POST | /api/v1/plugins/license/removeKey | id |
workflows
| Method | Path | Input | Summary |
|---|---|---|---|
POST | /api/v1/plugins/workflows/abortRun | spaceId, environment?, id, reason? | |
POST | /api/v1/plugins/workflows/abortRuns | spaceId, environment?, id, reason? | |
POST | /api/v1/plugins/workflows/catalog | spaceId?, environment? | |
POST | /api/v1/plugins/workflows/create | spaceId, environment?, enabled?, name, description?, trigger, abortTriggers?, nodes, edges, publish?, note? | |
POST | /api/v1/plugins/workflows/delete | spaceId, environment?, id | |
POST | /api/v1/plugins/workflows/design | spaceId, environment?, providerKind?, model?, prompt | |
POST | /api/v1/plugins/workflows/duplicate | spaceId, environment?, id | |
POST | /api/v1/plugins/workflows/export | spaceId, environment?, id, version? | |
POST | /api/v1/plugins/workflows/get | spaceId, environment?, id | |
POST | /api/v1/plugins/workflows/import | spaceId, environment?, file | |
POST | /api/v1/plugins/workflows/list | spaceId, environment?, pagination? | |
POST | /api/v1/plugins/workflows/publish | spaceId, environment?, id, note? | |
POST | /api/v1/plugins/workflows/restoreVersion | spaceId, environment?, id, version | |
POST | /api/v1/plugins/workflows/run | spaceId, environment?, id | |
POST | /api/v1/plugins/workflows/runHistory | spaceId, environment?, id, status?, test?, pagination? | |
POST | /api/v1/plugins/workflows/runNow | spaceId, environment?, id, contentId?, input?, payload?, headers? | |
POST | /api/v1/plugins/workflows/setEnabled | spaceId, environment?, id, enabled | |
POST | /api/v1/plugins/workflows/start | spaceId, environment?, id, input? | |
POST | /api/v1/plugins/workflows/update | spaceId, environment?, enabled?, name, description?, trigger, abortTriggers?, nodes, edges, publish?, note?, id | |
POST | /api/v1/plugins/workflows/version | spaceId, environment?, id, version | |
POST | /api/v1/plugins/workflows/versions | spaceId, environment?, id, pagination? |
webhooks
| Method | Path | Input | Summary |
|---|---|---|---|
POST | /api/v1/plugins/webhooks/create | spaceId, environment?, direction, name, slug?, description?, url?, events?, headers?, methods?, auth?, enabled? | |
POST | /api/v1/plugins/webhooks/delete | spaceId, environment?, id | |
POST | /api/v1/plugins/webhooks/deliveries | spaceId, environment?, id, pagination? | |
POST | /api/v1/plugins/webhooks/get | spaceId, environment?, id | |
POST | /api/v1/plugins/webhooks/list | spaceId, environment?, direction?, pagination? | |
POST | /api/v1/plugins/webhooks/retry | spaceId, environment?, id, deliveryId | |
POST | /api/v1/plugins/webhooks/setEnabled | spaceId, environment?, id, enabled | |
POST | /api/v1/plugins/webhooks/test | spaceId, environment?, id | |
POST | /api/v1/plugins/webhooks/update | spaceId, environment?, direction, name, slug?, description?, url?, events?, headers?, methods?, auth?, enabled?, id |
ai
| Method | Path | Input | Summary |
|---|---|---|---|
POST | /api/v1/plugins/ai/available | spaceId, environment? | |
POST | /api/v1/plugins/ai/catalog | ||
POST | /api/v1/plugins/ai/copyProviders | spaceId, environment?, fromSpaceId | |
POST | /api/v1/plugins/ai/deleteProvider | spaceId, environment?, kind | |
POST | /api/v1/plugins/ai/designContentTypes | spaceId, environment?, providerKind?, model?, prompt, icons?, scope?, forNewSpace? | |
POST | /api/v1/plugins/ai/designTemplate | spaceId, environment?, providerKind?, model?, prompt, icons?, locale? | |
POST | /api/v1/plugins/ai/generateDocument | spaceId, environment?, providerKind?, model?, prompt, styles?, length?, context?, contentTypeId, locale?, blockTypes?, images?, audience?, keywords? | |
POST | /api/v1/plugins/ai/generateMedia | spaceId, environment?, providerKind?, model?, prompt, styles?, length?, context?, capability | |
POST | /api/v1/plugins/ai/generateText | spaceId, environment?, providerKind?, model?, prompt, styles?, length?, context? | |
POST | /api/v1/plugins/ai/generation | spaceId, environment?, id | |
POST | /api/v1/plugins/ai/generations | spaceId, environment?, pagination? | |
POST | /api/v1/plugins/ai/providers | spaceId, environment? | |
POST | /api/v1/plugins/ai/saveProvider | spaceId, environment?, kind, slug?, label?, enabled?, apiKey?, models?, systemPrompt?, defaults?, config? | |
POST | /api/v1/plugins/ai/saveSettings | spaceId, environment?, lengths | |
POST | /api/v1/plugins/ai/settings | spaceId, environment? | |
POST | /api/v1/plugins/ai/testProvider | spaceId, environment?, kind |
website
| Method | Path | Input | Summary |
|---|---|---|---|
POST | /api/v1/plugins/website/design/aiBlockDesign | spaceId, environment?, providerKind?, model?, prompt, typeId | |
POST | /api/v1/plugins/website/design/aiTheme | spaceId, environment?, providerKind?, model?, prompt, brandColor? | |
POST | /api/v1/plugins/website/design/applyStarter | spaceId, environment?, id, replace?, preset? | |
POST | /api/v1/plugins/website/design/createShareLink | spaceId, environment?, contentId?, expiresInSeconds? | |
POST | /api/v1/plugins/website/design/delete | spaceId, environment?, id | |
POST | /api/v1/plugins/website/design/discardDraft | spaceId, environment?, id | |
POST | /api/v1/plugins/website/design/exportTheme | spaceId, environment?, variant? | |
POST | /api/v1/plugins/website/design/get | spaceId, environment?, kind, key | |
POST | /api/v1/plugins/website/design/importGoogleFont | spaceId, environment?, family, variants, fallback? | |
POST | /api/v1/plugins/website/design/importTheme | spaceId, environment?, bundle?, replace?, skip? | |
POST | /api/v1/plugins/website/design/list | spaceId, environment? | |
POST | /api/v1/plugins/website/design/previewThemeImport | spaceId, environment?, bundle?, replace?, skip? | |
POST | /api/v1/plugins/website/design/publish | spaceId, environment?, id | |
POST | /api/v1/plugins/website/design/publishAll | spaceId, environment? | |
POST | /api/v1/plugins/website/design/restore | spaceId, environment?, id, versionId | |
POST | /api/v1/plugins/website/design/saveDraft | spaceId, environment?, kind, key, name?, draft?, expectedVersion? | |
POST | /api/v1/plugins/website/design/starterThemes | spaceId, environment? | |
POST | /api/v1/plugins/website/design/version | spaceId, environment?, id, versionId | |
POST | /api/v1/plugins/website/design/versions | spaceId, environment?, id | |
POST | /api/v1/plugins/website/domains/create | spaceId, environment?, hostname, locale?, isPrimary?, redirectToPrimary? | |
POST | /api/v1/plugins/website/domains/delete | spaceId, environment?, id | |
POST | /api/v1/plugins/website/domains/list | spaceId, environment? | |
POST | /api/v1/plugins/website/domains/update | spaceId, environment?, id, hostname?, locale?, isPrimary?, redirectToPrimary? | |
POST | /api/v1/plugins/website/domains/verify | spaceId, environment?, id | |
POST | /api/v1/plugins/website/settings/get | spaceId, environment? | |
POST | /api/v1/plugins/website/settings/set | spaceId, environment?, mode?, localeStrategy?, notFoundContentId?, password? |