> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://contentful.com/developers/docs/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://contentful.com/_mcp/server. > **Info** > > Taxonomy's infrastructure is not a dedicated infrastructure because it doesn't rely on reserved capacity specifically for storing, indexing, and delivering content for a single customer. Instead, it operates within a shared or multi-tenant environment, organizing content across various entities without the need for exclusive infrastructure. ## Concept Return, update or delete a single concept. [Get a concept](/references/content-management-api/taxonomy/get-a-concept) [Update a concept](/references/content-management-api/taxonomy/update-a-concept) Update a single concept using [JSON Patch](http://jsonpatch.com/) format. When patching a concept, you need to specify the current version of the concept you are updating with `X-Contentful-Version`. > **Info** > > JSON Patch cannot perform operations on non-existent fields. If a field has not been set on the concept yet, the API will return a validation error when you try to perform an operation on this field. The accepted workaround is to pass the entire sub-object to the top-most existing field. ```js // may result in a validation error if `note` field is undefined: [{"op": "add", "path": "/note/en-US", "value": "Some note"}] // if the `note` field is undefined, provide the locale in the payload: [{"op": "add", "path": "/note", "value": {"en-US": "Some note"}}] ``` [Delete a concept](/references/content-management-api/taxonomy/delete-a-concept) *Deleting concepts does not remove existing references to them in content type validations, or entries.* ## Create a concept Create a single taxonomy concept. [Create a concept](/references/content-management-api/taxonomy/create-a-concept) ## Create a concept with user-defined ID Creates a single taxonomy concept with a user-defined ID. [Create a concept with user-defined ID](/references/content-management-api/taxonomy/create-a-concept-with-user-defined-id) ## Concept collection Return a list of taxonomy concepts for an organization. [Get concepts](/references/content-management-api/taxonomy/get-concepts) #### Filters There are following filters available on this endpoint: | Filter | Description | | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | `limit` | Limits the maximum number of concepts returned (per page) | | `pageNext` | Pagination cursor from which to return the next page of concepts. Alternatively, just call the url at `pages.next` in the previous response | | `pagePrev` | Pagination cursor from which to return the previous page of concepts. Alternatively, just use the full url from `pages.prev` in the previous response | | `order` | Returns results ordered by the value specified. Supports `sys.updatedAt`, `sys.createdAt`, `prefLabel` | | `conceptScheme` | Return only concepts belonging to the specified concept scheme | | `query` | Filter results using a full-text search query, looking at `prefLabel`, `altLabels`, `hiddenLabels` and `notations` fields | | `sys.id[in]` | Return only the concepts matching the given comma-separated list of concept IDs | ## Descendants Return a taxonomy concept's list of descendants. [Get descendants of a concept](/references/content-management-api/taxonomy/get-descendants-of-a-concept) ## Ancestors Return a taxonomy concept's list of ancestors. [Get ancestors of a concept](/references/content-management-api/taxonomy/get-ancestors-of-a-concept) ## Total concepts Return the number of taxonomy concepts in an organization. [Get number of concepts](/references/content-management-api/taxonomy/get-number-of-concepts) ## Concept scheme Return a single a taxonomy concept scheme. [Get a concept scheme](/references/content-management-api/taxonomy/get-a-concept-scheme) [Update a concept scheme](/references/content-management-api/taxonomy/update-a-concept-scheme) Update a single concept scheme using [JSON Patch](http://jsonpatch.com/) format. When patching a concept scheme, you need to specify the current version of the concept scheme you are updating with `X-Contentful-Version`. > **Info** > > JSON Patch cannot perform operations on non-existent fields. If a field has not been set on the concept scheme yet, the API will return a validation error when you try to perform an operation on this field. The accepted workaround is to pass the entire sub-object to the top-most existing field. ```js // may result in a validation error if `definition` field is undefined: [{"op": "add", "path": "/definition/en-US", "value": "Some definition"}] // if the `definition` field is undefined, provide the locale in the payload: [{"op": "add", "path": "/definition", "value": {"en-US": "Some definition"}}] ``` [Delete a concept scheme](/references/content-management-api/taxonomy/delete-a-concept-scheme) ## Create a concept scheme Creates a new taxonomy concept scheme. [Create a concept scheme](/references/content-management-api/taxonomy/create-a-concept-scheme) ## Create a concept scheme with user-defined ID Creates a new taxonomy concept scheme with a user-defined ID. [Create a concept scheme with user-defined ID](/references/content-management-api/taxonomy/create-a-concept-scheme-with-user-defined-id) ## Concept scheme collection Return a list of taxonomy concept schemes. [Get concept schemes](/references/content-management-api/taxonomy/get-concept-schemes) ## Total concept schemes Return the number of taxonomy concept schemes in an organization. [Get number of concept schemes](/references/content-management-api/taxonomy/get-number-of-concept-schemes) ## Querying content based on a set of concepts The query parameter starts with `metadata.concepts.sys.id` with operator `[all]`. To retrieve entries that match a set of concepts values, use the [Get all entries of a space](/references/content-management-api/entries/get-all-entries-of-a-space) endpoint with query parameter: `metadata.concepts.sys.id[all]=conceptA,conceptB` Returns a list of entries according to one or more of the specified concept IDs. ## Querying content based on one or more concepts The query parameter starts with `metadata.concepts.sys.id` with operator `[in]`. To retrieve entries that match at least one of the specified concepts values, use the [Get all entries of a space](/references/content-management-api/entries/get-all-entries-of-a-space) endpoint with query parameter: `metadata.concepts.sys.id[in]=conceptA,conceptB` Returns a list of entries according to the specified set of concept IDs. ## Querying content based on one or more concepts and their descendants The query parameter starts with `metadata.concepts.descendants` with operator `[in]`. To retrieve entries that match at least one of the specified concepts values or their descendants, use the [Get all entries of a space](/references/content-management-api/entries/get-all-entries-of-a-space) endpoint with query parameter: `metadata.concepts.descendants[in]=conceptA,conceptB` Returns a list of entries according to the specified set of concept IDs and their descendant concepts. ## Taxonomy on content types Once a concept or concept scheme is created on the organization, users can define taxonomy validations on content types within an environment. This allows users to assign/change or remove concepts on entries. **Note:** * Content types payload comes with a `metadata` property. This metadata property has as its value a `taxonomy` list. The taxonomy list contains links to all the concepts and concept schemes assigned to that content type. Use the [Create a content type with PUT](/references/content-management-api/content-types) endpoint to add or remove concepts or concept schemes from a content type by updating the `metadata.taxonomy` property. Returns a specified content type with a new metadata property. The metadata property holds the list of concepts added. ## Concepts on entries Once a concept or concept scheme has been assigned to a content type within an environment, users can assign/remove concepts on entries. **Note:** * Entries payload come with a `metadata` property. This metadata property has as its value a `concepts` list. The concepts list contains links to all the concepts assigned to that entry. * You can query for entries by their concepts. For entries, the search is across content types. * Concept assignment is not localized. A concept is assigned once in `metadata.concepts` and applies to the entry across all of its locales — there is no per-locale assignment. A concept's localized labels (`prefLabel`, `altLabels`, notes, and so on) live on the concept itself, so all of a concept's translations are available automatically once it is assigned. You do not need to change the active locale to assign a localized concept. Use the [Create an entry with ID](/references/content-management-api/entries/create-an-entry-with-a-specified-id) endpoint to add or remove concepts from an entry by updating the `metadata.concepts` property. Returns a specified entry with a new metadata property. The metadata property holds the list of concepts added. ## Concepts on assets Once a concept has been created, users can assign/remove concepts on assets. **Note:** * Assets payload come with a `metadata` property. This metadata property has as its value a `concepts` list. The concepts list contains links to all the concepts assigned to that entry. * You can query for assets by their concepts. * Concept assignment is not localized. A concept is assigned once in `metadata.concepts` and applies to the asset across all of its locales — there is no per-locale assignment. A concept's localized labels (`prefLabel`, `altLabels`, notes, and so on) live on the concept itself, so all of a concept's translations are available automatically once it is assigned. Use the [Create an asset with ID](/references/content-management-api/assets) endpoint to add or remove concepts from an asset by updating the `metadata.concepts` property. Returns a specified asset with a new metadata property. The metadata property holds the list of concepts added. ## API Docs - Taxonomy [Get a concept](https://contentful.com/developers/docs/references/content-management-api/taxonomy/get-a-concept.md) - Taxonomy [Create a concept with user-defined ID](https://contentful.com/developers/docs/references/content-management-api/taxonomy/create-a-concept-with-user-defined-id.md) - Taxonomy [Delete a concept](https://contentful.com/developers/docs/references/content-management-api/taxonomy/delete-a-concept.md) - Taxonomy [Update a concept](https://contentful.com/developers/docs/references/content-management-api/taxonomy/update-a-concept.md) - Taxonomy [Get concepts](https://contentful.com/developers/docs/references/content-management-api/taxonomy/get-concepts.md) - Taxonomy [Create a concept](https://contentful.com/developers/docs/references/content-management-api/taxonomy/create-a-concept.md) - Taxonomy [Get descendants of a concept](https://contentful.com/developers/docs/references/content-management-api/taxonomy/get-descendants-of-a-concept.md) - Taxonomy [Get ancestors of a concept](https://contentful.com/developers/docs/references/content-management-api/taxonomy/get-ancestors-of-a-concept.md) - Taxonomy [Get number of concepts](https://contentful.com/developers/docs/references/content-management-api/taxonomy/get-number-of-concepts.md) - Taxonomy [Get a concept scheme](https://contentful.com/developers/docs/references/content-management-api/taxonomy/get-a-concept-scheme.md) - Taxonomy [Create a concept scheme with user-defined ID](https://contentful.com/developers/docs/references/content-management-api/taxonomy/create-a-concept-scheme-with-user-defined-id.md) - Taxonomy [Delete a concept scheme](https://contentful.com/developers/docs/references/content-management-api/taxonomy/delete-a-concept-scheme.md) - Taxonomy [Update a concept scheme](https://contentful.com/developers/docs/references/content-management-api/taxonomy/update-a-concept-scheme.md) - Taxonomy [Get concept schemes](https://contentful.com/developers/docs/references/content-management-api/taxonomy/get-concept-schemes.md) - Taxonomy [Create a concept scheme](https://contentful.com/developers/docs/references/content-management-api/taxonomy/create-a-concept-scheme.md) - Taxonomy [Get number of concept schemes](https://contentful.com/developers/docs/references/content-management-api/taxonomy/get-number-of-concept-schemes.md) ## OpenAPI Specification The raw OpenAPI 3.1 specification for this API is available at: - [OpenAPI JSON](https://contentful.com/developers/docs/openapi.json) - [OpenAPI YAML](https://contentful.com/developers/docs/openapi.yaml)