> 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/developers/docs/_mcp/server.

# Taxonomy

[Taxonomy](https://www.contentful.com/help/taxonomy/) `concepts` IDs associated with entries and assets can be resolved under the `contentfulMetadata` field:

```graphql
query {
  articleCollection {
    items {
      contentfulMetadata {
        concepts {
          id
        }
      }
    }
  }
}
```

You can also filter entry queries by concept IDs that have been referenced directly. To filter the entries, you need to know the concept ID. It can be found inside the URL path in the web app.

To find the concept ID:

1. Open the **Organization settings & subscriptions**.
2. Navigate to the **Taxonomy manager** tab.
3. Click on a concept. The ID is the final URL segment.

```graphql
query {
  articleCollection(
    where: {
      contentfulMetadata: {
        concepts_exists: true
        concepts: {
          id_contains_some: ["conceptId_3", "conceptId_4"]
          id_contains_none: ["conceptId_1", "conceptId_2"]
          id_contains_all: ["conceptId_0", "conceptId_00"]
        }
      }
    }
  ) {
    items {
      title
    }
  }
}
```

Additionally, you can use the `descendants` filter to return any entries which have Taxonomy concepts that reference the supplied concept IDs or their children.

```graphql
query {
  articleCollection(
    where: {
      contentfulMetadata: {
        concepts: {
          descendants: {
            id_contains_some: ["conceptId_3", "conceptId_4"]
            id_contains_none: ["conceptId_1", "conceptId_2"]
            id_contains_all: ["conceptId_0", "conceptId_00"]
          }
        }
      }
    }
  ) {
    items {
      title
    }
  }
}
```