Columns and items are two core elements of any board in monday.com. A board is formatted as a table, where there are columns and rows, called items. You can learn more about this object type here.

In monday.com, each column has a specific functionality (for example, a Numbers column will store numerical values, a Text column will store text values, and a Time Tracking column will store only time-based data, based on log events).

Columns Queries

Required scope: boards:read

query {
    boards (ids: 1234567) {
        owner {
            id
        }
        columns {
            title
            type
        }       
    }
}
let query = "query {boards (ids: 1234567) {owner{ id }  columns {   title   type }}}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YourSuperSecretApiKey'
   },
   body: JSON.stringify({
     'query': query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));
curl --location --request POST 'https://api.monday.com/v2' \
--header 'Authorization: YourSuperSecretApiKey' \
--header 'Content-Type: application/json' \
--data-raw '{"query":"query {   boards (ids: 1234567) {owner{ id }  columns {   title   type }}}"}'

Fields

Querying columns will return either one or a collection of columns.

Columns are available for querying through boards and contain the following fields which will determine the data returned.

Field

Field Description

archived !Boolean

Whether the column is archived or not.

id !ID

The column's identifier, unique only to its board.

pos String (DEPRECATED)

The column's position on the board. This field has been deprecated and will always return null.

settings_str !String

The column's settings in a string form.

title !String

The column's title.

type !String

The column's type.

width Int

The column's width.

Columns Mutations

Required scope: boards:write

Create a Column

This mutation will create a column on a board within the account, using the board ID. After the mutation runs you can query back all the column data as shown in the querying columns section above.

mutation {
    create_column (board_id: 1234567, title: "Work Status", column_type: status) {
        id
    }
}
const fetch = require('node-fetch')

let query = "mutation {create_column (board_id: 1234567, title: \"Work Status\", column_type: status) {id}}"

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YourSuperSecretAPIkey'
   },
   body: JSON.stringify({
     'query' : query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));
curl --location --request POST 'https://api.monday.com/v2' \
--header 'Authorization: YourSuperSecretAPIkey' \
--header 'Content-Type: application/json' \
--data-raw '{"query":"mutation {create_column (board_id: 1234567, title: \"Work Status\", column_type: status) {id}}"}'

Arguments for Create a Column

The following create_column() arguments define the new column's characteristics.

Argument

Description

board_id !Int

The board's unique identifier.

title !String

The new column's title.

column_type ColumnType

The type of column to create.

defaults JSON

The new column's defaults.

Change a Simple Column Value

The change_simple_column_value() mutation allows you to change the value of a column in a specific item (row) with a string value.

Each column has a certain type, and different column types expect a different set of parameters in order to update their values.

After the mutation runs you can query back all the column data as shown in the querying columns section above.

📘

Tip:

You can use simple (string) values, regular (JSON) values, as well as a combination of both in your create_item(), create_subitem() and change_multiple_column_values() mutations. Using both value types can be useful when you want to update columns that do not support simple column values.

mutation {
    change_simple_column_value (board_id: 20178755, item_id: 200819371, column_id: "status", value: "1") {
        id
    }
}
const fetch = require('node-fetch');

var query = "mutation {change_simple_column_value (board_id: 1156871139, item_id: 1156871143, column_id: \"status\", value: \"Working on it\") {id}}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'yourSuperSecretAPIKey'
   },
   body: JSON.stringify({
     'query': "mutation {change_simple_column_value (board_id: 1156871139, item_id: 1156871143, column_id: \"status\", value: \"Working on it\") {id}}"
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));
curl --location --request POST 'https://api.monday.com/v2' \
--header 'Authorization: YourSuperSecretApiKey' \
--header 'Content-Type: application/json' \
--data-raw '{"query":"mutation { change_simple_column_value (board_id: 1156871139, item_id: 1156871143, column_id: \"status\", value: \"Done\") {id}}"}'

Arguments for Change a Simple Column Value

The following change_simple_column_value() arguments define which column's value is being changed and what simple value to change to.

Argument

Description

item_id !int

The item's identifier.

column_id !String

The column identifier on your board.

board_id !Int

The board identifier.

value !String

The new simple value of the column. You can find more about simple column values in Column Types Reference

Change a Column Value

The change_column_value() mutation allows you to change the value of a column in a specific item (row) with a JSON value. If you’re using JavaScript, you can use JSON.stringify() to convert a JSON object into a string.

After the mutation runs you can query back all the column data as shown in the querying columns section above.

mutation {
    change_column_value (board_id: 20178755, item_id: 200819371, column_id: "status", value: "{\"index\": 1}") {
        id
    }
}
const fetch = require('node-fetch');

var query = "mutation { change_column_value (board_id: 1156871139, item_id: 1156871143, column_id: \"status\", value: \"{\\\"label\\\":\\\"Stuck\\\"}\") {id}}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YourSuperSecretAPIKey'
   },
   body: JSON.stringify({
     'query': query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));
curl --location --request POST 'https://api.monday.com/v2' \
--header 'Authorization: YourSuperSecretApiKey' \
--header 'Content-Type: application/json' \
--data-raw '{"query":"mutation { change_column_value (board_id: 1156871139, item_id: 1156871143, column_id: \"status\", value: \"{\\\"label\\\":\\\"Stuck\\\"}\") {id}}"}'

Arguments for Change a Column Value

The following change_column_value() arguments define which column's value is being changed and what JSON value to change to.

Argument

Description

item_id !int

The item's identifier.

column_id !String

The column identifier on your board.

board_id !Int

The board identifier.

value !JSON

The new value of the column, formatted as JSON. You can find specific examples of JSON values in the Column Types Reference.

Change Multiple Columns Values

This mutation allows you to update multiple column values of a specific Item (row).

Each column has a certain type, and different column types expect a different set of parameters to update their values. When sending data in the column_values argument, use a string.

The column_values argument is built in the following form (example with a Text and a Status column):
{\"text\": \"New text\", \"status\": {\"label\": \"Done\"}}

📘

NOTE

You can also use simple (String) values in this mutation along with regular (JSON) values, or just simple values.

Here's an example of setting a Status with a simple value:
{\"text\": \"New text\", \"status\": \"Done\"}

After the mutation runs you can query back all the column data as shown in the querying columns section above.

mutation {
  change_multiple_column_values (item_id: 1234567, board_id: 1156871139, column_values: "{\"status\": {\"index\": 1},\"date4\": {\"date\":\"2021-01-01\"}, \"person\" : {\"personsAndTeams\":[{\"id\":9603417,\"kind\":\"person\"}]}}") {
    id
  }
}
const fetch = require('node-fetch');

var query = "mutation {change_multiple_column_values (item_id: 1234567, board_id: 1156871139, column_values: \"{\\\"status\\\": {\\\"index\\\": 1},\\\"date4\\\": {\\\"date\\\":\\\"2021-01-01\\\"}, \\\"person\\\" : {\\\"personsAndTeams\\\":[{\\\"id\\\":9603417,\\\"kind\\\":\\\"person\\\"}]}}\") {id}}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YourSuperSecretApiKey'
   },
   body: JSON.stringify({
     'query': query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));
curl --location --request POST 'https://api.monday.com/v2' \
--header 'Authorization: YourSuperSecretApiKey' \
--header 'Content-Type: application/json' \
--data-raw '{"query":"mutation {change_multiple_column_values (item_id: 1234567, board_id: 1156871139, column_values: \"{\\\"status\\\": {\\\"index\\\": 1},\\\"date4\\\": {\\\"date\\\":\\\"2021-01-01\\\"}, \\\"person\\\" : {\\\"personsAndTeams\\\":[{\\\"id\\\":9603417,\\\"kind\\\":\\\"person\\\"}]}}\") {id}}"}'

Arguments for Change Multiple Columns Values

The following change_multiple_column_values() arguments define the columns' values being changed and what values to change to.

Argument

Definition

item_id !Int

The item's identifier.

board_id !Int

The board's identifier.

column_values !JSON

The column values updates.

Change a Column Title

This mutation allows you to update the title of an existing column.

After the mutation runs you can query back all the column data as shown in the querying columns section above.

mutation {
    change_column_title (board_id: 1234567, column_id: "status", title: "new_status") {
        id
    }
}
const fetch = require('node-fetch');

var query = "mutation { change_column_title (board_id: 1234567, column_id: \"status\", title: \"New_Status\") {id}}";

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YourSuperSecretApiKey'
   },
   body: JSON.stringify({
     'query': query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));
curl --location --request POST 'https://api.monday.com/v2' \
--header 'Authorization: YourSuperSecretApiKey' \
--header 'Content-Type: application/json' \
--data-raw '{"query":"mutation { change_column_title (board_id: 1248277923, column_id: \"status\", title: \"New_Status\") {id}}"}'

Arguments for Change a Column Title

The following change_column_title() arguments define which column's title will be changed.

Argument

Definition

column_id !String

The column's identifier.

board_id !Int

The board's identifier.

title !String

The new title of the column


Did this page help you?