CategoriesListResponse

Interface

Response from categories.list(). Returns all categories (flat list, not paginated) with their content counts.

Property

Type

Optional

Description

blogUrlMode

string

No

How blog content URLs are constructed for this site:<br>- 'flat': URLs use slug only, e.g. /blog/my-article<br>- 'nested': URLs include the category path, e.g. /blog/tech/my-article<br><br>This affects how you should build links to content articles.<br>Configured in the site's SEO settings.

data

CategoryWithCount[]

No

Flat array of all categories with their published content count.<br>Not paginated -- all categories are returned in a single response.

locale

string | null

No

Active locale code (e.g. 'en', 'fr') for the returned data, or null<br>when the site's default locale was used (no locale override was requested).


CategoryDetailResponse

Interface

Response from categories.getBySlug(). Contains the full category details along with its paginated content list.

Property

Type

Optional

Description

category

CategoryDetail

No

Full category details including description, image, content count,<br>schema (for structured categories), and parent info.

contents

{ data: ContentSummary[]; meta: PaginationMeta }

No

Paginated list of published content summaries belonging to this category.<br>Supports the same pagination options as contents.list().

locale

string | null

No

Active locale code (e.g. 'en', 'fr') for the returned data, or null<br>when the site's default locale was used (no locale override was requested).


CategoryResolveResponse

Interface

Path resolution response when the resolved path matches a category. Returned by paths.resolve() when the given URL corresponds to a category listing.

Property

Type

Optional

Description

blogUrlMode

string

No

Blog URL mode active on this site ('flat' or 'nested').

category

CategoryDetail

No

Full category details including description, image, content count,<br>and parent category reference.

contents

{ data: ContentSummary[]; meta: PaginationMeta }

No

Paginated list of published content summaries belonging to the resolved category.<br>Pagination can be controlled via query parameters on the resolve request.

locale

string

No

Locale that was resolved for this path (e.g. 'en', 'fr').

type

"category"

No

Discriminator field. Always 'category' for this response type.<br>Use this to narrow the ResolveResponse union.


CategoryTreeResponse

Interface

Response from categories.tree(). Returns categories organized in a parent-child hierarchy.

Property

Type

Optional

Description

blogUrlMode

string

No

How blog content URLs are constructed for this site:<br>- 'flat': URLs use slug only, e.g. /blog/my-article<br>- 'nested': URLs include the category path, e.g. /blog/tech/my-article<br><br>Use this to determine whether category slugs should appear in content URLs.

data

CategoryTreeNode[]

No

Root-level category nodes, each containing nested children arrays.<br>Categories with a parentId appear as children of their parent node.

locale

string | null

No

Active locale code (e.g. 'en', 'fr') for the returned data, or null<br>when the site's default locale was used (no locale override was requested).


ConsentLogResponse

Interface

Response from cookies.logConsent(). Records the user's cookie consent preferences for GDPR compliance.

Property

Type

Optional

Description

consentId

string

No

Unique UUID identifying this consent record.<br>Can be stored client-side as proof of consent for auditing purposes.<br>Format: UUID v4 (e.g. '550e8400-e29b-41d4-a716-446655440000').

message

string

No

Confirmation message (e.g. "Consent recorded").


ContentResolveResponse

Interface

Path resolution response when the resolved path matches a content article. Returned by paths.resolve() when the given URL corresponds to a published article.

Property

Type

Optional

Description

blogUrlMode

string

No

Blog URL mode active on this site ('flat' or 'nested').<br>Determines the URL structure used to build the resolved path.

content

Content

No

Full content object for the matched article, including body, SEO fields,<br>categories, tags, author, and customData.

locale

string

No

Locale that was resolved for this path (e.g. 'en', 'fr').<br>May differ from the requested locale if the content only exists in another locale.

type

"content"

No

Discriminator field. Always 'content' for this response type.<br>Use this to narrow the ResolveResponse union.


ContentsListResponse

Interface

Response from contents.list(). Returns content summaries (without body) for performance. Use contents.getBySlug() to fetch the full content with body and relations.

Property

Type

Optional

Description

data

ContentSummary[]

No

Array of content summaries for the current page.<br>Each summary omits the full body, customData, and SEO fields.<br>Sorted by publishedAt descending by default.

meta

PaginationMeta

No

Pagination metadata for navigating through the result set.


FormSubmitResponse

Interface

Response from forms.submit(). The status field determines whether the submission was immediately accepted or requires further action (e.g. email confirmation for double opt-in).

Property

Type

Optional

Description

message

string

No

Human-readable message suitable for display to the user.<br>Corresponds to the form's configured successMessage when status is 'success'.

status

"success" | "pending"

No

Submission outcome:<br>- 'success': submission was accepted immediately and stored.<br>- 'pending': form uses double opt-in; a confirmation email was sent to the<br> submitter and the submission will only be stored once they click the<br> confirmation link.

submissionId

number

Yes

Auto-incremented submission ID.<br>Only present when status is 'success'.<br>Not available for 'pending' submissions (ID is assigned after confirmation).


GlobalBlockResponse

Interface

Response from blocks.getBySlug(). Returns a single global block with its fully resolved data.

Property

Type

Optional

Description

data

GlobalBlock

No

The global block with all DataSource references resolved to actual data.<br>Check _warnings for any DataSources that failed to resolve.


PagesListResponse

Interface

Response from pages.list(). Returns page summaries (without resolved data) in a single non-paginated response.

Property

Type

Optional

Description

data

PageSummary[]

No

Array of page summaries. Does not include the resolved data or seo fields.<br>Use pages.getBySlug() to fetch the full page with resolved data.


PaginatedResponse

Interface

Generic paginated response wrapping any item type. Used internally by the SDK; most endpoints return a concrete typed response instead.

Property

Type

Optional

Description

data

T[]

No

Array of items for the current page. Empty array when no results match.

meta

PaginationMeta

No

Pagination metadata describing total count, page position, and navigation flags.


PaginationMeta

Interface

Pagination metadata returned with every paginated list response. All numeric values are integers. Page numbering starts at 1.

Property

Type

Optional

Description

currentPage

number

No

1-based index of the current page.<br>Always between 1 and lastPage inclusive.

firstPage

number

No

1-based index of the first page. Always 1.

hasMorePages

boolean

No

true when currentPage < lastPage, meaning a subsequent page request<br>will return more results.

hasPreviousPages

boolean

No

true when currentPage > 1, meaning a previous page exists.

lastPage

number

No

1-based index of the last page.<br>Computed as Math.ceil(total / perPage). Equals 1 when total is 0.

perPage

number

No

Maximum number of items returned per page.<br>Corresponds to the limit (or deprecated perPage) filter sent in the request.<br>Defaults to 15 when not specified. Maximum allowed value is 100.

total

number

No

Total number of items matching the query across all pages.<br>Always >= 0. When 0, data is an empty array.


PathsListResponse

Interface

Response from paths.list(). Used for static site generation (SSG/ISR) to discover all renderable paths.

Property

Type

Optional

Description

blogUrlMode

string

No

How blog content URLs are constructed for this site:<br>- 'flat': URLs use slug only, e.g. /blog/my-article<br>- 'nested': URLs include the category path, e.g. /blog/tech/my-article<br><br>Determines whether category segments appear in the generated paths.

locale

string | null

No

Active locale code (e.g. 'en', 'fr'), or null when the site's<br>default locale was used (no locale override was requested).

paths

Path[]

No

Array of all published content and category paths.<br>Includes every locale variant. Use this to generate static pages<br>with Next.js generateStaticParams() or similar SSG mechanisms.


ResolveResponse

TypeAlias

Union type for path resolution responses. Use the type discriminator field to narrow to the specific response:

TypeScript
type ResolveResponse = ContentResolveResponse | CategoryResolveResponse

ReviewsListResponse

Interface

Response from reviews.list(). Only approved reviews are returned through the public API.

Property

Type

Optional

Description

data

Review[]

No

Array of approved reviews for the current page.<br>Reviews with status other than 'approved' are never included.

meta

PaginationMeta

No

Pagination metadata for navigating through the result set.


ReviewSubmitResponse

Interface

Response from reviews.submit(). The status field depends on the site's review moderation settings.

Property

Type

Optional

Description

message

string

No

Human-readable message suitable for display to the user.<br>Content varies based on whether the review was auto-approved or queued for moderation.

reviewId

number

Yes

Auto-incremented review ID.<br>Only present when status is 'success' (review was auto-approved).<br>Not available for 'pending' reviews until they are approved.

status

"success" | "pending"

No

Submission outcome:<br>- 'success': the review was auto-approved and is immediately visible on the site.<br> This happens when requireApproval is false in the review settings.<br>- 'pending': the review was queued for moderation and will only appear publicly<br> after a site admin approves it.


SiteConfigResponse

Interface

Response from site.getConfig(). Contains basic site metadata and all resolved global blocks. Typically fetched once at app initialization and cached.

Property

Type

Optional

Description

data

{ globals: Record<string, GlobalBlock>; locale: string; site: { domain: string; favicon: string | null; logo: string | null; name: string } }

No

Top-level data wrapper.


TagsListResponse

Interface

Response from tags.list(). Returns all tags in a single non-paginated response.

Property

Type

Optional

Description

data

Tag[]

No

Flat array of all tags for the current locale.<br>Not paginated -- all tags are returned at once.