Learn how to query monday.com board or item updates using the platform API

Updates contain notes and information added to items outside of their columns. They allow users to organize communication across their organization and respond asynchronously. Many users rely on the updates section as their primary form of communication within the platform.

Users can do things like react and reply to updates, attach files, pin them to the top, and see who has viewed an update.

Queries

Required scope: updates:read

  • Limit: up to 10,000 updates
  • Querying directly at the root returns all updates across an account
  • Can also be nested inside a boards or items query to return updates from a specific board or item
  • Returns an array containing metadata about one or a collection of updates
  • Updates are returned in descending order (newest ones first)
query {
  boards (ids: 1234567890) {
  	updates (limit: 100) {
    	body
    	id
    	created_at
    	creator {
      	name
      	id
      }
    }
  }
}
let query = "query { boards (ids: 1234567890) { updates (limit: 100) { body id  created_at  creator { name id } }}}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY_HERE'
   },
   body: JSON.stringify({
     query : query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));

Arguments

You can use the following argument(s) to reduce the number of results returned in your updates query.

ArgumentDescription
ids [ID!]The specific ID(s) to return updates for.
limit IntThe number of updates to return. The default is 25.
page IntThe page number to get. Starts at 1.

Fields

You can use the following field(s) to specify what information your updates query will return. Please note that some fields will have their own fields.

FieldDescriptionSupported fields
assets [Asset]The update's assets/files.created_at Date
file_extension String!
file_size Int!
id ID!
name String!
original_geometry String
public_url String!
uploaded_by User!
url String!
url_thumbnail String
body String!The update's HTML-formatted body.
created_at DateThe update's creation date.
creator UserThe update's creator.
creator_id StringThe unique identifier of the update's creator.
edited_at Date!The date the update's body was last edited. Please note this field is only available in API versions 2025-01 and later.
id ID!The update's unique identifier.
item ItemThe update's item.
item_id StringThe update's item ID.
likes [Like!]!The update's likes.
pinned_to_top [UpdatePin!]!The update's pin to top data. item_id Int!
replies [Reply!]The update's replies.body String!
created_at Date
creator User
creator_id String
id ID!
text_body String
updated_at Date
text_body StringThe update's text body.
updated_at DateThe date the update was last edited.
watchers [Watcher!]!The update's viewers. Please note this field is only available in API versions 2025-01 and later.medium String!
user User
user_id ID!

Mutations

Required scope: updates:write

Create an update

The create_update mutation allows you to add an update to an item via the API. You can also specify what fields to query back from the new update when you run the mutation.

mutation {
  create_update (item_id: 1234567890, body: "This update will be added to the item") {
    id
  }
}
let query = "mutation {create_update (item_id: 1234567890, body: \"This update will be added to the item\") { id }}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY_HERE'
   },
   body: JSON.stringify({
     query : query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));

Arguments

You can use the following argument(s) to define the new update's characteristics.

ArgumentDescription
body String!The update's text.
item_id IDThe item's unique identifier.
parent_id IDThe parent update's unique identifier. This can be used to create a reply to an update.

Like an update

The like_update mutation allows you to like an update via the API. You can also specify what fields to query back from the update when you run the mutation.

mutation {
  like_update (update_id: 1234567890) {
    id
  }
}
let query = "mutation { like_update (update_id: 1234567890) { id }}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY_HERE'
   },
   body: JSON.stringify({
     query : query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));

Arguments

You can use the following argument(s) to define which update to like.

ArgumentDescription
update_id IDThe unique identifier of the update to like.

Unlike an update

The unlike_update mutation allows you to unlike an update via the API. You can also specify what fields to query back from the update when you run the mutation.

mutation {
  unlike_an_update (update_id: 1234567890) {
    creator_id
    item_id
  }
}
let query = "mutation { unlike_update (update_id: 1234567890) { creator_id item_id }}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY_HERE'
   },
   body: JSON.stringify({
     query : query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));

Arguments

You can use the following argument(s) to define which update to pin.

ArgumentDescription
update_id ID!The unique identifier of the update to unlike.

Edit an update

The edit_update mutation allows you to edit an update via the API. You can also specify what fields to query back from the update when you run the mutation.

mutation {
  edit_update (id: 1234567890, body: "The updated text!") {
    creator_id
    item_id
  }
}
let query = "mutation { edit_update (id: 1234567890, body: \"The updated text!\" ) { creator_id item_id }}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY_HERE'
   },
   body: JSON.stringify({
     query : query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));

Arguments

You can use the following argument(s) to define which update to pin.

ArgumentDescription
body String!The update's new text.
id ID!The unique identifier of the update to edit.

Pin an update

The pin_to_top mutation allows you to pin an update to the top of an item via the API. You can also specify what fields to query back from the update when you run the mutation.

mutation {
  pin_to_top (id: 1234567890, item_id: 9876543210) {
    creator_id
    body
  }
}
let query = "mutation { pin_to_top (id: 1234567890, item_id: 9876543210) { creator_id body }}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY_HERE'
   },
   body: JSON.stringify({
     query : query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));

Arguments

You can use the following argument(s) to define which update to pin.

ArgumentDescription
id ID!The unique identifier of the update to pin.
item_id IDThe item's unique identifier.

Unpin an update

The unpin_from_top mutation allows you to unpin an update from the top of an item via the API. You can also specify what fields to query back from the update when you run the mutation.

mutation {
  unpin_from_top (id: 1234567890, item_id: 9876543210) {
    creator_id
    body
  }
}
let query = "mutation { unpin_from_top (id: 1234567890, item_id: 9876543210) { creator_id body }}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY_HERE'
   },
   body: JSON.stringify({
     query : query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));

Arguments

You can use the following argument(s) to define which update to unpin.

ArgumentDescription
id ID!The unique identifier of the update to unpin.
item_id IDThe item's unique identifier.

Clear an item's updates

The clear_item_updates mutation allows you to clear all updates on a specific item, including replies and likes, via the API. You can also specify what fields to query back from the update when you run the mutation.

mutation {
  clear_item_updates (item_id: 1234567890) {
    id
  }
}
let query = "mutation { clear_item_updates (item_id: 1234567890) { id }}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY_HERE'
   },
   body: JSON.stringify({
     query : query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));

Arguments

You can use the following argument(s) to define which item's updates to clear.

ArgumentsDescription
item_id ID!The item's unique identifier.

Delete an update

The delete_update mutation allows you to delete an item's update via the API. You can also specify what fields to query back from the update when you run the mutation.

mutation {
  delete_update (id: 1234567890) {
    id
  }
}
let query = "mutation { delete_update (id: 1234567890) { id }}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY_HERE'
   },
   body: JSON.stringify({
     query : query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));

Arguments

You can use the following argument(s) to define which updates to delete.

ArgumentDescription
id ID!The update's unique identifier.

📘

Join our developer community!

We've created a community specifically for our devs where you can search through previous topics to find solutions, ask new questions, hear about new features and updates, and learn tips and tricks from other devs. Come join in on the fun! 😎