Validations

Learn how to read, create, update, and delete validation rules and required field columns using the platform API

On monday.com boards, you can designate required field columns that make specific columns mandatory when adding a new item. Doing so ensures that all new items added to your board will have specific columns populated. Any status, dropdown, numbers, date, timeline, people, text, email, phone, link, rating, country, or location column can be set as required.

Starting with API version 2026-07, you can also create validation rules that define more advanced constraints on column values. Validation rules support conditional logic ("if column A equals X, then column B must not be empty") and a range of comparison operators. For a detailed walkthrough, see the validation rules guide.

📘

Validation rules are enforced in both the UI and API

Validation rules are checked when users create or update items through the monday.com interface and through the API. API requests that violate validation rules return a DATA_VALIDATIONS_ERROR error (422 status code) with details about which columns failed validation. See the validation rules guide for error response format.

Queries

Get validations

  • Requires permission to edit column settings on the board
  • 🚧 Only available for Pro and Enterprise accounts
  • Returns an object containing metadata about required field columns and validation rules
  • Can only be queried directly at the root; can't be nested within another query
query {
  validations(id: 1234567890) {
    required_column_ids
    rules
  }
}
{
  "data": {
    "validations": {
      "required_column_ids": ["status", "text0"],
      "rules": {
        "cd7f1b7b-452e-40d3-886c-346184ffee7e": {
          "then": {
            "operator": "AND",
            "groups": [
              {
                "operator": "ANY_OF",
                "column_id": "color_mm1pt41x",
                "compare_value": [1, 2]
              }
            ]
          }
        },
        "31933592-171a-47ae-93a5-7a1c214fc9a3": {
          "if": {
            "operator": "AND",
            "groups": [
              {
                "operator": "ANY_OF",
                "column_id": "color_mm1pt41x",
                "compare_value": [1]
              }
            ]
          },
          "then": {
            "operator": "AND",
            "groups": [
              {
                "operator": "IS_NOT_EMPTY",
                "column_id": "text_mm1pecmq",
                "compare_value": []
              }
            ]
          }
        }
      }
    }
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
idID!The board's unique identifier.
typeValidationsEntityTypeThe type of entity to validate.board

Fields

FieldTypeDescription
required_column_ids[String!]An array of the unique identifiers for the required columns.
rulesJSONA JSON object containing the board's validation rules. Each key is a rule ID (UUID), and each value is a rule object with then (always present) and if (present only for conditional rules) clause objects.

Mutations

  • 🚧 Only available for Pro and Enterprise accounts

Add required column

Makes an existing column required. This does not create a new column. Returns RequiredColumns.

mutation {
  add_required_column(
    id:1234567890, 
    column_id: "long_text", 
    type: board
  ) {
    required_column_ids
  }
}
{
  "data": {
    "add_required_column": {
      "required_column_ids": [
        "long_text"
      ]
    }
  },
  "extensions": {
    "request_id": "YOUR_REQUEST_ID"
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
column_idString!The column's unique identifier.
idID!The board's unique identifier.
typeValidationsEntityTypeThe type of entity to validate.board

Remove required column

Removes an existing column's required designation. This does not delete the column itself. Returns RequiredColumns.

mutation {
  remove_required_column(
    id:1234567890, 
    column_id: "long_text", 
    type: board
  ) {
    required_column_ids
  }
}
{
  "data": {
    "remove_required_column": {
      "required_column_ids": []
    }
  },
  "extensions": {
    "request_id": "YOUR_REQUEST_ID"
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
column_idString!The column's unique identifier.
idID!The board's unique identifier.
typeValidationsEntityTypeThe type of entity to validate.board

Create validation rule

🚧

Only available in API versions 2026-07 and later

Creates a new validation rule on a board. A rule defines constraints on column values, optionally gated behind a condition. Returns ValidationRule.

For a detailed guide on building validation rules, see Validation rules.

Validation rule — requires the status column to be one of specific values:

mutation {
  create_validation_rule(
    id: 1234567890,
    type: board,
    rule: {
      then: {
        operator: AND,
        groups: [{
          operator: ANY_OF,
          column_id: "status",
          compare_value: [1, 2]
        }]
      }
    }
  ) {
    id
    if
    then
  }
}
{
  "data": {
    "create_validation_rule": {
      "id": "cd7f1b7b-452e-40d3-886c-346184ffee7e",
      "if": null,
      "then": {
        "operator": "AND",
        "groups": [
          {
            "operator": "ANY_OF",
            "column_id": "status",
            "compare_value": [1, 2]
          }
        ]
      }
    }
  }
}

Conditional rule — if the status column matches value 1, then the text column must not be empty:

mutation {
  create_validation_rule(
    id: 1234567890,
    type: board,
    rule: {
      if: {
        operator: AND,
        groups: [{
          operator: ANY_OF,
          column_id: "status",
          compare_value: [1]
        }]
      },
      then: {
        operator: AND,
        groups: [{
          operator: IS_NOT_EMPTY,
          column_id: "text0"
        }]
      }
    }
  ) {
    id
    if
    then
  }
}
{
  "data": {
    "create_validation_rule": {
      "id": "31933592-171a-47ae-93a5-7a1c214fc9a3",
      "if": {
        "operator": "AND",
        "groups": [
          {
            "operator": "ANY_OF",
            "column_id": "status",
            "compare_value": [1]
          }
        ]
      },
      "then": {
        "operator": "AND",
        "groups": [
          {
            "operator": "IS_NOT_EMPTY",
            "column_id": "text0",
            "compare_value": []
          }
        ]
      }
    }
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
idID!The board's unique identifier.
typeValidationsEntityTypeThe type of entity to validate.board
ruleValidationRuleInput!The rule definition containing then (required) and if (optional) clauses.

Constraints

  • A validation rule (no if clause) must have exactly one constraint in the then clause.
  • A conditional rule must have exactly one constraint in the if clause, but can have multiple constraints in the then clause.
  • A column can have only one validation rule (without an if clause).
  • A column cannot have both validation rules and conditional rules.
  • Certain operators are only available in conditional rules. See RuleOperator for details.

Update validation rule

🚧

Only available in API versions 2026-07 and later

Updates an existing validation rule. You must provide the full rule definition (both if and then clauses) — partial updates are not supported. Returns ValidationRule.

mutation {
  update_validation_rule(
    id: 1234567890,
    type: board,
    rule_id: "cd7f1b7b-452e-40d3-886c-346184ffee7e",
    rule: {
      then: {
        operator: AND,
        groups: [{
          operator: GREATER_THAN_OR_EQUALS,
          column_id: "numbers0",
          compare_value: [5]
        }]
      }
    }
  ) {
    id
    if
    then
  }
}
{
  "data": {
    "update_validation_rule": {
      "id": "cd7f1b7b-452e-40d3-886c-346184ffee7e",
      "if": null,
      "then": {
        "operator": "AND",
        "groups": [
          {
            "operator": "GREATER_THAN_OR_EQUALS",
            "column_id": "numbers0",
            "compare_value": [5]
          }
        ]
      }
    }
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
idID!The board's unique identifier.
typeValidationsEntityTypeThe type of entity to validate.board
rule_idID!The unique identifier of the rule to update.
ruleValidationRuleInput!The full updated rule definition.

Delete validation rule

🚧

Only available in API versions 2026-07 and later

Deletes an existing validation rule from a board. Returns the deleted ValidationRule.

mutation {
  delete_validation_rule(
    id: 1234567890,
    type: board,
    rule_id: "cd7f1b7b-452e-40d3-886c-346184ffee7e"
  ) {
    id
    if
    then
  }
}
{
  "data": {
    "delete_validation_rule": {
      "id": "cd7f1b7b-452e-40d3-886c-346184ffee7e",
      "if": null,
      "then": {
        "operator": "AND",
        "groups": [
          {
            "operator": "ANY_OF",
            "column_id": "status",
            "compare_value": [1, 2]
          }
        ]
      }
    }
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
idID!The board's unique identifier.
typeValidationsEntityTypeThe type of entity to validate.board
rule_idID!The unique identifier of the rule to delete.