> For the complete documentation index, see [llms.txt](https://docs.cekat.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cekat.ai/api-documentation/crm/board/search-crm-board-items.md).

# Search CRM board items

Finds items on a board that match one or more conditions. `column_name` is a column's name, or `item_name`, `__created_at__` or `__updated_at__` for the built-in fields.

| Field type                                          | Operators                                                                                                                      |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `item_name`                                         | `equals`, `not_equals`, `contains`, `not_contains`, `starts_with`, `ends_with`                                                 |
| Text, email, phone, select, conversation            | `is_empty`, `is_not_empty`, `equals`, `not_equals`, `contains`, `not_contains`, `starts_with`, `ends_with`                     |
| Number                                              | `is_empty`, `is_not_empty`, `equals`, `not_equals`, `greater_than`, `less_than`, `greater_than_or_equal`, `less_than_or_equal` |
| Checkbox                                            | `is_empty`, `is_not_empty`, `is_true`, `is_false`                                                                              |
| Date                                                | `is_empty`, `is_not_empty`, `start_date`, `end_date`                                                                           |
| Timeline                                            | `is_empty`, `is_not_empty`, `from_start_date`, `from_end_date`, `to_start_date`, `to_end_date`                                 |
| Multi-value (dropdown, agents, contacts, and so on) | `is_empty`, `is_not_empty`, `equals`, `not_equals`, `contains`, `not_contains`                                                 |

`is_empty`, `is_not_empty`, `is_true` and `is_false` don't need a `value`.

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"tags":[{"name":"Board","description":"A board is a custom CRM table, such as a deals pipeline. It has **groups** (sections), **columns** (fields), and **items** (rows).\n\n## Item values\nWhen you create or update an item, send each column value as a top-level field named after the column, for example `{\"item_name\": \"Deal A\", \"Status\": \"1\", \"Amount\": 2500000}`. Get column names, types and select options from `GET /api/crm/boards/{id}`.\n\n| Column type | Value format |\n| --- | --- |\n| `text`, `long_text`, `phone` | String |\n| `email` | Email address string |\n| `number` | Number (numeric strings are accepted) |\n| `date` | ISO 8601 date-time with time zone, for example `2026-10-20T09:00:00+07:00` |\n| `timeline` | `{\"from\": \"<ISO date-time>\", \"to\": \"<ISO date-time>\"}` |\n| `checkbox` | `true` or `false` |\n| `select` | One label `id` from the column's `settings.labels` |\n| `dropdown` | Array of label `id`s from the column's `settings.labels` |\n| `agents` | Array of agent IDs |\n| `contacts`, `companies`, `orders`, `subscriptions`, `references` | Array of IDs of those records |\n| `conversation` | Conversation ID |\n| `files` | Array of `{\"file_name\", \"file_url\", \"file_type\"}` objects |\n\nA value that fails validation does not fail the whole request: the item is still saved, `message` is `success_with_failures`, and each rejected value is listed in `failed`.\n"}],"servers":[{"url":"https://api.cekat.ai","description":"Production"}],"security":[{"CekatApiKey":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"CekatApiKey":{"type":"apiKey","in":"header","name":"api_key","description":"Your business's Cekat API key, from **Settings → Developers & API** in the Cekat dashboard (https://chat.cekat.ai/developers?section=apikeys). Available on the Business and Enterprise plans."},"BearerAuth":{"type":"http","scheme":"bearer","description":"The same Cekat API key, sent as `Authorization: Bearer YOUR_API_KEY`. Accepted only by endpoints under `/api/...`."}},"schemas":{"CrmItem":{"type":"object","description":"A board item. Each column's value appears as an extra field named after the column.","additionalProperties":true,"properties":{"item_id":{"type":"string","format":"uuid"},"item_name":{"type":"string"},"group_id":{"type":"string","format":"uuid"},"group_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"created_by":{"description":"The agent who created the item, when known.","nullable":true}}},"ApiError":{"type":"object","description":"Error body returned by the `/api/...` endpoints.","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"statusCode":{"type":"integer"},"error":{"type":"object","properties":{"message":{"type":"string"}}},"correlationId":{"type":"string","description":"Request ID. Include it when contacting Cekat support."}}},"RateLimitError":{"type":"object","properties":{"message":{"type":"string"}}}},"responses":{"ApiUnauthorized":{"description":"The API key is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"ApiNotFound":{"description":"The resource was not found or does not belong to your business.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"TooManyRequests":{"description":"Rate limit exceeded. Wait and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}},"paths":{"/api/crm/boards/{boardId}/items/search":{"post":{"tags":["Board"],"operationId":"SearchCrmBoardItems","summary":"Search CRM board items","description":"Finds items on a board that match one or more conditions. `column_name` is a column's name, or `item_name`, `__created_at__` or `__updated_at__` for the built-in fields.\n\n| Field type | Operators |\n| --- | --- |\n| `item_name` | `equals`, `not_equals`, `contains`, `not_contains`, `starts_with`, `ends_with` |\n| Text, email, phone, select, conversation | `is_empty`, `is_not_empty`, `equals`, `not_equals`, `contains`, `not_contains`, `starts_with`, `ends_with` |\n| Number | `is_empty`, `is_not_empty`, `equals`, `not_equals`, `greater_than`, `less_than`, `greater_than_or_equal`, `less_than_or_equal` |\n| Checkbox | `is_empty`, `is_not_empty`, `is_true`, `is_false` |\n| Date | `is_empty`, `is_not_empty`, `start_date`, `end_date` |\n| Timeline | `is_empty`, `is_not_empty`, `from_start_date`, `from_end_date`, `to_start_date`, `to_end_date` |\n| Multi-value (dropdown, agents, contacts, and so on) | `is_empty`, `is_not_empty`, `equals`, `not_equals`, `contains`, `not_contains` |\n\n`is_empty`, `is_not_empty`, `is_true` and `is_false` don't need a `value`.\n","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["page","limit","search"],"properties":{"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":1000},"condition":{"type":"string","enum":["AND","OR"],"description":"Required when `search` has more than one condition."},"search":{"type":"array","minItems":1,"items":{"type":"object","required":["column_name","operator"],"properties":{"column_name":{"type":"string"},"operator":{"type":"string"},"value":{"description":"Value to compare against."}}}}}}}}},"responses":{"200":{"description":"Matching items.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/CrmItem"}},"hasMore":{"type":"boolean","description":"True when the page is full, so there may be more results."}}}}}},"400":{"description":"The search is invalid, a column doesn't exist, or an operator is not allowed for the column's type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"$ref":"#/components/responses/ApiUnauthorized"},"404":{"$ref":"#/components/responses/ApiNotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}}}}
```
