Learn how to read, create, update, and delete items from monday boards using the platform API
Items are core objects in the monday.com platform that hold the actual data within the board. To better illustrate the platform, imagine that each board is a table and an item is a single row in that table. Take one row, fill it with whatever information you'd like, and you now have an item!
Want to read all items on a board?The
itemsobject allows you to query specific items by their IDs. If you want to read all items on a board, use theitems_pageobject instead!
Queries
You can use the items query to retrieve item data via the API.
- Required scope:
boards:read - Returns an array containing metadata about one or a collection of specific items
- Can only be queried directly at the root; can't be nested within another query
query {
items(ids: [1234567890, 9876543210, 2345678901]) {
name
}
}Arguments
You can use the following arguments to reduce the number of results returned in your items query.
| Argument | Description |
|---|---|
exclude_nonactive Boolean | Excludes items that are inactive, deleted, or belong to deleted items. Only works when used with the ids argument. |
ids [ID!] | The IDs of the specific items, subitems, or parent items to return. Maximum of 100 IDs at one time using the limit argument. |
limit Int | The number of items returned. The default is 25, and the maximum is 100. |
newest_first Boolean | Lists the most recently created items at the top. |
page Int | The page number to return. Starts at 1. |
Fields
You can use the following fields to specify what information your items query will return.
Field | Description | Enum Values |
|---|---|---|
assets | The item's assets/files. | |
board | The board that contains the item. | |
column_values | The item's column values. | |
created_at | The item's creation date. | |
creator | The item's creator. | |
creator_id | The unique identifier of the item's creator. Returns | |
description | The item's description. | |
email | The item's email. | |
group | The item's group. | |
id | The item's unique identifier. | |
linked_items | The item's linked items. | |
name | The item's name. | |
parent_item | A subitem's parent item. Returns | |
relative_link | The item's relative path. | |
state | The item's state. |
|
subitems | The item's subitems. | |
subscribers | The item's subscribers. | |
updated_at | The date the item was last updated. | |
updates | The item's updates. | |
url | The item's URL. |
Mutations
The API allows you to create, update, and delete items using the following mutations. These operations let you programmatically control an item's full lifecycle.
Create item
Required scope:boards:write
The create_item mutation creates a new item via the API. You can specify which fields to return in the mutation response.
Item data is stored in columns that hold particular information based on the column type. Each type expects a different set of parameters to update its values. When sending data to a particular column, use a JSON-formatted string. If you're using JavaScript, you can use JSON.stringify() to convert a JSON object into a string.
You can also use simple values in this mutation or combine them with regular values. Read more about sending data for each column in our column types reference.
mutation {
create_item(
board_id: 1234567890
group_id: "group_one"
item_name: "new item"
column_values: "{\"date\":\"2023-05-25\"}"
) {
id
}
}Arguments
You can use the following arguments to define the new item's characteristics.
Argument | Description | Accepted Values |
|---|---|---|
board_id | The board's unique identifier. | |
column_values | The column values of the new item. | |
create_labels_if_missing | Creates status/dropdown labels if they are missing (requires permission to change the board structure). | |
group_id | The group's unique identifier. | |
item_name | The new item's name. | |
position_relative_method | Specifies where to place the item in relation to another item. Must be used with | You can use this argument in conjunction with
|
relative_to | The unique identifier of an item on the same board to set the position relative to. Must be used with |
Changing an item's nameIf you'd like to change an existing item's name, you need to use the
change_column_valuemutation with a JSON string value. Check out this doc for more info!
Duplicate item
Required scope:boards:write
The duplicate_item mutation duplicates an item (or subitem) and its nested subitems via the API. You can specify which fields to return in the mutation response.
mutation {
duplicate_item(
board_id: 1234567890
item_id: 9876543210
with_updates: true
) {
id
}
}Arguments
You can use the following arguments to specify which item to duplicate.
| Argument | Description |
|---|---|
board_id ID! | The board's unique identifier. |
item_id ID | The item's unique identifier. Required. |
with_updates Boolean | Duplicates the item with existing updates. |
Change an item's position
Required scope:boards:write
The change_item_position mutation changes an item's position on the same board via the API. You can specify which fields to return in the mutation response.
mutation {
change_item_position(
item_id: 1234567890
relative_to: 9876543210
position_relative_method: after_at
) {
id
group {
id
}
}
}Arguments
You can use the following arguments to define the item's new location.
Argument | Description | Enum Values |
|---|---|---|
group_id | The unique identifier of an existing group. Must be used with | |
group_top | Specifies if the item will be placed at the top or bottom of the group. Must be used with | |
item_id | The item's unique identifier. Moving subitems or converting an item to a subitem is not currently supported. | |
position_relative_method | Specifies where to place the item in relation to another item. Must be used with |
|
relative_to | The unique identifier of an item on the same board to set the position relative to. Must be used with |
Update assets on item
Required scope:boards:write
The update_assets_on_item mutation updates a file column's existing files via the API. You can specify which fields to return in the mutation response.
mutation {
update_assets_on_item(
board_id: 1234567890
item_id: 9876543210
column_id: "YOUR_COLUMN_ID"
files: {
fileType: asset
name: "New asset"
assetId: 12345
linkToFile: "https://yourlink.com"
}
) {
assets {
id
name
url
}
}
}Arguments
You can use the following arguments to specify which item's file to update.
Argument | Description | Supported Fields |
|---|---|---|
board_id | The board's unique identifier. | |
column_id | The column's unique identifier. | |
files | An object containing the file's input values. | assetId |
item_id | The item's unique identifier. |
Move item to group
Required scope:boards:write
The move_item_to_group mutation moves an item (or subitem) and its nested subitems between groups on the same board via the API. You can specify which fields to return in the mutation response.
Multi-level board validationsThe operation will be blocked if it would create a parent–child cycle (e.g., an item becoming an ancestor or descendant of itself) or if the resulting depth on the target board would exceed 5.
mutation {
move_item_to_group(
item_id: 1234567890,
group_id: "group_one"
) {
id
}
}Arguments
You can use the following arguments to specify which item to move and where.
| Argument | Description |
|---|---|
group_id String! | The group's unique identifier. |
item_id ID | The item's unique identifier. |
Move item to board
Required scope:boards:write
The move_item_to_board mutation moves an item (or subitem) and its nested subitems to a different board via the API. You can specify which fields to return in the mutation response.
Multi-level board validationsThe operation will be blocked if it would create a parent–child cycle (e.g., an item becoming an ancestor or descendant of itself) or if the resulting depth on the target board would exceed 5.
mutation {
move_item_to_board(
board_id: 1234567890
group_id: "new_group"
item_id: 9876543210
columns_mapping: [
{ source: "status", target: "status2" }
{ source: "person", target: "person" }
{ source: "date", target: "date4" }
]
) {
id
}
}Arguments
You can use the following arguments to specify which item to move and where.
Argument | Description | Supported Fields |
|---|---|---|
board_id | The unique identifier of the board to move the item to (target board) | |
group_id | The unique identifier of the group to move the item to (target group). | |
item_id | The unique identifier of the item to move. | |
columns_mapping | The object that defines the column mapping between the original and target board. Every column type can be mapped except for formula columns. When using this argument, you must specify the mapping for all columns. You can select the target as If you omit this argument, the columns will be mapped based on the best match. | source |
subitems_columns_mapping | The object that defines the subitems' column mapping between the original and target board. Every column type can be mapped except for formula columns. When using this argument, you must specify the mapping for all columns. You can select the target as If you omit this argument, the columns will be mapped based on the best match. | source |
Archive item
Required scope:boards:write
The archive_item mutation archives an item (or subitem) and its nested subitems via the API. You can specify which fields to return in the mutation response.
mutation {
archive_item(
item_id: 1234567890
) {
id
}
}Arguments
You can use the following argument to specify which item to archive.
| Argument | Description |
|---|---|
item_id ID! | The item's unique identifier. |
Clear item updates
Required scope:boards:write
The clear_item_updates mutation clears all updates on a specific item, including replies and likes, via the API. You can specify which fields to return in the mutation response.
mutation {
clear_item_updates(
item_id: 1234567890
) {
id
}
}Arguments
You can use the following argument to specify which item to clear updates from.
| Arguments | Description |
|---|---|
item_id ID! | The item's unique identifier. |
Delete item
Required scope:boards:write
The delete_item mutation deletes an item (or subitem) and its nested subitems via the API. You can specify which fields to return in the mutation response.
mutation {
delete_item(
item_id: 1234567890
) {
id
}
}Arguments
You can use the following argument to specify which item to delete.
| Argument | Description |
|---|---|
item_id ID | The item's unique identifier. |
