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
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 // Integer,
"siteId": 0 // Integer,
"label": "string" // String,
"itemType": null // Literal[page, url, products, none],
"pageId": 0 // Integer, optional,
"pageSlug": "string" // String, optional,
"pageTitle": "string" // String, optional,
"url": "string" // String, optional,
"parentId": 0 // Integer, optional,
"position": 0 // Integer,
"icon": "string" // String, optional,
"cssClass": "string" // String, optional,
"target": "string" // String, optional,
"isActive": false // Boolean, optional, default: True,
"translations": {} // Dict[str, str], optional,
"createdAt": "2024-01-01T00:00:00Z" // DateTime,
"updatedAt": "2024-01-01T00:00:00Z" // DateTime,
"children": [] // Array<MenuItemResponse>, optional, default: PydanticUndefined
}
FieldTypeRequiredDescription
itemsArray
siteIdInteger

Example:

{
"siteId": 0 // Integer,
"items": [] // Array<MenuItemResponse>, optional, default: PydanticUndefined
}

RenderedPageResponse

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

Example:

{
"id": 0 // Integer,
"slug": "string" // String,
"title": "string" // String,
"status": "string" // String, optional, default: draft,
"metaDescription": "string" // String, optional,
"content": "string" // String,
"contentBlocks": null // TipTapDocument, optional,
"createdAt": "2024-01-01T00:00:00Z" // DateTime,
"updatedAt": "2024-01-01T00:00:00Z" // DateTime, optional,
"locale": "string" // String, optional, default: en-US,
"availableLocales": "string" // Array<String>, optional,
"primaryLocale": "string" // String, optional
}

SiteResponse

FieldTypeRequiredDescription
allowSignupBoolean
assetsFolderIdInteger
authorizedBoolean
availableLocalesArrayDefault: ['en-US']
contentString
crawlBooleanDefault: False
crawlCompletedInteger
crawlCompletedAtDateTime
crawlErrorString
crawlExcludedTagsArrayDefault: []
crawlFailedAtDateTime
crawlJobIdString
crawlLimitInteger
crawlPreviousInteger
crawlStartedAtDateTime
crawlUrlString
createdAtDateTime
customDomainString
defaultUrlString
defaultWorkflowIdInteger
googleAdwordsIdString
googleAnalyticsIdString
homePageIdInteger
idInteger
isMappedBoolean
isPublicBoolean
isResellerBoolean
metaDescriptionString
nameString
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, dml-home, gravityrail-start, gravityrail-pitch, 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, cosan-enrollment, gravity-health-enrollment, source-site]
themeSettingsdict[str, Any]Default: {}
updatedAtDateTime
urlString
uuidString
workspaceNameString
workspaceUuidString

Example:

{
"id": 0 // Integer,
"name": "string" // String,
"uuid": "string" // String,
"slug": "string" // String,
"assetsFolderId": 0 // Integer, optional,
"sourceFolderId": 0 // Integer, optional,
"sourceReleaseId": 0 // Integer, optional,
"theme": null // Literal[default, gravityrail-home, gravityrail-home-2, dml-home, gravityrail-start, gravityrail-pitch, 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, cosan-enrollment, gravity-health-enrollment, source-site],
"themeSettings": {} // dict[str, Any], optional, default: {},
"resolvedThemeSettings": {} // dict[str, Any], optional, default: {},
"content": "string" // String,
"authorized": false // Boolean,
"tagLine": "string" // String,
"metaDescription": "string" // String,
"customDomain": "string" // String,
"redirectUrl": "string" // String,
"allowSignup": false // Boolean,
"signupMemberRoleId": 0 // Integer, optional,
"signupMemberRoleName": "string" // String, optional,
"isMapped": false // Boolean,
"isPublic": false // Boolean,
"createdAt": "2024-01-01T00:00:00Z" // DateTime,
"updatedAt": "2024-01-01T00:00:00Z" // DateTime,
"isReseller": false // Boolean,
"workspaceName": "string" // String,
"workspaceUuid": "string" // String, optional,
"ownerId": 0 // Integer, optional,
"defaultWorkflowId": 0 // Integer, optional,
"homePageId": 0 // Integer, optional,
"url": "string" // String,
"defaultUrl": "string" // String, optional,
"crawl": false // Boolean, optional, default: False,
"crawlUrl": "string" // String, optional,
"crawlStartedAt": "2024-01-01T00:00:00Z" // DateTime, optional,
"crawlCompletedAt": "2024-01-01T00:00:00Z" // DateTime, optional,
"crawlCompleted": 0 // Integer, optional,
"crawlFailedAt": "2024-01-01T00:00:00Z" // DateTime, optional,
"crawlError": "string" // String, optional,
"crawlExcludedTags": "string" // Array<String>, optional, default: [],
"crawlJobId": "string" // String, optional,
"crawlPrevious": 0 // Integer, optional,
"crawlLimit": 0 // Integer, optional,
"googleAnalyticsId": "string" // String, optional,
"googleAdwordsId": "string" // String, optional,
"permissions": 0 // Integer, optional, default: 0,
"organizationLogoUrl": "string" // String, optional,
"primaryLocale": "string" // String, optional, default: en-US,
"availableLocales": "string" // Array<String>, optional, default: ['en-US'],
"pageCount": 0 // Integer, optional
}

SiteSignupResponse

FieldTypeRequiredDescription
memberIdInteger
messageString
roleNameString
statusLiteral[success, already_member]

Example:

{
"status": null // Literal[success, already_member],
"message": "string" // String,
"memberId": 0 // Integer, optional,
"roleName": "string" // String, optional
}

Endpoints

Mapping

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

Description:

Get workspace_uuid and site_uuid for a custom domain.

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: Requires workspace session

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.

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