---
updatedAt: 2026-09-18T15:44:05.000Z
agentTools:
  projectIndex: https://docs.sumsub.com/llms.txt
---

# Get cases by filters

# Overview

Use this method to search for cases in [Case Management](https://docs.sumsub.com/sumsub/docs/case-management) using [complex, multi-level filter criteria](#criteria-logic). The endpoint supports both direct lookup by case ID and structured field-based filtering with logical grouping.

The response returns **full case data**, matching the detail level available in the Case Management UI, with one exception: applicant-level AML screenings are not included — see [About amlCases](#about-amlcases) below. Aside from that, this ensures that all required information is available in a single request without the need for additional follow-up calls.

The `ids` and `criteria` parameters can be used together in the same request. When both are present, results matching either condition are included in the response.

## Required permissions

To use this method, your [app token](https://docs.sumsub.com/sumsub/docs/app-tokens) must have the following [permissions](https://docs.sumsub.com/sumsub/docs/user-roles#permissions):

* **View case management**
* **View applicant's personal data**

## About `amlCases`&#x20;

`amlCases` reflects only the AML screenings tied to a **transaction** referenced by this case — specifically, screenings run against the transaction's counterparty, the involved financial institution, or its payment method/details. It is populated (and the field is present at all) only when at least one such transaction-level screening exists for the case.

**It does not include the applicant's own AML screening.** The Case Management UI's AML tab also shows the applicant's most recent AML screening independently of any transaction-linked screening — so it is expected and correct for a case to display an AML tab in the UI while `amlCases` is completely absent from this endpoint's response for that same case.

To retrieve the applicant's AML screening data, take `applicantReference.applicantId` from this response and call [Get AML case data](https://docs.sumsub.com/sumsub/reference/get-aml-case-data) with that applicant ID.

<Callout icon="📘" theme="info">
  ### Notes

  - The request body must be a non-empty object. Sending an empty body, omitting both `ids` and `criteria`, or referencing field names that are not part of the available filters list results in an HTTP `400 Bad Request` error.
  - This endpoint is available **only in the paid version** of [Case Management 2.0](https://docs.sumsub.com/sumsub/docs/migrating-to-case-management-20) and does not apply to earlier versions.
  - You can retrieve available case filters via the [Get available case filters](https://docs.sumsub.com/reference/get-available-case-filters) method.
</Callout>

## Criteria logic

Construct the request based on the required purpose. The `criteria` array accepts two types of objects:

### `SerializedComplexCriteria`

Used for grouping conditions. Includes the following fields:

| Field      | Type             | Description                                                                                                                                        |
| ---------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `op`       | String           | [Logical operator](#logical-operators). Accepted values: `$and`, `$or`.                                                                            |
| `children` | Array of objects | Nested list of criteria objects, which can themselves be `SerializedComplexCriteria` and/or [`SerializedFieldCriteria`](#serializedfieldcriteria). |

### Logical operators

The following operators are supported in `SerializedComplexCriteria`:

| Operator | Description                                                              |
| -------- | ------------------------------------------------------------------------ |
| `$and`   | Returns results that match **all** of the specified conditions.          |
| `$or`    | Returns results that match **at least one** of the specified conditions. |

**Example:**

```json
{
  "op": "$and",
  "children": [
    {
      "field": "caseReview.status",
      "op": "=",
      "values": [
        "pending"
      ]
    },
    {
      "op": "$or",
      "children": [
        {
          "field": "createdAt",
          "op": ">=",
          "values": [
            "2025-12-09 00:00:00"
          ]
        },
        {
          "field": "updatedAt",
          "op": ">=",
          "values": [
            "2025-12-09 00:00:00"
          ]
        }
      ]
    },
    {
      "field": "createdByType",
      "op": "=",
      "values": [
        "user"
      ]
    }
  ]
}
```

### `SerializedFieldCriteria`

Used for field-level matching. Includes the following fields:

| Field    | Type             | Description                                                                                                                              |
| -------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `field`  | String           | Name of the case field to filter on. Must be one of the [available case filters](https://docs.sumsub.com/sumsub/reference/get-available-case-filters#available-search-keys) . |
| `op`     | String           | [Comparison operator](#comparison-operator). Accepted values: `=`, `<>`, `>`, `>=`, `<`, `<=`, `$all`, `$contains`.                      |
| `values` | Array of strings | List of values to compare the field against.                                                                                             |

### Comparison operators

The following operators are supported in `SerializedFieldCriteria`:

| Operator    | Description                                                                                |
| ----------- | ------------------------------------------------------------------------------------------ |
| `=`         | **Exact match**. The field value must equal the specified value.                           |
| `<>`        | **Not equal**. The field value must differ from the specified value.                       |
| `>`         | **Greater than**. Applicable to numeric and date fields.                                   |
| `>=`        | **Greater than or equal to**. Applicable to numeric and date fields.                       |
| `<`         | **Less than**. Applicable to numeric and date fields.                                      |
| `<=`        | **Less than or equal to**. Applicable to numeric and date fields.                          |
| `$all`      | **All values match**. The field must contain all values specified in the `values` array.   |
| `$contains` | **Contains match**. The field value must match at least one value from the `values` array. |

**Example:**

```json
{
  "field": "caseReview.status",
  "op": "=",
  "values": [
    "pending",
    "open"
  ]
}
```

# Request examples

```curl Common
// Average exanple with dummy data.

curl -X POST \
     'https://api.sumsub.com/resources/api/caseManagement/v2/cases/byFilter?limit=100&countTotalItems=false' \
     -H 'content-type: application/json'
     -H 'X-App-Token: <your-app-token>' \
     -H 'X-App-Access-Sig: <your-signature>' \
     -H 'X-App-Access-Ts: <unix-timestamp>' \
     -d '{
           "ids": [
             "caseId1",
             "caseId2"
           ],
           "criteria": [
             {
               "op": "$and",
               "children": [
                 {
                   "field": "caseReview.status",
                   "op": "=",
                   "values": [
                     "pending"
                   ]
                 },
                 {
                   "op": "$or",
                   "children": [
                     {
                       "field": "createdAt",
                       "op": ">=",
                       "values": [
                         "2025-12-09 00:00:00+0000"
                       ]
                     },
                     {
                       "field": "updatedAt",
                       "op": ">=",
                       "values": [
                         "2025-12-09 00:00:00+0000"
                       ]
                     }
                   ]
                 },
                 {
                   "field": "createdByType",
                   "op": "=",
                   "values": [
                     "user"
                   ]
                 }
               ]
             }
           ]
         }'
```
```curl Complex example
// The following example retrieves cases that were created after January 1, 2024 and have a status of either `open` or `pending`, sorted from newest to oldest, with a total item count included.

curl -X POST \
     'https://api.sumsub.com/resources/api/caseManagement/v2/cases/byFilter?offset=0&limit=50&order=-createdAt&countTotalItems=true' \
     -H 'Content-Type: application/json' \
     -H 'X-App-Token: <your-app-token>' \
     -H 'X-App-Access-Sig: <your-signature>' \
     -H 'X-App-Access-Ts: <unix-timestamp>' \
     -d '{
            "criteria": [
              {
                "op": "$and",
                "children": [
                  {
                    "field": "createdAt",
                    "op": ">",
                    "values": ["2024-01-01 00:00:00+0000"]
                  },
                  {
                    "field": "status",
                    "op": "$contains",
                    "values": ["open", "pending"]
                  }
                ]
              }
            ]
          }'
```
```curl By case IDs
// The following example retrieves a specific set of cases by their IDs.

curl -X POST \
     'https://api.sumsub.com/resources/api/caseManagement/v2/cases/byFilter' \
     -H 'Content-Type: application/json' \
     -H 'X-App-Token: <your-app-token>' \
     -H 'X-App-Access-Sig: <your-signature>' \
     -H 'X-App-Access-Ts: <unix-timestamp>' \
     -d '{
            "ids": [
                "case_001abc",
                "case_002def",
                "case_003ghi"
            ]
         }'
```
```curl By applicantId
// The following example retrieves open cases associated with the applicant with `applicant_id`, within the blueprint `blueprint_id`, created after March 17.

curl -X POST \
     'https://api.sumsub.com/resources/api/caseManagement/v2/cases/byFilter' \
     -H 'Content-Type: application/json' \
     -H 'X-App-Token: <your-app-token>' \
     -H 'X-App-Access-Sig: <your-signature>' \
     -H 'X-App-Access-Ts: <unix-timestamp>' \
     -d '{
            "ids": [],
            "criteria": [
              {
                "field": "caseReview.status",
                "op": "=",
                "values": ["open"]
              }, {
                "field": "applicantReference.applicantId",
                "op": "=",
                "values": ["applicant_id"]
              },
              {
                "field": "blueprintReference.blueprintId",
                "op": "=",
                "values": ["blueprint_id"]
              }, {
                "field": "createdAt",
                "op": ">=",
                "values": ["2026-03-17 00:00:00+0000"]  
              }
            ]
         }'
```

# Response explained

A successful response returns a paginated list of full case objects wrapped in a `list` object.

## Top-level fields

| Field             | Type                                      | Description                                                                                   |
| :---------------- | :---------------------------------------- | :-------------------------------------------------------------------------------------------- |
| `list`            | Object                                    | Wrapper object containing results and pagination metadata.                                    |
| `list.items`      | [Array of objects](#items-element-fields) | List of case objects matching the filter criteria.                                            |
| `list.totalItems` | Integer                                   | Total number of matching cases. Only present when `countTotalItems=true` is set in the query. |
| `list.pageInfo`   | [Object](#pageinfo-attributes)            | Pagination details for the current response.                                                  |

## `pageInfo` attributes

The table describes the `pageInfo` attributes.

| Field    | Type    | Description                                        |
| :------- | :------ | :------------------------------------------------- |
| `limit`  | Integer | Maximum number of items returned in this response. |
| `offset` | Integer | Offset used for this page of results.              |

## `items` element fields

Each item object represents an individual case entity matching the filter criteria specified in the request.

<Table align={["left","left","left"]}>
  <thead>
    <tr>
      <th>
        Field
      </th>

      <th>
        Type
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `id`
      </td>

      <td>
        String
      </td>

      <td>
        Unique case identifier.
      </td>
    </tr>

    <tr>
      <td>
        `name`
      </td>

      <td>
        String
      </td>

      <td>
        Case name.
      </td>
    </tr>

    <tr>
      <td>
        `applicantReference`
      </td>

      <td>
        [Object](#applicantreference-attributes)
      </td>

      <td>
        Reference data for the applicant associated with the case.
      </td>
    </tr>

    <tr>
      <td>
        `createdByType`
      </td>

      <td>
        String
      </td>

      <td>
        Indicates the type of entity that created the case.
        Possible values: `byOfficer`, `byRule`, `byWorkflow`, `byOngoingAmlHit`, `byApi`.
      </td>
    </tr>

    <tr>
      <td>
        `groupByType`
      </td>

      <td>
        String
      </td>

      <td>
        Grouping type used for the case.
      </td>
    </tr>

    <tr>
      <td>
        `createdByRule`
      </td>

      <td>
        [Object](#createdbyrule-attributes)
      </td>

      <td>
        Information about the rule that created the case.
        Returned only if `"createdByType": "byRule"`.
      </td>
    </tr>

    <tr>
      <td>
        `createdByOfficer`
      </td>

      <td>
        String
      </td>

      <td>
        Officer's identifier.
        Returned only if `"createdByType": "byOfficer"`.
      </td>
    </tr>

    <tr>
      <td>
        `createdByWorkflowRef`
      </td>

      <td>
        Object
      </td>

      <td>
        Information about the workflow that created the case.
        Returned only if `"createdByType": "byWorkflow"`.
      </td>
    </tr>

    <tr>
      <td>
        `createdAt`
      </td>

      <td>
        Date
      </td>

      <td>
        Date and time when the case was created, in the format `yyyy-MM-dd HH:mm:ssZZ`.
      </td>
    </tr>

    <tr>
      <td>
        `updatedAt`
      </td>

      <td>
        Date
      </td>

      <td>
        Date and time when the case was last updated, in the format `yyyy-MM-dd HH:mm:ssZZ`.
      </td>
    </tr>

    <tr>
      <td>
        `totalAmountInDefaultCurrency`
      </td>

      <td>
        Double
      </td>

      <td>
        Total amount of all transactions submitted for the case, in the default currency.
        Returned if at least one transaction was submitted in the request.
      </td>
    </tr>

    <tr>
      <td>
        `clientId`
      </td>

      <td>
        String
      </td>

      <td>
        Unique identifier of you as our client in the Sumsub system.
        This identifier is assigned to you when you are registered in and get access to the Sumsub system. It usually resembles your name or your company name. `clientId` is automatically added to the applicant profile when it is created.
      </td>
    </tr>

    <tr>
      <td>
        `review`
      </td>

      <td>
        [Object](#review-attributes)
      </td>

      <td>
        Includes case review data.
        **Note:** This field is deprecated and will be removed once KM1 support ends.
      </td>
    </tr>

    <tr>
      <td>
        `applicantInfo`
      </td>

      <td>
        [Object](#applicantinfo-attributes)
      </td>

      <td>
        General information about the applicant associated with the case.
      </td>
    </tr>

    <tr>
      <td>
        `blueprintReference`
      </td>

      <td>
        [Object](#blueprintreference-attributes)
      </td>

      <td>
        Includes reference data of the blueprint assigned to the case.
      </td>
    </tr>

    <tr>
      <td>
        `caseReview`
      </td>

      <td>
        [Object](#casereview-attributes)
      </td>

      <td>
        The current review state and checklist of the case.
      </td>
    </tr>

    <tr>
      <td>
        `amlCases`
      </td>

      <td>
        [Array of objects](#amlcases)
      </td>

      <td>
        AML screenings performed on **transaction-related entities** referenced by this case (counterparty, financial institution, or payment method). **Not** the applicant's own AML screening — see [About amlCases](#about-amlcases). Omitted entirely when the case has no such transaction-level screening.
      </td>
    </tr>

    <tr>
      <td>
        `priority`
      </td>

      <td>
        String
      </td>

      <td>
        Case priority (`low`, `medium`, `high`). Defaults to `medium`.
      </td>
    </tr>

    <tr>
      <td>
        `sourceKeys`
      </td>

      <td>
        Array of strings
      </td>

      <td>
        A list of [source keys](https://docs.sumsub.com/sumsub/docs/source-keys) that help you group clients sending applicants.
      </td>
    </tr>

    <tr>
      <td>
        `tags`
      </td>

      <td>
        Array of strings
      </td>

      <td>
        A list of [transaction tags](https://docs.sumsub.com/sumsub/docs/use-transaction-tags) assigned to the case.
      </td>
    </tr>
  </tbody>
</Table>

## `applicantReference` attributes

This table describes the `applicantReference` attributes.

| Field         | Type   | Description                                              |
| :------------ | :----- | :------------------------------------------------------- |
| `applicantId` | String | Unique identifier of the applicant in the Sumsub system. |
| `fullName`    | String | Applicant's full name.                                   |

## `createdByRule` attributes

Returned only if `"createdByType": "byRule"`.

| Field      | Type    | Description                    |
| :--------- | :------ | :----------------------------- |
| `id`       | String  | Unique identifier of the rule. |
| `name`     | String  | Name of the rule.              |
| `title`    | String  | Display name of the rule.      |
| `revision` | Integer | Revision number.               |

## `createdByWorkflowRef` attributes

Returned only if `"createdByType": "byWorkflow"`.

| Field   | Type   | Description                           |
| :------ | :----- | :------------------------------------ |
| `id`    | String | Unique identifier of the workflow.    |
| `title` | String | Name of the action from the workflow. |

## `review` attributes

This table describes the `review` attributes.

| Field          | Type    | Description                                                                                                   |
| :------------- | :------ | :------------------------------------------------------------------------------------------------------------ |
| `reviewId`     | String  | Unique review identifier.                                                                                     |
| `attemptId`    | String  | Unique identifier of the current case verification attempt.                                                   |
| `attemptCnt`   | Integer | Sequential number of the current case verification attempt.                                                   |
| `createDate`   | Date    | Date and time when the case review was initiated in the Sumsub system, in the format `yyyy-MM-dd HH:mm:ssZZ`. |
| `reviewStatus` | String  | Case review status (for example, `init`).                                                                     |

## `applicantInfo` attributes

This table describes the `applicantInfo` attributes.

| Field          | Type             | Description                                                                                                                |
| :------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------- |
| `firstName`    | String           | Applicant's first name in the original language.                                                                           |
| `firstNameEn`  | String           | Automatic's transliteration of the applicant first name into Latin characters.                                             |
| `middleName`   | String           | Applicant's middle name in the original language.                                                                          |
| `middleNameEn` | String           | Automatic's transliteration of the applicant middle name into Latin characters.                                            |
| `lastName`     | String           | Applicant's last name in the original language.                                                                            |
| `lastNameEn`   | String           | Automatic's transliteration of the applicant last name into Latin characters.                                              |
| `dob`          | String           | Applicant's date of birth as a Unix timestamp in milliseconds.                                                             |
| `country`      | String           | Applicant's country as an ISO 3166-1 alpha-3 country code (for example, `DEU`, `GBR`, `ARG`)..                             |
| applicantTags  | Array of strings | [Tags](https://docs.sumsub.com/sumsub/docs/add-applicant-tags) currently assigned to the applicant. Returned only when the applicant has one or more tags. |

## `blueprintReference` attributes

This table describes the `blueprintReference` attributes.

| Field         | Type   | Description                         |
| :------------ | :----- | :---------------------------------- |
| `name`        | String | Name of the assigned blueprint.     |
| `blueprintId` | String | Unique identifier of the blueprint. |

## `caseReview` attributes

The table describes the `caseReview` attributes.

<Table align={["left","left","left"]}>
  <thead>
    <tr>
      <th>
        Field
      </th>

      <th>
        Type
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `status`
      </td>

      <td>
        String
      </td>

      <td>
        Current status of the case review.
        Possible values: `open`, `awaitingUser`, `blocked`, `resolvedFalsePositive`, `resolvedPotentialThreat`.
      </td>
    </tr>

    <tr>
      <td>
        `stage`
      </td>

      <td>
        String
      </td>

      <td>
        Custom name of the case review stage.
      </td>
    </tr>

    <tr>
      <td>
        `assignee`
      </td>

      <td>
        String
      </td>

      <td>
        Login of the user assigned to the case (usually a corporate email address, for example: `john.doe@company.com`).
      </td>
    </tr>

    <tr>
      <td>
        `startDate`
      </td>

      <td>
        Date
      </td>

      <td>
        Date and time when the case was created, in the format `yyyy-MM-dd HH:mm:ssZZ`.
      </td>
    </tr>

    <tr>
      <td>
        `checklistState`
      </td>

      <td>
        [Object](#checkliststatechecklist)
      </td>

      <td>
        Checklist state associated with the case.
      </td>
    </tr>
  </tbody>
</Table>

## `checklistState.checklist[]`

| Field     | Type    | Description                                                                  |
| :-------- | :------ | :--------------------------------------------------------------------------- |
| `name`    | String  | The name of the checklist item.                                              |
| `checked` | Boolean | Indicates whether the checklist item is completed (`true`) or not (`false`). |

## `amlCases[]`

| Field       | Type   | Description                        |
| :---------- | :----- | :--------------------------------- |
| `amlCaseId` | String | Unique identifier of the AML case. |

<br />

# Response examples

If the request is successfully sent and processed, you will get a response like one of the following:

```json With amlCases entry
// This case is created by a rule that screens the transaction counterparty, so it carries a transaction-level `amlCases` entry.

{
  "list": {
    "items": [
      {
        "id": "69ce2a555b353c0000000000",
        "name": "Check counterparty for AML (sanctions, peps, etc.) - John Doe",
        "applicantReference": {
          "applicantId": "69a6974e0ad36b0000000000",
          "fullName": "John Doe"
        },
        "createdByType": "byRule",
        "groupByType": "byRule",
        "createdByRule": {
          "id": "6970bfd90eefbc0000000000",
          "name": "che-cou-for-aml-san-peps-etc-DKsb",
          "title": "Check counterparty for AML (sanctions, peps, etc.)",
          "revision": 3
        },
        "createdAt": "2026-04-02 08:35:33+0000",
        "updatedAt": "2026-04-02 08:35:33+0000",
        "totalAmountInDefaultCurrency": 50000,
        "clientId": "your_cool_id",
        "review": {
          "reviewId": "KlLJY",
          "attemptId": "sGjxs",
          "attemptCnt": 0,
          "createDate": "2026-04-02 08:35:33+0000",
          "reviewStatus": "init"
        },
        "applicantInfo": {
          "firstName": "John",
          "firstNameEn": "John",
          "middleName": "Jack",
          "middleNameEn": "Jack",
          "lastName": "Doe",
          "lastNameEn": "Doe",
          "country": "USA"
        },
        "blueprintReference": {
          "name": "brand new BP",
          "blueprintId": "6970bf0a0eefbc0000000000"
        },
        "caseReview": {
          "status": "open",
          "checklistState": {
            "checklist": [
              { "name": "checklist action 1", "checked": false },
              { "name": "checklist action 2", "checked": false }
            ]
          }
        },
        "amlCases": [
          {
            "amlCaseId": "69ce2a535b353c0000000000"
          }
        ],
        "priority": "medium"
      }
    ],
    "totalItems": 1,
    "pageInfo": {
      "limit": 10,
      "offset": 0
    }
  }
}
```
```json No amlCases entry
// This case has an AML tab visible in the Case Management UI — showing the applicant's own most recent AML screening — but since that screening is not tied to a transaction, `amlCases` is absent from the response entirely. To get the applicant-level AML screening in this scenario, call `GET /resources/api/applicants/{applicantId}/amlCase` with `applicantId=69a6974e0ad36b0000000001`.

{
  "list": {
    "items": [
      {
        "id": "69ce2a555b353c0000000001",
        "name": "Manual KYC review - Jane Smith",
        "applicantReference": {
          "applicantId": "69a6974e0ad36b0000000001",
          "fullName": "Jane Smith"
        },
        "createdByType": "byOfficer",
        "createdByOfficer": "jane.reviewer@company.com",
        "createdAt": "2026-09-07 17:04:47+0000",
        "updatedAt": "2026-09-07 17:04:47+0000",
        "clientId": "your_cool_id",
        "applicantInfo": {
          "firstName": "Jane",
          "firstNameEn": "Jane",
          "lastName": "Smith",
          "lastNameEn": "Smith",
          "country": "FRA"
        },
        "caseReview": {
          "status": "open",
          "stage": "open",
          "startDate": "2026-09-07 17:04:47+0000"
        },
        "priority": "medium"
      }
    ],
    "totalItems": 1,
    "pageInfo": {
      "limit": 10,
      "offset": 0
    }
  }
}
```

If the request fails, you will receive an HTTP response containing an error code along with a message explaining the error. For example:

```json
// In this example, the method returns HTTP 400 (Bad Request) because the filtering parameters are malformed, the request body is empty, or invalid field names are provided.

{
    "code": 400,
    "correlationId": "b66c98b82f7ed5e026fb4965975f6739",
    "description": "Invalid parameters provided",
    "type": "de.smtdp.commons.service.exceptions.ServiceException"
}
```

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "sumsub-api",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.sumsub.com"
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "name": "X-App-Token",
        "in": "header",
        "x-default": ""
      }
    }
  },
  "security": [
    {
      "sec0": []
    }
  ],
  "paths": {
    "/resources/api/caseManagement/v2/cases/byFilter": {
      "post": {
        "description": "",
        "responses": {
          "200": {
            "description": ""
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "integer",
              "default": "0"
            },
            "description": "Cursor offset used for pagination. Defaults to `0`."
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer",
              "default": "100"
            },
            "description": "Maximum number of cases returned per response. Defaults to `100`."
          },
          {
            "in": "query",
            "name": "order",
            "schema": {
              "type": "string"
            },
            "description": "The field used to sort results. Prefix the field name with `-` for descending order (for example, `-createdAt` sorts from newest to oldest)."
          },
          {
            "in": "query",
            "name": "countTotalItems",
            "schema": {
              "type": "boolean"
            },
            "description": "When set to `true`, the response includes the total count of items matching the filter."
          }
        ],
        "operationId": "post_resources-api-casemanagement-v2-cases-byfilter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Each string is a specific case ID to retrieve directly. <br><br>You can find this identifier [in the Dashboard](https://cockpit.sumsub.com/checkus/caseMgmt/allCases?caseListStatus=open) when selecting a specific case, or save it when [creating a new case via API](https://docs.sumsub.com/sumsub/reference/create-case)."
                  },
                  "criteria": {
                    "type": "array",
                    "items": {
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "One of the [available case filters](https://docs.sumsub.com/sumsub/reference/get-available-case-filters#available-search-keys)).\n\n⚠️ Used when setting [SerializedFieldCriteria](#serializedfieldcriteria-object).",
                          "enum": [
                            "createdAt",
                            "createdByType",
                            "caseReview.assignee",
                            "blueprintReference.blueprintId",
                            "applicantReference.applicantId",
                            "caseReview.status",
                            "updatedAt"
                          ]
                        },
                        "op": {
                          "type": "string",
                          "description": "<p>Logical and comparison operator. Supports:</p><ul><li><code>$and</code>, <code>$or</code> — for <a href=\"ref:get-cases-by-filters#serializedcomplexcriteria-object\">SerializedComplexCriteria</a>.</li><li><code>=</code>, <code><></code>, <code>></code>, <code>>=</code>, <code><</code>, <code><=</code>, <code>$all</code>, <code>$contains</code> — for <a href=\"ref:get-cases-by-filters#serializedfieldcriteria-object\">SerializedFieldCriteria</a></li></ul>",
                          "enum": [
                            "$and",
                            "$or",
                            "=",
                            "<>",
                            ">",
                            ">=",
                            "<",
                            "<=",
                            "$all",
                            "$contains"
                          ]
                        },
                        "values": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Array of values to compare against (for example, a timestamp, applicant identifier, case review status, and so on).\n\n⚠️ Used when setting [SerializedFieldCriteria](#serializedfieldcriteria-object)."
                        },
                        "children": {
                          "type": "object",
                          "description": "A nested list of [SerializedFieldCriteria](#serializedfieldcriteria-object) objects.\n\n⚠️ Used when setting [SerializedComplexCriteria](#serializedcomplexcriteria-object).",
                          "properties": {
                            "field": {
                              "type": "string",
                              "description": "One of the [available case filters](https://docs.sumsub.com/sumsub/reference/get-available-case-filters#available-search-keys)).\n\n⚠️ Used when setting [SerializedFieldCriteria](#serializedfieldcriteria-object).",
                              "enum": [
                                "createdAt",
                                "createdByType",
                                "caseReview.assignee",
                                "blueprintReference.blueprintId",
                                "applicantReference.applicantId",
                                "caseReview.status",
                                "updatedAt"
                              ]
                            },
                            "op": {
                              "type": "string",
                              "description": "<p>Logical and comparison operator. Supports:</p><ul><li><code>$and</code>, <code>$or</code> — for <a href=\"ref:get-cases-by-filters#serializedcomplexcriteria-object\">SerializedComplexCriteria</a>.</li><li><code>=</code>, <code><></code>, <code>></code>, <code>>=</code>, <code><</code>, <code><=</code>, <code>$all</code>, <code>$contains</code> — for <a href=\"ref:get-cases-by-filters#serializedfieldcriteria-object\">SerializedFieldCriteria</a></li></ul>",
                              "enum": [
                                "=",
                                "<>",
                                ">",
                                ">=",
                                "<",
                                "<=",
                                "$all",
                                "$contains"
                              ]
                            },
                            "values": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "Array of values to compare against (for example, a timestamp, applicant identifier, case review status, and so on).\n\n⚠️ Used when setting [SerializedFieldCriteria](#serializedfieldcriteria-object)."
                            },
                            "children": {
                              "type": "object",
                              "properties": {},
                              "description": "A nested list of [SerializedFieldCriteria](#serializedfieldcriteria-object) objects.\n\n⚠️ Used when setting [SerializedComplexCriteria](#serializedcomplexcriteria-object)."
                            }
                          }
                        }
                      },
                      "type": "object"
                    },
                    "description": "A list of criteria objects used to filter cases. See [Criteria logic](#criteria-logic) for details."
                  }
                }
              }
            }
          }
        },
        "summary": "Get cases by filters"
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "x-readme-fauxas": true
}
```