The Content Delivery API is a public HTTP API designed for external frontends and mobile apps, mounted directly under your website's own domain. Once you publish content in Collections, Blog, Pages, or Online Forms, any frontend framework (Next.js, Astro, Remix, Nuxt, SvelteKit) can call it directly. There is no need to store API keys on the frontend, and you get millisecond response times powered by global edge caching.
Full Endpoints, Parameters, and Error Codes (SSOT): All endpoint paths, query parameters, response structures, rate-limiting headers, and error codes are automatically generated from the OpenAPI 3.1 specification on the Content Delivery API Reference page (you can also download
https://{your-site}/api/v1/openapi.jsondirectly from your site). This article focuses on the platform-level design concepts.
| Comparison | Content Delivery API (This Guide) | Customer API (Buyer) | Management REST API / MCP |
|---|---|---|---|
| Base URL | https://{your-website}/api/v1 | https://{your-website}/api/v1/customer | https://app.kanorio.com/api/v1 |
| Authentication Required? | No (Public/Anonymous; token required for draft preview only) | Requires Bearer Session (knr_cat_) after buyer login | Yes (Requires Authorization: Bearer knr_pat_...) |
| Browser-safe? | Yes (With CORS-allowed origins) | Yes (Restricted to the logged-in buyer) | No (Server-side, CI, or AI tools only) |
| Data Version | Returns published data only | Real-time access and progress for the buyer | Read/Write access for Draft and Published data |
Your website has two types of URLs that can call the Content Delivery API:
https://s-xxxxxxxxxxxx.kanorio.com/api/v1): Assigned at creation and permanent. Even if you haven't published a Kanorio-hosted page (only enabled "Enable API service when site is unpublished" in "Site Settings › Developer"), or if you point your custom domain DNS to Vercel/Cloudflare Pages in the future, this system URL will always remain valid.https://your-subdomain.kanorio.com/api/v1): Can be used for calls once the hosted site is published.Search Engine Protection: All
/api/v1/*responses automatically include theX-Robots-Tag: noindexheader to prevent search engines from indexing JSON endpoints as web pages, which would dilute your site's SEO authority.
assets Mapping TableIn many traditional CMSs, if an image field only stores an ID, the frontend must make a second request to fetch the URL. If the image URL is hardcoded into the field, it becomes invalid when the site owner replaces the image or updates the alt text in the media library.
Therefore, Kanorio provides a unified assets mapping table at the top level of responses for /collections/{key}/items, /pages/{slug}, and /globals/*:
image and file fields store only the assetId string (or assetId[] for gallery).assets[assetId] automatically includes the latest public CDN URL (url), original dimensions (width, height), alt text, file type, and a 16px WebP blurred placeholder (Data URL)./w=400, /w=800, /w=1200, /w=1600, or /w=1920 to fetch optimized images. Combined with the placeholder, you can achieve zero-CLS loading in Next.js using <Image blurDataURL={...} />.knr_pv_)fetch directly from the browser side of an external site (e.g., for real-time search or form submission), please go to "Site Settings › Developer" and add your external frontend's Origin (e.g., https://www.example.com) to the "Allowed Origins". Local development http://localhost:* is always allowed by default.X-Kanorio-Preview)When an editor modifies a draft article or page and wants to preview it on an external frontend before publishing:
knr_pv_ (or call site.create_preview_token via AI).X-Kanorio-Preview: knr_pv_your-preview-token (or use the previewToken option in @kanorio/sdk).Cache-Control: private, no-store), and return the latest draft content.X-Kanorio-Cache-TagsThe Content Delivery API has no monthly read limits and no API bandwidth fees. The key lies in our two-layer version key caching and cache tag design:
publicVersion automatically increments. Edge caches switch to the new version within seconds, supporting weak ETags and If-None-Match (returning 304 Not Modified when content hasn't changed).X-Kanorio-Cache-Tags): Every response includes structured tags (e.g., site:{siteId}, collection:blog, item:{itemId}, pages, globals, redirects). These align perfectly with the data.cacheTags in payloads, allowing you to implement on-demand revalidation in Next.js with a single line of code.Please visit the Content Delivery API Reference page. The page automatically renders all endpoint parameters and examples from the OpenAPI spec. To see actual frontend code implementation, please read Reading Pages, Blogs, and Collections.
| Delivery API Reference |
| Customer API Reference |
| Management API Reference |