# Lynkow Docs > Lynkow is an all-in-one headless CMS platform providing content management, analytics, forms, reviews, and SEO tools in a single integrated solution. ## Sitemap - [Sitemap XML](https://www.lynkow.com/sitemap.xml) ## Blog ### Plugins - [Cloudflare Cache Purge](https://www.lynkow.com/docs/plugins/cloudflare-cache-purge.md): Automatically purge your Cloudflare CDN cache when your Lynkow content changes. Step-by-step guide to install and configure the plugin. ### Advanced - [Visual Editor](https://www.lynkow.com/docs/sdk/advanced/visual-editor.md): Integrate the Lynkow Visual Editor to let CMS admins edit page content directly on your website with real-time inline editing and preview. ### Getting Started - [Complete Integration Checklist](https://www.lynkow.com/docs/sdk/getting-started/integration-checklist.md): Step-by-step checklist to verify your Lynkow integration covers every feature, from SDK setup to analytics and SEO. ### Types - [SDK Types: Search](https://www.lynkow.com/docs/sdk/types/sdk-types-search.md): TypeScript type definitions for Search in the Lynkow SDK. - [SDK Types: Routing](https://www.lynkow.com/docs/sdk/types/sdk-types-routing.md): TypeScript type definitions for Routing in the Lynkow SDK. - [SDK Types: Reviews](https://www.lynkow.com/docs/sdk/types/sdk-types-reviews.md): TypeScript type definitions for Reviews in the Lynkow SDK. - [SDK Types: Pages](https://www.lynkow.com/docs/sdk/types/sdk-types-pages.md): TypeScript type definitions for Pages in the Lynkow SDK. - [SDK Types: Images & Media](https://www.lynkow.com/docs/sdk/types/sdk-types-images-&-media.md): TypeScript type definitions for Images & Media in the Lynkow SDK. - [SDK Types: Forms](https://www.lynkow.com/docs/sdk/types/sdk-types-forms.md): TypeScript type definitions for Forms in the Lynkow SDK. - [SDK Types: Filters & Options](https://www.lynkow.com/docs/sdk/types/sdk-types-filters-&-options.md): TypeScript type definitions for Filters & Options in the Lynkow SDK. - [SDK Types: Errors](https://www.lynkow.com/docs/sdk/types/sdk-types-errors.md): TypeScript type definitions for Errors in the Lynkow SDK. - [SDK Types: Cookies & Consent](https://www.lynkow.com/docs/sdk/types/sdk-types-cookies-&-consent.md): TypeScript type definitions for Cookies & Consent in the Lynkow SDK. - [SDK Types: Content Schema](https://www.lynkow.com/docs/sdk/types/sdk-types-content-schema.md): TypeScript type definitions for Content Schema in the Lynkow SDK. - [SDK Types: Content](https://www.lynkow.com/docs/sdk/types/sdk-types-content.md): TypeScript type definitions for Content in the Lynkow SDK. - [SDK Types: Configuration](https://www.lynkow.com/docs/sdk/types/sdk-types-configuration.md): TypeScript type definitions for Configuration in the Lynkow SDK. - [SDK Types: Categories](https://www.lynkow.com/docs/sdk/types/sdk-types-categories.md): TypeScript type definitions for Categories in the Lynkow SDK. - [SDK Types: API Responses](https://www.lynkow.com/docs/sdk/types/sdk-types-api-responses.md): TypeScript type definitions for API Responses in the Lynkow SDK. - [SDK Types: Analytics](https://www.lynkow.com/docs/sdk/types/sdk-types-analytics.md): TypeScript type definitions for Analytics in the Lynkow SDK. ### Services - [TagsService](https://www.lynkow.com/docs/sdk/services/sdk-tags-service.md): Service for retrieving content tags. Accessible via `lynkow.tags`. Tags are lightweight labels attached to blog articles for cross-cutting classification (unlike categories which are hierarchical). Responses are cached for 5 minutes (SHORT TTL). - [SiteService](https://www.lynkow.com/docs/sdk/services/sdk-site-service.md): Service for retrieving the public site configuration. Accessible via `lynkow.site`. Provides site-level metadata such as name, domain, locales, timezone, branding settings, and analytics consent mode. Cached for 10 minutes (MEDIUM TTL) since site configuration rarely changes. - [SeoService](https://www.lynkow.com/docs/sdk/services/sdk-seo-service.md): Service for retrieving SEO-related files (sitemap, robots.txt, LLM-optimized content, and individual Markdown exports). Accessible via `lynkow.seo`. All methods return plain text (XML, TXT, or Markdown) and are NOT cached by the SDK since they are typically served as route handlers with their own HTTP caching headers. - [SearchService](https://www.lynkow.com/docs/sdk/services/sdk-search-service.md): Lynkow Instant Search service. Accessible via `lynkow.search`. Provides full-text search with typo tolerance across all published content. Results are not cached (search queries are dynamic by nature). Search must be enabled in the admin dashboard (**Settings > SEO > Search**) before it can be used. When disabled, all methods return a 503 error. - [ReviewsService](https://www.lynkow.com/docs/sdk/services/sdk-reviews-service.md): Service for retrieving and submitting customer reviews. Accessible via `lynkow.reviews`. Only reviews with status `'approved'` are returned by the public API. New submissions go through moderation if `requireApproval` is enabled in the review settings. Anti-spam honeypot fields are injected automatically on submissions. Responses are cached for 5 minutes (SHORT TTL). - [PathsService](https://www.lynkow.com/docs/sdk/services/sdk-paths-service.md): Service for URL path resolution and static site generation (SSG). Accessible via `lynkow.paths`. Provides methods to list all available paths for static generation, resolve a URL path to its content or category, and check for configured redirects. Cached for 5 minutes (SHORT TTL). - [PagesService](https://www.lynkow.com/docs/sdk/services/sdk-pages-service.md): Service for retrieving published pages (Site Blocks of type "page"). Accessible via `lynkow.pages`. Pages are CMS-managed, schema-driven content blocks (e.g. "About", "Contact", legal pages). Unlike blog articles, pages use DataSource-resolved data instead of a rich text body. Responses are cached for 5 minutes (SHORT TTL) when a cache adapter is configured. - [MediaHelperService](https://www.lynkow.com/docs/sdk/services/sdk-media-helper-service.md): Service for building optimized image URLs using Cloudflare Image Transformations. Accessible via `lynkow.media`. This is a pure utility service (no API calls, no caching) that constructs Cloudflare `/cdn-cgi/image/` URLs from Lynkow media URLs. Works on both server and browser. Handles both original URLs (`/sites/...`) and already-transformed URLs (`/cdn-cgi/image/...`), re-extracting the original path when needed. - [LegalService](https://www.lynkow.com/docs/sdk/services/sdk-legal-service.md): Service for accessing legal documents (privacy policy, terms of service, etc.). Accessible via `lynkow.legal`. Legal documents are regular pages tagged with `'legal'`. This service provides convenience methods to access them, but is deprecated in favor of the `pages` service. Responses are cached for 5 minutes (SHORT TTL). - [FormsService](https://www.lynkow.com/docs/sdk/services/sdk-forms-service.md): Service for retrieving form schemas and submitting form data. Accessible via `lynkow.forms`. Forms are dynamic, CMS-managed forms with configurable fields, validation rules, and spam protection. The service automatically handles honeypot anti-spam fields on submissions. Form schemas are cached for 10 minutes (MEDIUM TTL). - [EnhancementsService](https://www.lynkow.com/docs/sdk/services/sdk-enhancements-service.md): Service for adding interactive features to content rendered from the Lynkow API. Accessible via `lynkow.enhancements`. This is a **browser-only** service -- all methods are no-ops on the server. Currently provides: - **Copy button** for code blocks (elements with `[data-copy-code]` attribute) - **Script activation** for inline scripts injected via `dangerouslySetInnerHTML` - **Widget iframe auto-resize** for embedded Lynkow widgets - **CSS normalization** to ensure content renders correctly wit - [CookiesService](https://www.lynkow.com/docs/sdk/services/sdk-cookies-service.md): Low-level service for cookie consent API interactions. Accessible via `lynkow.cookies`. Provides raw API methods for fetching consent configuration and logging user preferences. For a higher-level experience with built-in banner UI and preferences modal, use the `consent` service (`lynkow.consent`) instead. Responses are cached for 10 minutes (MEDIUM TTL). - [ContentsService](https://www.lynkow.com/docs/sdk/services/sdk-contents-service.md): Service for retrieving published blog articles (contents). Accessible via `lynkow.contents`. All methods return only published content visible to the public API. Responses are cached in-memory for 5 minutes (SHORT TTL) when a cache adapter is configured on the client. - [ConsentService](https://www.lynkow.com/docs/sdk/services/sdk-consent-service.md): High-level consent management service with built-in banner UI and preferences modal. Accessible via `lynkow.consent`. This is a hybrid service: - **API methods** (`getConfig`, `logConsent`) work everywhere (server + browser) - **UI methods** (`show`, `hide`, `acceptAll`, `rejectAll`, `showPreferences`, etc.) only work in the browser and are no-ops on the server Consent choices are persisted in `localStorage` under the `_lkw_consent` key (compatible with tracker.js) and expire after 365 days. - [CategoriesService](https://www.lynkow.com/docs/sdk/services/sdk-categories-service.md): Service for retrieving content categories and their hierarchical structure. Accessible via `lynkow.categories`. Categories organize blog articles and can be nested (parent/child). Each category includes a content count and optional image. Responses are cached for 5 minutes (SHORT TTL) when a cache adapter is configured. - [BrandingService](https://www.lynkow.com/docs/sdk/services/sdk-branding-service.md): Service for displaying the "Powered by Lynkow" branding badge. Accessible via `lynkow.branding`. This is a **browser-only** service -- all methods are no-ops on the server. The badge HTML and CSS are fetched from the API (cached for 30 minutes, LONG TTL) so they can be updated server-side without SDK changes. The badge automatically adapts to the site's light/dark theme via a MutationObserver. The badge is shown for sites on the free plan (`siteConfig.showBranding === true`). It fails silently - [BlocksService](https://www.lynkow.com/docs/sdk/services/sdk-blocks-service.md): Service for retrieving global site blocks (header, footer, navigation, etc.). Accessible via `lynkow.globals` (aliased from `lynkow.blocks`). Global blocks are reusable, schema-driven content components shared across all pages of the site. They are resolved server-side with DataSources. Responses are cached for 10 minutes (MEDIUM TTL) since global blocks change infrequently. - [AnalyticsService](https://www.lynkow.com/docs/sdk/services/sdk-analytics-service.md): Service for client-side analytics tracking via the Lynkow tracker.js script. Accessible via `lynkow.analytics`. This is a **browser-only** service -- all methods are no-ops when called on the server (SSR/Node.js). The service lazily loads the `tracker.js` script from the API, which auto-initializes using the site ID. The tracker automatically captures pageviews; use `trackPageview()` for manual SPA navigation tracking and `trackEvent()` for custom events. The service respects the site's consen - [Getting Started](https://www.lynkow.com/docs/sdk/services/sdk-getting-started.md): How to install and initialize the Lynkow SDK. ### SDK Reference - [SDK Reference](https://www.lynkow.com/docs/sdk/sdk-overview.md): Lynkow JavaScript/TypeScript SDK v3.8.68 reference. ## Search This site has a full-text search API with typo tolerance. Instead of reading every article, you can search for specific topics. **Endpoint:** ``` GET https://search.lynkow.com/public/c3bc8a0a-7820-4945-b174-5c9328b98719/search?q={query} ``` **Parameters:** `q` (required), `locale`, `category` (slug), `tag` (slug), `page`, `limit` (max 100) **Example:** ``` GET https://search.lynkow.com/public/c3bc8a0a-7820-4945-b174-5c9328b98719/search?q=getting+started&limit=5 ``` Returns `{ data: [{ id, title, slug, path, excerpt, categories, tags, publishedAt }], meta: { total, page, totalPages, query, processingTimeMs } }`