Learn how to filter by, read, update, and clear the text column on monday boards using the platform API
The text column stores free-form text. The column has no fixed character limit, but each item has an approximate 64KB total column value capacity.
Via the API, the text column supports read, filter, create, update, and clear operations.
| Column Type | Implementation Type | Supported Operations |
|---|---|---|
text | TextValue |
|
Queries
Text columns can be queried through the column_values field on items using an inline fragment on TextValue.
query {
items(ids: [1234567890, 9876543210]) {
name
column_values {
... on TextValue {
id
text
value
}
}
}
}const query = `
query ($itemIds: [ID!]) {
items(ids: $itemIds) {
name
column_values {
... on TextValue {
id
text
value
}
}
}
}
`;
const variables = { itemIds: [1234567890, 9876543210] };
const response = await mondayApiClient.request(query, variables);Fields
You can use the following fields to specify what information your TextValue implementation will return.
| Field | Description |
|---|---|
column Column! | The column the value belongs to. |
id ID! | The column's unique identifier. |
text String | The column's textual value. Returns "" if the column has an empty value. |
type ColumnType! | The column's type (text). |
value JSON | The column's raw value as a JSON-encoded string (e.g., "\"Hello world\""). |
Example response
{
"data": {
"items": [
{
"name": "Task A",
"column_values": [
{
"id": "text",
"text": "Hello world",
"value": "\"Hello world\""
}
]
}
]
}
}Filter
You can filter items by text values using the items_page object. The text column supports the following operators:
| Operator | Compare Value | Description |
|---|---|---|
any_of | An array of exact text values (e.g., ["Sample text"]) | Returns items whose text value exactly matches any of the specified values. |
not_any_of | An array of exact text values (e.g., ["Sample text"]) | Excludes items whose text value exactly matches any of the specified values. |
contains_text | A partial or full text value (e.g., "hello") | Returns items whose text value contains the specified string (case-insensitive). |
not_contains_text | A partial or full text value (e.g., "hello") | Excludes items whose text value contains the specified string. |
is_empty | [] | Returns items with an empty text value. |
is_not_empty | [] | Returns items that have a text value set. |
Examples
Filter by partial text match
This example returns items whose text column contains "hello".
query {
boards(ids: 1234567890) {
items_page(
query_params: {
rules: [
{
column_id: "text"
compare_value: "hello"
operator: contains_text
}
]
}
) {
items {
id
name
column_values {
... on TextValue {
text
}
}
}
}
}
}Filter by exact text value
This example returns items with an exact text match.
query {
boards(ids: 1234567890) {
items_page(
query_params: {
rules: [
{
column_id: "text"
compare_value: ["Sample text"]
operator: any_of
}
]
}
) {
items {
id
name
}
}
}
}Filter by empty text
This example returns items with an empty text value.
query {
boards(ids: 1234567890) {
items_page(
query_params: {
rules: [
{
column_id: "text"
compare_value: []
operator: is_empty
}
]
}
) {
items {
id
name
}
}
}
}Mutations
Create
Required scope: boards:write
The create_column mutation creates a new text column via the API. You can specify which fields to return in the mutation response.
mutation {
create_column(
board_id: 1234567890
title: "Notes"
column_type: text
description: "Additional notes for this item"
) {
id
title
type
}
}Update value
You can update a text column using change_simple_column_value or change_multiple_column_values. You can send values as simple strings or JSON objects, depending on the mutation you choose.
change_simple_column_value
change_simple_column_valueSend the value as a plain string in value.
mutation {
change_simple_column_value(
item_id: 9876543210
board_id: 1234567890
column_id: "text"
value: "Sample text"
) {
id
name
}
}change_multiple_column_values
change_multiple_column_valuesSend the value as a JSON string in column_values.
mutation {
change_multiple_column_values(
item_id: 9876543210
board_id: 1234567890
column_values: "{\"text\": \"Sample text\"}"
) {
id
name
}
}const query = `
mutation ($boardId: ID!, $itemId: ID!, $columnValues: JSON!) {
change_multiple_column_values(
board_id: $boardId
item_id: $itemId
column_values: $columnValues
) {
id
name
}
}
`;
const variables = {
boardId: 1234567890,
itemId: 9876543210,
columnValues: JSON.stringify({
text: "Sample text"
})
};
const response = await mondayApiClient.request(query, variables);Set text on item creation
You can set a text value when creating an item by passing the text column value in the column_values argument.
mutation {
create_item(
board_id: 1234567890
item_name: "New task"
column_values: "{\"text\": \"Initial notes\"}"
) {
id
name
}
}Clear
You can clear a text column using change_simple_column_value or change_multiple_column_values.
change_simple_column_value
change_simple_column_valuePass an empty string in value.
mutation {
change_simple_column_value(
item_id: 9876543210
board_id: 1234567890
column_id: "text"
value: ""
) {
id
name
}
}change_multiple_column_values
change_multiple_column_valuesPass null or an empty string in column_values.
mutation {
change_multiple_column_values(
item_id: 9876543210
board_id: 1234567890
column_values: "{\"text\": null}"
) {
id
name
}
}Reading column configuration
To read a text column's configuration, query its settings through the column's settings field.
The
settings_strfield is deprecated as of API version 2025-10. Use the typedsettingsobject instead, which returns structured JSON rather than a JSON-encoded string.
query {
boards(ids: 1234567890) {
columns(ids: ["text"]) {
id
title
settings
}
}
}settings response structure
settings response structureThe settings field returns a typed JSON object with these keys:
| Key | Type | Description |
|---|---|---|
hide_footer | boolean | Whether the column footer is hidden. |
Example settings response
settings response{}Most text columns return an empty settings object. The
hide_footeroption is only present when explicitly configured.
Get column type schema
You can retrieve the JSON schema for the text column's settings programmatically using the get_column_type_schema query. This returns the structure, validation rules, and available properties for the column's configuration.
query {
get_column_type_schema(
type: text
)
}{
"data": {
"get_column_type_schema": {
"schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"settings": {
"type": "object",
"description": "Column specific settings",
"properties": {
"hide_footer": {
"type": "boolean",
"description": "Whether to hide the footer"
}
},
"additionalProperties": false
}
}
}
}
}
}The response includes property names, types, constraints (such as max lengths and allowed values), and descriptions for each setting. You can use this to validate column settings, dynamically generate UIs, or give context to AI agents. Learn more about the schema response format.
