Learn how to search for items, boards, documents, users, workspaces, updates, and timeline items across your account using the platform API
The monday.com search API allows you to find items, boards, documents, users, workspaces, updates, and timeline items across your account. It uses a combination of keyword matching and semantic understanding to return the most relevant results.
Unlike a traditional search query that returns a mixed list of results, the search API uses a namespace structure — search returns a SearchNamespace object with separate fields for each entity type. This lets you search multiple entity types in a single request while specifying different filters for each.
Only available in API versions
2026-07and later
Check out the Searching across your account guide for best practices, filtering strategies, and end-to-end examples.
Queries
Search across entities
Required scopes vary by entity type:
| Entity type | Required scope |
|---|---|
items | boards:read |
boards | boards:read |
docs | docs:read |
users | users:read |
workspaces | workspaces:read |
updates | updates:read |
timeline_items | boards:read |
- Returns
SearchNamespace!— an object with one field per entity type - Can be queried directly at the root
- Request only the entity type fields you need — omitting a field avoids unnecessary processing
- The
limitargument on each field applies to that entity type only
Each entity type is accessed as a field on the returned SearchNamespace. Include only the fields for the entity types you want to search in a single request:
query {
search {
items(query: "Q1 planning", limit: 10, board_ids: ["1234567890"]) {
results {
id
indexed_data {
name
board_id
url
}
live_data {
id
name
state
}
}
}
boards(query: "Q1 planning", limit: 10) {
results {
id
indexed_data {
name
url
}
}
}
docs(query: "Q1 planning", limit: 5) {
results {
id
indexed_data {
name
}
}
}
users(query: "Ada", limit: 5) {
results {
id
indexed_data {
name
email
}
}
}
workspaces(query: "Q1 planning", limit: 5) {
results {
id
indexed_data {
name
}
}
}
updates(query: "Q1 planning", limit: 5, board_ids: ["1234567890"]) {
results {
id
indexed_data {
body
creator_id
item_id
board_id
created_at
updated_at
}
live_data {
id
body
}
}
}
timeline_items(query: "kickoff call", limit: 5, type: email) {
results {
id
indexed_data {
title
summary
type
product_kind
item_id
board_id
}
live_data {
id
}
}
}
}
}Arguments
The search query itself takes no arguments. Arguments are passed to each entity field on the SearchNamespace.
search.items arguments:
| Argument | Type | Description |
|---|---|---|
| query | String! | The search query string. |
| limit | Int | Maximum number of results to return. Default: 10. Maximum: 20. |
| date_range | CrossEntityDateRangeInput | Optional. Filter results by creation or update timestamps. |
| strategy | SearchStrategy | Controls the trade-off between search quality and response time. Default: BALANCED. |
| board_ids | [ID!] | Optional. Filter items to specific board IDs. |
| workspace_ids | [ID!] | Optional. Filter items to specific workspace IDs. |
search.boards arguments:
| Argument | Type | Description |
|---|---|---|
| query | String! | The search query string. |
| limit | Int | Maximum number of results to return. Default: 10. Maximum: 20. |
| date_range | CrossEntityDateRangeInput | Optional. Filter results by creation or update timestamps. |
| strategy | SearchStrategy | Controls the trade-off between search quality and response time. Default: BALANCED. |
| board_ids | [ID!] | Optional. Filter boards to specific board IDs. |
| workspace_ids | [ID!] | Optional. Filter boards to specific workspace IDs. |
search.docs arguments:
| Argument | Type | Description |
|---|---|---|
| query | String! | The search query string. |
| limit | Int | Maximum number of results to return. Default: 10. Maximum: 20. |
| date_range | CrossEntityDateRangeInput | Optional. Filter results by creation or update timestamps. |
| strategy | SearchStrategy | Controls the trade-off between search quality and response time. Default: BALANCED. |
| workspace_ids | [ID!] | Optional. Filter documents to specific workspace IDs. |
search.users arguments:
Only available in API versions
2026-10and later
| Argument | Type | Description |
|---|---|---|
| query | String! | The search query string. |
| limit | Int | Maximum number of results to return. Default: 10. Maximum: 20. |
| date_range | CrossEntityDateRangeInput | Optional. Filter results by creation or update timestamps. |
| strategy | SearchStrategy | Controls the trade-off between search quality and response time. Default: BALANCED. |
search.workspaces arguments:
| Argument | Type | Description |
|---|---|---|
| query | String! | The search query string. |
| limit | Int | Maximum number of results to return. Default: 10. Maximum: 20. |
| date_range | CrossEntityDateRangeInput | Optional. Filter results by creation or update timestamps. |
| strategy | SearchStrategy | Controls the trade-off between search quality and response time. Default: BALANCED. |
search.updates arguments:
Only available in API versions
2026-10and later
| Argument | Type | Description |
|---|---|---|
| query | String! | The search query string. Update search matches against the update body. |
| limit | Int | Maximum number of results to return. Default: 10. Maximum: 20. |
| date_range | CrossEntityDateRangeInput | Optional. Filter results by creation or update timestamps. |
| strategy | SearchStrategy | Accepted for API consistency. Update search uses keyword matching over update bodies. |
| board_ids | [ID!] | Optional. Filter updates to specific board IDs. |
| creator_ids | [ID!] | Optional. Filter updates to those authored by specific creator user IDs. |
search.timeline_items arguments:
Only available in API versions
2026-10and later
| Argument | Type | Description |
|---|---|---|
| query | String! | The search query string. Timeline item search matches against the title, summary, and content. |
| limit | Int | Maximum number of results to return. Default: 10. Maximum: 20. |
| date_range | CrossEntityDateRangeInput | Optional. Filter results by creation or update timestamps. |
| strategy | SearchStrategy | Accepted for API consistency. Timeline item search uses keyword matching. |
| board_ids | [ID!] | Optional. Filter timeline items to specific board IDs. |
| workspace_ids | [ID!] | Optional. Filter timeline items to specific workspace IDs. |
| item_ids | [ID!] | Optional. Filter timeline items to those belonging to specific item IDs. |
| type | TimelineItemKind | Optional. Filter by timeline item kind (e.g., email, googleCalendar). |
| product_kind | TimelineItemProductKind | Optional. Filter by the product the timeline item originates from (e.g., crm, service). |
Fields
Each entity field on SearchNamespace returns a result container object with a single results field:
| Field | Type | Description |
|---|---|---|
search.items | SearchItemResults! | Item search results. |
search.boards | SearchBoardResults! | Board search results. |
search.docs | SearchDocResults! | Document search results. |
search.users | SearchUserResults! | User search results. Only available in API versions 2026-10 and later. |
search.workspaces | SearchWorkspaceResults! | Workspace search results. |
search.updates | SearchUpdateResults! | Update search results. Only available in API versions 2026-10 and later. |
search.timeline_items | SearchTimelineItemResults! | Timeline item search results. Only available in API versions 2026-10 and later. |
Each result in the results array includes:
| Field | Type | Description |
|---|---|---|
| id | ID! | The unique identifier of the entity. |
| indexed_data | SearchIndexedItem! / SearchIndexedBoard! / SearchIndexedDoc! / SearchIndexedUser! / SearchIndexedWorkspace! / SearchIndexedUpdate! / SearchIndexedTimelineItem! | The entity data stored in the search index. Fast but potentially stale. |
| live_data | Item / Board / Document / User / Workspace / Update / TimelineItem | The latest entity data resolved from the core API. null when the entity was deleted, is inaccessible to the caller, or has an indexing lag. |
indexed_datavslive_dataThe
indexed_datafield returns pre-indexed data — fast but potentially stale. Thelive_datafield resolves to the full entity from the core API with the latest data, but adds latency. Useindexed_datawhen speed matters; uselive_datawhen you need real-time accuracy.
Authorization
Authorization is applied automatically based on the authenticated user context. Results are filtered to the items, boards, documents, users, workspaces, updates, and timeline items the caller is allowed to access — inaccessible results are excluded from the response.
Limits
| Constraint | Value |
|---|---|
| Maximum results per entity field | 20 |
| Default limit | 10 |
Results are returned ordered by relevance within each entity type. No cursor-based pagination is available — all results are returned up to the specified limit.
