The dropdown column lets a user select one or more options from a selection. Our API supports this column, so you can read and update the dropdown column via the API.

Reading the dropdown column

You can return the data in a dropdown column in two different formats. The text field will return the data as a simple string, and the value field will return the data as a JSON string.

{
  "text": "Urgent",
  "value": "{\"ids\":[1]}"
}

Updating the dropdown column

You can update a dropdown column with a simple string value or a JSON string value.

❗️

NOTE

It is not possible to mix dropdown labels (the text values) with dropdown IDs in the string values.

Simple strings

To update a dropdown column with strings, send the IDs of the labels you want to set. If you don’t know the IDs of the labels you’re trying to set, you can send the label's text value instead.

If you make an API call to update the dropdown column value, but the label doesn't exist, the expected behavior will be an error message. In the output of that error, you will also receive the existing labels for that specific column.

You can use create_labels_if_missing: true in your query. Then, the labels you send that didn't exist previously will be created.

You can send a list of IDs or labels, separated by commas (',').

For example: "dropdown_label_1, dropdown_label_2".

Here is a sample query to update the dropdown column using simple string values via dropdown IDs.

mutation {
  change_simple_column_value (item_id: 1297498726, board_id: 1297498717, column_id:"dropdown", value: "1,2") {
    id
  }
}
fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    query : "mutation ($myBoardId:Int!, $myItemId:Int!, $myColumnValue: String!, $columnId: String!) { change_simple_column_value (item_id:$myItemId, board_id:$myBoardId, column_id: $columnId, value: $myColumnValue) { id } }",
    variables : JSON.stringify({
      myBoardId: YOUR_BOARD_ID,
      myItemId: YOUR_ITEM_ID,
      columnId: "YOUR_COLUMN_ID",
      myColumnValue: "dropdown_index_1, dropdown_index_2"
      })
    })
  })

Here is a sample query to update the dropdown column using simple string values with dropdown labels.

mutation {
  change_simple_column_value (item_id: 1297498726, board_id: 1297498717, column_id:"dropdown", value: "Cookie, Cupcake") {
    id
  }
}
fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    query : `mutation ($myBoardId:Int!, $myItemId:Int!, $myColumnValue: String!, $columnId: String!) {
                 change_simple_column_value (item_id:$myItemId, board_id:$myBoardId, column_id: $columnId, value: $myColumnValue) {
                   id
                 }
               }`,
    variables : JSON.stringify({
      myBoardId: YOUR_BOARD_ID,
      myItemId: YOUR_ITEM_ID,
      columnId: "YOUR_COLUMN_ID",
      myColumnValue: "dropdown_label_1, dropdown_label_2"
      })
    })
  })
  .then(res => res.json())
  .then(res => console.log(JSON.stringify(res, null, 2)));
curl "https://api.monday.com/v2" \
-X POST \
-H "Content-Type:application/json" \
-H "Authorization: MY_API_KEY" \
-d '{"query":"mutation{change_simple_column_value (item_id:1297498722,board_id:1297498717, column_id: \"dropdown\", value: \"Cookie, Cupcake\"){ name id}}"}'

You can also find the Postman request to change the dropdown column here.

JSON

You can also update the dropdown column using JSON values, and this can be done with either the ID value or the text label.

📘

NOTE

You can use both String and JSON values when updating column values for change_multiple_column_values mutation, or when using the create_item mutation.

Here is a sample query to update the dropdown column using JSON values with dropdown IDs.

mutation {
  change_multiple_column_values(item_id:11111, board_id:22222, column_values: "{\"dropdown\": {\"ids\":[1]}}") {
    id
  }
}
fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    query : `mutation ($myBoardId:Int!, $myItemId:Int!, $myColumnValues:JSON!) {
                 change_multiple_column_values(item_id:$myItemId, board_id:$myBoardId, column_values: $myColumnValues) {
                   id
                 }
               }`,
    variables : JSON.stringify({
      myBoardId: YOUR_BOARD_ID,
      myItemId: MY_ITEM_ID,
      myColumnValues: JSON.stringify({
      dropdown : {
            "ids": [1]
            },
      })
    })
  })
})

Here is a sample query to update the dropdown column using JSON values with dropdown labels.

mutation {
  change_multiple_column_values(item_id:11111, board_id:22222, column_values: "{\"dropdown\":{\"labels\":[\"My label\"]}}") {
    id
  }
}
fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    query : `mutation ($myBoardId:Int!, $myItemId:Int!, $myColumnValues:JSON!) {
                 change_multiple_column_values(item_id:$myItemId, board_id:$myBoardId, column_values: $myColumnValues) {
                   id
                 }
               }`,
    variables : JSON.stringify({
      myBoardId: YOUR_BOARD_ID,
      myItemId: MY_ITEM_ID,
      myColumnValues: JSON.stringify({
      dropdown : {
            "labels": "Cookie"
            },
      })
    })
  })
})

Adding a dropdown value

You can add a new dropdown value to a column using the following mutation.

mutation {
  change_simple_column_value(item_id: 1234567890, board_id: 1122334455, column_id: "dropdown", value: "New dropdown value", create_labels_if_missing: true) {
    id
  }
}

Arguments for adding a dropdown value

ArgumentDescription
item_id Int!The item's unique identifier.
board_id Int!The board's unique identifier.
column_id Int!The column's unique identifier.
value String!The new value of the column.
create_labels_if_missing BooleanCreate status/dropdown labels if they're missing. (Requires permission to change board structure)

Clearing a dropdown column

You can clear a dropdown column using one of the following mutations.

mutation {
  change_multiple_column_values(item_id:123456789, board_id:987654321, column_values: "{\"dropdown\":{\"ids\":[]}}") {
    column_values(ids:dropdown) {
      id
      value
    }
  }
}
mutation {
  change_multiple_column_values(item_id:123456789, board_id:987654321, column_values: "{\"dropdown\":{\"labels\":[]}}") {
    column_values(ids:dropdown) {
      id
      value
    }
  }
}

📘

Have questions?

Join our developer community! You can share your questions and learn from fellow users and monday.com product experts.

Don’t forget to search before opening a new topic!