Related services: PagesService —
lynkow.pages.getByPath(),lynkow.pages.getBySlug(),lynkow.pages.getJsonLd(),lynkow.pages.list()| BlocksService —lynkow.blocks.getBySlug(),lynkow.blocks.global(),lynkow.blocks.siteConfig()
Alternate
Interface
An alternate language version of the same page.
Used to build <link rel="alternate" hreflang="..."> tags for multi-language SEO
and language switcher UI components.
Property | Type | Optional | Description |
|---|---|---|---|
|
| No | Whether this alternate represents the currently requested locale.<br>Exactly one alternate in the array will have |
|
| No | BCP 47 locale code of this version (e.g. |
|
| No | URL path to this locale's version of the page (e.g. |
GlobalBlock
Interface
A global block (reusable site-wide data object).
Global blocks are schema-driven data containers used for site-wide elements like headers, footers, navigation menus, and banners. Their data is defined via a schema in the admin dashboard and can include DataSource references that are resolved server-side before delivery.
Global blocks are typically fetched once at app initialization via
site.getConfig() (which returns all globals) or individually via
blocks.getBySlug().
Property | Type | Optional | Description |
|---|---|---|---|
|
| Yes | Warnings generated during DataSource resolution.<br>Present only when one or more DataSources failed to resolve<br>(e.g. referenced content was deleted, DataSource query timed out).<br>When absent or empty, all data resolved successfully.<br>Each string describes the specific resolution failure. |
|
| No | Resolved block data.<br>Structure depends on the block's schema definition in the admin dashboard.<br>DataSource references are resolved server-side, so this object contains<br>actual data (e.g. arrays of content summaries, navigation links) rather<br>than DataSource identifiers.<br><br>Richtext fields within the data are automatically converted to HTML strings. |
|
| No | Human-readable display name of the block, as set in the admin dashboard.<br>For UI/debugging purposes; use slug for lookups. |
|
| No | URL-friendly identifier for the block.<br>Unique within the site. Used to fetch individual blocks via |
LegalDocument
Interface
A legal document (privacy policy, terms of service, cookie policy, etc.).
Legal documents are implemented as pages tagged with 'legal' in the CMS.
They use the same schema-driven data model as regular pages but are
surfaced through the dedicated legal service for convenience.
Property | Type | Optional | Description |
|---|---|---|---|
|
| No | Document content resolved from the page's schema.<br>Structure depends on how the page's schema was configured in the admin.<br>Richtext fields are automatically converted to HTML strings.<br>Typically contains a |
|
| No | Unique identifier for the document.<br>Format varies by implementation (numeric string or UUID). |
|
| No | Locale code of this document version (e.g. |
|
| No | Display name of the document (e.g. |
|
| Yes | SEO metadata for the document.<br> |
|
| No | URL-friendly slug used to fetch the document via |
|
| No | ISO 8601 datetime string of the last update.<br>Important for legal compliance -- display this to indicate when the document<br>was last revised (e.g. "Last updated: March 15, 2025"). |
Page
Interface
Full page with resolved data sources, SEO settings, and locale alternates.
Returned by single-page endpoints (GET /public/pages/:idOrSlug).
Pages are layout-driven containers whose content comes from DataSources —
configurable queries that fetch content, categories, forms, or other data.
The API resolves all DataSources server-side and returns the results in data.
Extends: PageSummary
Property | Type | Optional | Description |
|---|---|---|---|
|
| Yes | Warnings emitted during DataSource resolution.<br>Present only when one or more DataSources encountered non-fatal errors<br>(e.g. a referenced content was deleted, a query returned no results unexpectedly).<br> |
|
| No | Alternate language versions of this page.<br>Empty array if the site has only one locale or no translations exist.<br>Always includes the current locale (with |
|
| No | Resolved data from all configured DataSources, keyed by the DataSource name.<br><br>Each key corresponds to a DataSource defined in the page's schema.<br>The value type depends on the DataSource type:<br>- Content list: array of ContentSummary objects<br>- Single content: a Content object<br>- Category list: array of Category objects<br>- Form: a Form object<br>- Custom data: any JSON value |
|
| No | Unique numeric page ID. Auto-incremented.<br>Use this for API calls like |
|
| No | BCP 47 locale code of this page (e.g. |
|
| No | Internal page name used for identification in the admin dashboard.<br>May differ from the SEO title. Max 255 characters. |
|
| No | URL path for this page, including locale prefix when applicable.<br>Format: |
|
| No | Page-level SEO settings for meta tags, Open Graph, and Twitter Card.<br> |
|
| No | URL-friendly slug, unique within the site for this locale.<br>Lowercase, hyphenated (e.g. |
|
| No | ISO 8601 datetime of the last modification (e.g. |
PageSeo
Interface
SEO settings for a page, controlling meta tags, Open Graph, Twitter Card, and technical SEO directives.
All fields are optional — unset fields mean "use the default" or "don't render this tag".
The frontend is responsible for rendering these values into the appropriate <meta> tags.
Property | Type | Optional | Description |
|---|---|---|---|
|
| Yes | Override canonical URL for this page. Absolute URL.<br> |
|
| Yes | Array of keyword strings for |
|
| Yes |
|
|
| Yes | Custom |
|
| Yes | When |
|
| Yes |
|
|
| Yes | Image for Open Graph sharing previews.<br> |
|
| Yes |
|
|
| Yes |
|
|
| Yes |
|
|
| Yes |
|
|
| Yes |
|
|
| Yes | Image for Twitter Card previews.<br> |
|
| Yes |
|
PageSummary
Interface
Lightweight page representation returned in list endpoints. Contains basic identification and routing information.
Use Page (from GET /public/pages/:idOrSlug) for the full page
including resolved data, SEO settings, and alternates.
Property | Type | Optional | Description |
|---|---|---|---|
|
| No | Unique numeric page ID. Auto-incremented.<br>Use this for API calls like |
|
| No | BCP 47 locale code of this page (e.g. |
|
| No | Internal page name used for identification in the admin dashboard.<br>May differ from the SEO title. Max 255 characters. |
|
| No | URL path for this page, including locale prefix when applicable.<br>Format: |
|
| No | URL-friendly slug, unique within the site for this locale.<br>Lowercase, hyphenated (e.g. |
|
| No | ISO 8601 datetime of the last modification (e.g. |