Skip to main content

Sites

Tags: content, sites

Website and content management

In the product: Sites

Resources​

Request and response models used by the endpoints on this page.

FieldTypeRequiredDescription
childrenArray<MenuItemResponse>
createdAtDateTime✓
cssClassString
iconString
idInteger✓
isActiveBooleanDefault: True
itemTypeLiteral['page', 'url', 'products', 'none']✓
labelString✓
pageIdInteger
pageSlugString
pageTitleString
parentIdInteger
positionInteger✓
siteIdInteger✓
targetString
translationsDict[str, str]
updatedAtDateTime✓
urlString

Example:

{
"id": 0,
"siteId": 0,
"label": "string",
"itemType": "page",
"position": 0,
"isActive": true,
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}
FieldTypeRequiredDescription
itemsArray<MenuItemResponse>
siteIdInteger✓

Example:

{
"siteId": 0
}

RenderedPageResponse​

FieldTypeRequiredDescription
availableLocalesArray
contentString✓
contentBlocksTipTapDocument | null
createdAtDateTime✓
idInteger✓
localeStringDefault: en-US
metaDescriptionString
primaryLocaleString
slugString✓
statusStringDefault: draft
titleString✓
updatedAtDateTime

Example:

{
"id": 0,
"slug": "string",
"title": "string",
"status": "draft",
"content": "string",
"createdAt": "2024-01-01T00:00:00Z",
"locale": "en-US"
}

SiteMappingResponse​

FieldTypeRequiredDescription
primaryLocaleString✓
sessionKind<enum SessionKind✓
siteUuidString✓
themeString✓
widString✓

Example:

{
"wid": "string",
"siteUuid": "string",
"theme": "string",
"primaryLocale": "string",
"sessionKind": null
}

SiteResponse​

FieldTypeRequiredDescription
allowSignupBoolean✓
anonymousFormIdInteger
anonymousFormUuidString
assetsFolderIdInteger
authenticationMethodsArray<Literal[name_dob]>Default: []
authorizedBoolean✓
availableLocalesArrayDefault: ['en-US']
contentString✓
createdAtDateTime✓
customDomainString✓
defaultUrlString
defaultWorkflowIdInteger
googleAdwordsIdString
googleAnalyticsIdString
homePageIdInteger
idInteger✓
isMappedBoolean✓
isPublicBoolean✓
isResellerBoolean✓
metaDescriptionString✓
nameString✓
operatorLineE164String
organizationLogoUrlString
ownerIdInteger
pageCountInteger
permissionsIntegerDefault: 0
primaryLocaleStringDefault: en-US
redirectUrlString✓
resolvedThemeSettingsdict[str, Any]Default: {}
signupMemberRoleIdInteger
signupMemberRoleNameString
slugString✓
sourceFolderIdInteger
sourceReleaseIdInteger
tagLineString✓
themeLiteral[default, gravityrail-home, gravityrail-home-2, gravityrail-start, leapcure-home, leapcure-home-no-chat, leapcure-home-pre-launch, admin-clinical-trial, customer-basic, rc360-demo, patient-engagement-demo, operator-product, gravity-health, gravity-developer, gravityrail-launch, gravity-rail-feb-2026, gravity-rail-2026-v2, operator-2026, cosan-enrollment, cosan-enrollment-v2, gravity-health-enrollment, source-site]✓
themeSettingsdict[str, Any]Default: {}
updatedAtDateTime✓
urlString✓
uuidString✓
workspaceNameString✓
workspaceUuidString

Example:

{
"id": 0,
"name": "string",
"uuid": "string",
"slug": "string",
"theme": null,
"themeSettings": {},
"resolvedThemeSettings": {},
"content": "string",
"authorized": false,
"tagLine": "string",
"metaDescription": "string",
"customDomain": "string",
"redirectUrl": "string",
"allowSignup": false,
"isMapped": false,
"isPublic": false,
"authenticationMethods": [],
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z",
"isReseller": false,
"workspaceName": "string",
"url": "string",
"permissions": 0,
"primaryLocale": "en-US",
"availableLocales": [
"en-US"
]
}

SiteSignupResponse​

FieldTypeRequiredDescription
memberIdInteger
messageString✓
roleNameString
statusLiteral['success', 'already_member']✓

Example:

{
"status": "success",
"message": "string"
}

TipTapDocument​

FieldTypeRequiredDescription
contentArray<TipTapNode> | null
translationsDictionary<String, TipTapDocument> | null
typeLiteral['doc']Default: doc

Example:

{
"type": "doc"
}

TipTapMark​

FieldTypeRequiredDescription
attrsDict[str, Any]
typeString✓

Example:

{
"type": "string"
}

TipTapNode​

FieldTypeRequiredDescription
attrsDict[str, Any]
contentArray<TipTapNode> | null
marksArray<TipTapMark> | null
textString
typeString✓

Example:

{
"type": "string"
}

UnauthorizedSiteResponse​

FieldTypeRequiredDescription
allowSignupBooleanDefault: False
anonymousFormIdInteger
anonymousFormUuidString
assetsFolderIdInteger
authenticationMethodsArray<Literal[name_dob]>Default: []
authorizedBoolean✓
availableLocalesArrayDefault: ['en-US']
contentString✓
createdAtDateTime✓
customDomainString
defaultUrlString
defaultWorkflowIdInteger
googleAdwordsIdString
googleAnalyticsIdString
homePageIdInteger
idInteger✓
isMappedBooleanDefault: False
isPublicBoolean✓
isResellerBoolean✓
metaDescriptionString✓
nameString✓
operatorLineE164String
organizationLogoUrlString
ownerIdInteger
pageCountInteger
permissionsIntegerDefault: 0
primaryLocaleStringDefault: en-US
redirectUrlString✓
resolvedThemeSettingsdict[str, Any]Default: {}
signupMemberRoleIdInteger
signupMemberRoleNameString
slugString✓
sourceFolderIdInteger
sourceReleaseIdInteger
tagLineString✓
themeLiteral[default, gravityrail-home, gravityrail-home-2, gravityrail-start, leapcure-home, leapcure-home-no-chat, leapcure-home-pre-launch, admin-clinical-trial, customer-basic, rc360-demo, patient-engagement-demo, operator-product, gravity-health, gravity-developer, gravityrail-launch, gravity-rail-feb-2026, gravity-rail-2026-v2, operator-2026, cosan-enrollment, cosan-enrollment-v2, gravity-health-enrollment, source-site]✓
themeSettingsdict[str, Any]Default: {}
updatedAtDateTime✓
urlString
uuidString✓
workspaceNameStringDefault: ``
workspaceUuidString

Example:

{
"id": 0,
"name": "string",
"uuid": "string",
"slug": "string",
"theme": null,
"themeSettings": {},
"resolvedThemeSettings": {},
"content": "string",
"authorized": false,
"tagLine": "string",
"metaDescription": "string",
"redirectUrl": "string",
"allowSignup": false,
"isMapped": false,
"isPublic": false,
"authenticationMethods": [],
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z",
"isReseller": false,
"workspaceName": "",
"permissions": 0,
"primaryLocale": "en-US",
"availableLocales": [
"en-US"
]
}

Endpoints​

Mapping​

GET /api/v2/s/mapping/{custom_domain}

Description:

Get workspace_uuid and site_uuid for a custom domain.

A miss is a 404 either way. A domain registered here with sites enabled but no Site mapped carries {"code": "site_domain_unmapped"}, so the site proxy can serve its neutral page there (#26585); any other host keeps the plain "Site not found". Neither body names an organization or workspace.

Authentication: Requires authenticated user

Parameters:

  • custom_domain (String)

Response: See SiteMappingResponse


Get Workspace Uuid Site Uuid​

GET /api/v2/s/{workspace_uuid}/{site_uuid}

Description:

Get a specific site by ID.

Authentication: Public Sites can be read without signing in. Private Sites require a Workspace Member with permission to use the Site.

Parameters:

  • site_uuid (String)

Response: See SiteResponse


Contents​

GET /api/v2/s/{workspace_uuid}/{site_uuid}/files/{file_id}/contents/{filename}

Description:

Download file contents for site media with site-based access controls. This endpoint allows downloading site file contents with proper access control enforcement.

Authentication: Requires workspace session

Parameters:

  • site_uuid (String)
  • file_id (Integer)
  • filename (String)
  • token (String)

Menu​

GET /api/v2/s/{workspace_uuid}/{site_uuid}/menu

Description:

Get the complete menu tree for a site (see read_site_menu).

Authentication: Requires workspace session

Parameters:

  • site_uuid (String)

Response: See MenuTreeResponse


Pages​

GET /api/v2/s/{workspace_uuid}/{site_uuid}/pages/{page_slug_or_id}

Description:

Get a specific page by its ID or slug within a site.

Supports locale-specific content via the locale query parameter. If the requested locale is not available, falls back to the page's primary locale.

Authentication: Requires workspace session

Parameters:

  • site_uuid (String)
  • page_slug_or_id (String)
  • locale (String)
  • preview (Boolean)

Response: See RenderedPageResponse


Signup​

POST /api/v2/s/{workspace_uuid}/{site_uuid}/signup

Description:

Sign up a logged-in user for a public site if signup is allowed.

Authentication: Requires workspace session

Parameters:

  • site_uuid (String)

Response: See SiteSignupResponse