---
title: "Search entities"
method: POST
path: "/api/v1/entities/search"
tags: ["Entities Management"]
---

# Search entities

`POST /api/v1/entities/search`

Search for entities across all templates using nested filter queries. Supports complex logical compositions (AND / OR) of filter criteria on template, identifier, name, properties, relations, and reverse relations.

## Request body

- EntitySearchRequestDtoIn — Request body for the POST /api/v1/entities/search endpoint
  - `query` string — Free-text search string. When present, returns entities whose identifier, name, templateIdentifier, or any property value contains this string (case-insensitive). Can be combined with filter.
  - `filter` FilterNodeDtoIn — A node in the search filter tree. Either a logical group (connector + criteria) or a leaf criterion (field + operation + value).
    - `connector` string — Logical connector for a group node. One of: AND, OR. Required for group nodes.
    - `criteria` FilterNodeDtoIn[] — Child filter nodes for a group node. Required for group nodes (must be non-empty).
    - `field` string — Field to filter on for a criterion node. Required for leaf nodes. Examples: template, identifier, name, relation, property.language, relation.api-link, relation.api-link.identifier, relations_as_target.api-link.name
    - `operation` string — Filter operation for a criterion node. One of: EQ, NEQ, CONTAINS, NOT_CONTAINS, STARTS_WITH, ENDS_WITH, GT, GTE, LT, LTE. Required for leaf nodes.
    - `value` string — Value to compare against for a criterion node. Required for leaf nodes.
  - `page` integer — Page number for pagination. Defaults to 0.
  - `size` integer — Number of items per page. Defaults to 20.
  - `sort` string — Sorting criteria in the format: property(,asc|desc). Defaults to identifier,asc.

## Response `200`

Entities retrieved successfully

## Other responses

- `400` — Invalid search filter

## Changes

- **2026-08-26** `e6f6d45eade3` — 1 warning, 1 info
  - removed the optional property `errorDescription` from the response with the `400` status
  - added the optional property `error_description` to the response with the `400` status
- **2026-08-06** `7e634c43bc1b` — 1 warning, 1 info
  - removed the optional property `content/items/relations_as_target` from the response with the `200` status
  - added the optional property `content/items/relations/additionalProperties/items/template_identifier` to the response with the `200` status
- **2026-06-23** `e29b86a4899f` — 1 info
  - endpoint added
- **2026-04-08** `88fc145b6397` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/decathlon/apis/idp-core-api/changes/api/v1/entities/search/post.md)

---

[API](https://skmtc.dev/decathlon/apis/idp-core-api.md) · [All operations](https://skmtc.dev/decathlon/apis/idp-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/decathlon/idp-core-api/revisions/5081d87614ba/schema)
