canonical: https://jentic.com/apis/kontent.ai/kontent-ai

# Kontent.ai Delivery API

Jentic publishes the only available OpenAPI specification for Kontent.ai Delivery API, keeping it validated and agent-ready. The Kontent.ai Delivery API is a read-only REST interface to the Kontent.ai headless CMS that returns published content items, content types, languages, and taxonomy groups from a project environment. Responses are JSON and can be filtered, ordered, and paginated to drive websites, apps, and channel-specific renderers from a single content source. Authentication is by API key passed in the request header, and content is scoped per environment so that production and preview content stay isolated.

## For AI agents

Fetch published headless CMS content from Kontent.ai - content items, types, languages, and taxonomies - for an environment, ready to render on a site or app.

## Scope

Does not handle content authoring, asset uploads, or workflow management - use for delivery of published content only.

## Capabilities

- Retrieve published content items by codename or filter expression for a given environment
- List the content types defined in a project to drive dynamic schema-aware rendering
- Inspect element definitions on a content type to map editor fields to UI components
- Enumerate active project languages to power locale-aware content fetching
- Browse taxonomy groups and terms to support faceted navigation and tagging
- Filter, order, and paginate content item collections to deliver listing pages efficiently

## Use cases

### Headless website content delivery

Power a marketing website or single-page app by fetching published Kontent.ai content items by type and language, then rendering them through a frontend framework. The Delivery API returns versioned JSON for items, types, and taxonomies so editors can publish from Kontent.ai while the site updates without a redeploy. A typical Jamstack integration takes a day to wire up listing and detail pages against /items and /items/{codename}.

Example prompt: Fetch the first 20 published items of type 'article' in language 'en-US' from /items and return their codenames and titles.

### Localized content rendering

Serve content in multiple languages from a single Kontent.ai project by enumerating configured languages via /languages and requesting items with a language parameter. Editors maintain translations in the CMS while the application picks the correct variant per user locale. This pattern is used by content teams shipping in 5-30 languages without duplicating the content tree.

Example prompt: Call /languages to list configured locales, then fetch /items/homepage with the language code 'fr-FR' and return the rendered fields.

### Taxonomy-driven navigation

Build category and tag-based navigation by reading taxonomy groups from /taxonomies and matching content items by their taxonomy element values. Editors curate the taxonomy in Kontent.ai and the front end uses it to render filter facets, related content lists, and section pages. Implementation typically takes a few hours once the content model is finalised.

Example prompt: Get the 'topics' taxonomy group from /taxonomies/topics and list all terms with their codenames.

### Agent-driven content retrieval via Jentic

An AI agent searches Jentic for 'fetch published content items' and receives the Kontent.ai Delivery API operation with its input schema. The agent supplies the environment ID and content type, executes the call through Jentic, and receives structured JSON without needing to read Kontent.ai documentation or handle the API key directly - Jentic keeps the key in your Jentic One instance and injects it at runtime.

Example prompt: Use the Jentic MCP tool kontent_list_items to fetch the latest 5 items of type 'product' and summarise their fields.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /items | List content items |
| GET | /items/{codename} | Get a single content item |
| GET | /types | List content types |
| GET | /types/{codename}/elements/{element_codename} | Get a content type element |
| GET | /languages | List configured languages |
| GET | /taxonomies | List taxonomy groups |

## Key resources

- **Items** — List and retrieve published content items by codename, with filtering, ordering, and pagination
- **Types** — List content types and inspect their element definitions
- **Languages** — Enumerate languages configured in the project
- **Taxonomies** — List taxonomy groups and retrieve a single group with all its terms

## Why Jentic

- **Setup:** Wiring the Kontent.ai Delivery API by hand means passing your key as a Bearer value in the Authorization header and building the environment id into the deliver.kontent.ai host for every request. Through Jentic you install once, import the Kontent.ai Delivery API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** This is a read-only delivery surface, so scope the agent to the operations it needs, such as listing items or fetching a single item by codename. You choose that set, so it retrieves published content and does nothing that would author or change it.
- **Credential handling:** Your Kontent.ai Delivery key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'fetch published content items' or 'list content types', and Jentic returns the matching Kontent.ai operation with its input schema so the agent calls /items or /types without browsing the reference docs.

## Related APIs

- **Contentful** — Headless CMS with a similar Delivery API for fetching published content
- **Sanity** — Headless CMS with GROQ queries instead of REST item lookups
- **Storyblok** — Visual headless CMS with a comparable content delivery REST API
- **Prismic** — Slice-based headless CMS often used alongside other content sources

## FAQ

### Why is there no official OpenAPI spec for Kontent.ai Delivery API?

Kontent.ai does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Kontent.ai Delivery API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Kontent.ai Delivery API use?

The Delivery API uses an API key passed in the request header (apiKeyAuth scheme). Jentic stores this key encrypted in your Jentic One instance and injects it per request - the agent never sees the raw key in its context.

### Can I fetch content in a specific language with the Kontent.ai Delivery API?

Yes. Call GET /languages to list locales configured for the environment, then pass the language codename when requesting /items or /items/{codename} to receive that language variant.

### What are the rate limits for the Kontent.ai Delivery API?

Kontent.ai applies rate limits at the project and CDN tier rather than per endpoint, with the exact ceiling depending on your subscription. Cache responses where possible and use the published content cache hints returned in response headers.

### How do I list all content types through Jentic?

Search Jentic for 'list content types kontent' and load the GET /types operation. Execute it with your environment_id and the call returns all types and their element definitions in a single JSON response.

### Does the Delivery API support content management operations?

No. The Delivery API is read-only for published content. Creating, updating, or unpublishing content uses the separate Kontent.ai Management API, which is not covered by this spec.

### Can I limit what my agent is allowed to do with the Kontent.ai Delivery API?

Yes. Because you run Jentic One yourself, your own rules decide which Kontent.ai Delivery operations and credentials the agent may use, so you grant only the calls it needs. The Delivery API is read-only, so you might allow listing content items via GET /items and fetching a single item with GET /items/{codename} while withholding GET /types, GET /languages, or GET /taxonomies. The agent can retrieve published content it is scoped to and nothing more, and it never authors or changes content.
