Related services: SiteService — lynkow.site.getConfig()
Client
Interface
Extended client interface for SDK v3
Extends: LynkowClient
Property | Type | Optional | Description |
|---|
analytics
| AnalyticsService
| No | Analytics service (browser-only) |
availableLocales
| string[]
| No | Available locales from site configuration |
blocks
| BlocksService
| No | Alias for blocks (v3 naming) |
branding
| BrandingService
| No | Branding service (badge for free plan) |
cart
| CartService
| No | Storefront cart service (commerce).<br>Provides retrieve(), addLine(), updateLine(), removeLine(), and the<br>post-sign-in claim(). Requires a publishableKey on the client. Handles the<br>guest cart token round-trip automatically, and attaches the shared customer<br>token as Authorization: Bearer once the buyer is signed in. |
categories
| CategoriesService
| No | Content categories service.<br>Provides list(), tree(), getBySlug() for fetching categories<br>with content counts and hierarchical tree structures. |
checkout
| CheckoutService
| No | Storefront checkout service (commerce).<br>Completes the current guest or signed-in cart into an offline order. Requires a<br>publishableKey; guest calls reuse the token captured by the cart service. |
config
| Readonly<{ baseUrl: string; cache: boolean; debug: boolean; siteId: string }>
| No | Client configuration (readonly) |
consent
| ConsentService
| No | Consent service (cookie consent management) |
contents
| ContentsService
| No | Blog contents (articles) service.<br>Provides list(), getBySlug() for fetching published articles<br>with support for filtering by category, tag, search, and pagination. |
cookies
| CookiesService
| No | Cookie consent service.<br>Provides getConfig() for banner configuration, categories, and third-party<br>scripts, and logConsent() to record the user's consent preferences<br>for GDPR compliance. |
customers
| CustomersService
| No | Storefront customers service (commerce).<br>Provides buyer authentication (register, login, logout, me), password<br>reset (passwordReset.request/confirm), and marketing consent<br>(marketingConsent.list/update). Requires a publishableKey on the client;<br>carries the customer session token as Authorization: Bearer on authenticated<br>calls and shares it with reservation creation. |
enhancements
| EnhancementsService
| No | Content enhancements service (code copy, etc.) |
forms
| FormsService
| No | Forms service.<br>Provides getBySlug() for fetching form schemas and submit() for<br>sending form submissions. Supports honeypot and reCAPTCHA spam protection. |
globals
| BlocksService
| No | Global blocks service (v3 naming) |
legal
| LegalService
| No | Legal documents service.<br>Provides list() and getBySlug() for fetching legal pages<br>(privacy policy, terms of service, etc.).<br>Legal documents are pages tagged with 'legal'. |
locale
| string
| No | Current locale |
media
| MediaHelperService
| No | Image transformation helpers.<br>Use these to build optimized image URLs for responsive images. |
pages
| PagesService
| No | Pages (site blocks) service.<br>Provides list(), getBySlug() for fetching standalone pages<br>with schema-driven data and DataSource resolution.<br>Pages are different from contents -- they represent structural site pages<br>(e.g. homepage, about, contact) rather than blog articles. |
paths
| PathsService
| No | Paths service for static site generation (SSG/ISR).<br>Provides list() for discovering all renderable paths (contents + categories),<br>resolve() for matching a URL path to its content or category,<br>and getRedirects() for fetching all redirect rules. |
productCategories
| ProductCategoriesService
| No | Storefront product categories service (commerce).<br>Returns the merchant-visible category tree. Requires a publishableKey on the client. |
productCollections
| ProductCollectionsService
| No | Storefront product collections service (commerce).<br>Lists merchant-visible collections. Requires a publishableKey on the client. |
products
| ProductsService
| No | Storefront product catalogue service (commerce).<br>Provides list() and getBySlug() for published products.<br>Requires a publishableKey on the client. |
reservations
| ReservationsService
| No | Storefront reservations service (commerce).<br>Provides availability() and the nested bookings.create() for bookable products.<br>Requires a publishableKey on the client. Booking creation also attaches the<br>shared customer token automatically when the buyer is signed in. |
reviews
| ReviewsService
| No | Customer reviews service.<br>Provides list() for fetching approved reviews, submit() for posting<br>new reviews, and getSettings() for the site's review configuration.<br>Only publicly approved reviews are returned. |
search
| SearchService
| No | Lynkow Instant Search service |
seo
| SeoService
| No | SEO files service.<br>Provides getRobotsTxt() for the robots.txt content and getSitemap()<br>for the XML sitemap. Used for server-side rendering of SEO routes. |
site
| SiteService
| No | Site configuration service.<br>Provides getConfig() for fetching site metadata, active locale,<br>and all global blocks in a single request. Also provides getI18nConfig()<br>for language switching UI data and getFullConfig() for complete site info. |
tags
| TagsService
| No | Content tags service.<br>Provides list() for fetching all tags.<br>Tags are used to filter contents and group articles across categories. |
ClientConfig
Interface
Extended configuration for SDK v3
Extends: LynkowConfig
Property | Type | Optional | Description |
|---|
baseUrl
| string
| Yes | Base URL of the Lynkow API.<br>Must not include a trailing slash.<br>Override this for self-hosted deployments or local development. |
cache
| boolean
| Yes | Enable the SDK's in-memory response cache.<br>When disabled (default), every SDK call goes through fetch(),<br>letting your framework (Next.js, Nuxt, Astro) control caching<br>and revalidation end-to-end.<br>Set to true for browser SPAs that benefit from localStorage<br>caching between navigations. |
customerToken
| string
| Yes | Optional customer session token to restore a signed-in buyer across a page reload<br>or SSR. Seeded into shared client state so customer-authenticated calls, including<br>reservation creation, attach it as Authorization: Bearer <token> alongside the<br>publishable key. customers.activation.confirm() and customers.login() replace this<br>shared value; customers.logout() clears it. Persist the returned token in your own<br>storage (for example an HttpOnly cookie). Separate from publishableKey: the<br>publishable key identifies the app, this token the buyer. The SDK never persists or<br>logs it. |
debug
| boolean
| Yes | Enable debug logging |
fetchOptions
| RequestInit
| Yes | Default fetch() options merged into every request made by this client.<br>Commonly used for Next.js caching directives or custom headers.<br>Per-request fetchOptions are shallow-merged on top of these defaults. |
locale
| string
| Yes | Default locale code for all requests made by this client.<br>Must be a locale enabled on the site (e.g. 'en', 'fr', 'de').<br>Can be overridden per-request via BaseRequestOptions.locale.<br>When omitted, the site's default locale is used for all requests. |
publishableKey
| string
| Yes | Optional publishable key that identifies this client to the Lynkow<br>storefront API. Copied from the admin dashboard under Site Settings.<br>It has the form lkw_pk_ followed by 24 characters.<br>When set, it is sent as the X-Lynkow-Pk header on every storefront API request the client makes.<br>Optional on CMS content routes; required on future commerce routes. |
retry
| boolean | RetryConfig
| Yes | Automatic retry policy for transient failures (HTTP 429, HTTP 503, and<br>network errors on read requests). Enabled by default with sensible backoff<br>that honors the server's Retry-After header. Pass false to disable, or a<br>RetryConfig object to tune it. See RetryConfig for the full<br>behavior and defaults. |
siteId
| string
| No | UUID of the Lynkow site to connect to.<br>Found in the admin dashboard under Site Settings.<br>Must be a valid UUID v4 format (lowercase hex with dashes).<br>Interpolated into the path of every request (/storefront/:siteId/...)<br>to identify the tenant. It is not sent as a header. |
LynkowClient
Interface
Lynkow Client interface -- the main SDK entry point.
Provides access to all public API services through typed service objects.
Created via createLynkow(config).
Each service corresponds to a public API resource and provides
methods for listing, fetching, and (where applicable) submitting data.
Property | Type | Optional | Description |
|---|
blocks
| BlocksService
| No | Global blocks service.<br>Provides getBySlug() for fetching reusable site-wide data blocks<br>(e.g. header navigation, footer links, banners).<br>Global blocks are resolved from DataSources server-side.<br>Typically fetched once via site.getConfig() which returns all globals. |
categories
| CategoriesService
| No | Content categories service.<br>Provides list(), tree(), getBySlug() for fetching categories<br>with content counts and hierarchical tree structures. |
contents
| ContentsService
| No | Blog contents (articles) service.<br>Provides list(), getBySlug() for fetching published articles<br>with support for filtering by category, tag, search, and pagination. |
cookies
| CookiesService
| No | Cookie consent service.<br>Provides getConfig() for banner configuration, categories, and third-party<br>scripts, and logConsent() to record the user's consent preferences<br>for GDPR compliance. |
forms
| FormsService
| No | Forms service.<br>Provides getBySlug() for fetching form schemas and submit() for<br>sending form submissions. Supports honeypot and reCAPTCHA spam protection. |
legal
| LegalService
| No | Legal documents service.<br>Provides list() and getBySlug() for fetching legal pages<br>(privacy policy, terms of service, etc.).<br>Legal documents are pages tagged with 'legal'. |
pages
| PagesService
| No | Pages (site blocks) service.<br>Provides list(), getBySlug() for fetching standalone pages<br>with schema-driven data and DataSource resolution.<br>Pages are different from contents -- they represent structural site pages<br>(e.g. homepage, about, contact) rather than blog articles. |
paths
| PathsService
| No | Paths service for static site generation (SSG/ISR).<br>Provides list() for discovering all renderable paths (contents + categories),<br>resolve() for matching a URL path to its content or category,<br>and getRedirects() for fetching all redirect rules. |
reviews
| ReviewsService
| No | Customer reviews service.<br>Provides list() for fetching approved reviews, submit() for posting<br>new reviews, and getSettings() for the site's review configuration.<br>Only publicly approved reviews are returned. |
search
| SearchService
| No | Lynkow Instant Search service.<br>Provides search() for server-side search and getConfig() for<br>client-side direct search with tenant tokens. |
seo
| SeoService
| No | SEO files service.<br>Provides getRobotsTxt() for the robots.txt content and getSitemap()<br>for the XML sitemap. Used for server-side rendering of SEO routes. |
site
| SiteService
| No | Site configuration service.<br>Provides getConfig() for fetching site metadata, active locale,<br>and all global blocks in a single request. Also provides getI18nConfig()<br>for language switching UI data and getFullConfig() for complete site info. |
tags
| TagsService
| No | Content tags service.<br>Provides list() for fetching all tags.<br>Tags are used to filter contents and group articles across categories. |
LynkowConfig
Interface
Configuration for creating a Lynkow client instance.
Only siteId is required; all other options have sensible defaults.
Property | Type | Optional | Description |
|---|
baseUrl
| string
| Yes | Base URL of the Lynkow API.<br>Must not include a trailing slash.<br>Override this for self-hosted deployments or local development. |
customerToken
| string
| Yes | Optional customer session token to restore a signed-in buyer across a page reload<br>or SSR. Seeded into shared client state so customer-authenticated calls, including<br>reservation creation, attach it as Authorization: Bearer <token> alongside the<br>publishable key. customers.activation.confirm() and customers.login() replace this<br>shared value; customers.logout() clears it. Persist the returned token in your own<br>storage (for example an HttpOnly cookie). Separate from publishableKey: the<br>publishable key identifies the app, this token the buyer. The SDK never persists or<br>logs it. |
fetchOptions
| RequestInit
| Yes | Default fetch() options merged into every request made by this client.<br>Commonly used for Next.js caching directives or custom headers.<br>Per-request fetchOptions are shallow-merged on top of these defaults. |
locale
| string
| Yes | Default locale code for all requests made by this client.<br>Must be a locale enabled on the site (e.g. 'en', 'fr', 'de').<br>Can be overridden per-request via BaseRequestOptions.locale.<br>When omitted, the site's default locale is used for all requests. |
publishableKey
| string
| Yes | Optional publishable key that identifies this client to the Lynkow<br>storefront API. Copied from the admin dashboard under Site Settings.<br>It has the form lkw_pk_ followed by 24 characters.<br>When set, it is sent as the X-Lynkow-Pk header on every storefront API request the client makes.<br>Optional on CMS content routes; required on future commerce routes. |
retry
| boolean | RetryConfig
| Yes | Automatic retry policy for transient failures (HTTP 429, HTTP 503, and<br>network errors on read requests). Enabled by default with sensible backoff<br>that honors the server's Retry-After header. Pass false to disable, or a<br>RetryConfig object to tune it. See RetryConfig for the full<br>behavior and defaults. |
siteId
| string
| No | UUID of the Lynkow site to connect to.<br>Found in the admin dashboard under Site Settings.<br>Must be a valid UUID v4 format (lowercase hex with dashes).<br>Interpolated into the path of every request (/storefront/:siteId/...)<br>to identify the tenant. It is not sent as a header. |
RetryConfig
Interface
Automatic retry policy for transient failures.
The SDK retries a request when it fails in a way that is likely to succeed on
a second attempt, using exponential backoff and honoring the server's
Retry-After header when present. Retries are enabled by default, which keeps
large static-site builds (SSG/ISR prerender fires many requests at once) from
failing the whole build on a short-lived rate limit.
Only reads are retried: GET requests and text endpoints (sitemap, robots,
llms.txt, markdown) are retried on HTTP 429, HTTP 503, and network errors.
Submissions (POST, e.g. form and review submits) are never retried, so a
request that may have been processed is not sent twice.
Pass retry: false to disable retries entirely.
Property | Type | Optional | Description |
|---|
backoffMs
| number
| Yes | Base delay in milliseconds for exponential backoff, used when the response<br>carries no Retry-After header. The nth retry (0-indexed) waits about<br>backoffMs * 2^n plus a small random jitter, capped by maxDelayMs. |
maxDelayMs
| number
| Yes | Upper bound in milliseconds for any single wait between attempts. Also caps<br>a large Retry-After value, so one rate-limited request can never stall a<br>build indefinitely. |
retries
| number
| Yes | Maximum number of retry attempts after the initial request.<br>Set to 0 to disable retries (equivalent to retry: false). |
SiteConfig
Interface
Public site configuration returned by site.getFullConfig().
Contains all site-level settings needed to bootstrap a frontend application.
Property | Type | Optional | Description |
|---|
analytics
| { consentMode: "opt-in" | "opt-out" | "disabled" }
| No | Analytics consent configuration for the site. |
defaultLocale
| string
| No | Default locale code for the site (e.g. 'en', 'fr').<br>Content and API responses default to this locale when no locale is specified.<br>Always appears in enabledLocales. |
description
| string | null
| No | Short site description for SEO and metadata.<br>null when no description has been set by the admin. |
domain
| string
| No | Primary domain without protocol (e.g. 'example.com', 'blog.example.com').<br>This is the canonical domain for building absolute URLs. |
enabledLocales
| string[]
| No | Array of all enabled locale codes (e.g. ['en', 'fr', 'de']).<br>Always contains at least defaultLocale.<br>Use this to validate locale parameters or build locale-prefixed URLs. |
faviconUrl
| string | null
| No | Full CDN URL to the site favicon.<br>null when no favicon has been uploaded.<br>Should be used in the <link rel="icon"> tag. |
i18n
| I18nConfig
| No | Full i18n configuration including locale display metadata,<br>language switcher settings, and automatic detection behavior.<br>See I18nConfig for details. |
id
| string
| No | Site UUID. Same value as the siteId used to initialize the client.<br>Format: UUID v4 (e.g. '550e8400-e29b-41d4-a716-446655440000'). |
logoUrl
| string | null
| No | Full CDN URL to the site logo image.<br>null when no logo has been uploaded.<br>Typically used in the site header and Open Graph metadata. |
name
| string
| No | Site display name, as configured by the admin.<br>Used for site branding, document titles, etc. |
showBranding
| boolean
| No | Whether the Lynkow branding badge should be displayed on the site.<br>true on free plans; false on paid plans where branding is removed. |
timezone
| string | null
| No | IANA timezone identifier for the site (e.g. 'Europe/Paris', 'America/New_York').<br>Used for displaying dates in the site's local time.<br>null when no timezone has been configured (defaults to UTC). |