🏷️ API version: 2025-07

You can now create empty boards using the new empty argument on the create_board mutation. When used, this creates a new board without any items in the default group.

mutation {
  create_board (empty:true, workspace_id:123456, board_kind:public, board_name:"New board") {
    id
  }
}
🏷️ API version: 2025-04

You can now query apps built with the monday.com apps framework using the new app object. This query retrieves metadata about your apps and their features.

You can query it directly at the root or nest it within a platform_api query to retrieve API consumption data for the account's top six apps.

query {
  platform_api {
    daily_analytics {
      by_app {
        app {
          name
          features {
            type
            name
          }
          id
          api_app_id
          state
        }
        usage
      }
    }
  }
}
🏷️ API version: 2025-04

You can now query your account's daily API consumption using the new platform_api object. This object includes fields that provide insights into your account's daily API call limit, usage, and top contributors.

query {
  platform_api {
    daily_analytics {
      by_day { 
        day
        usage
      }
      by_app {
        app {
          name
        }
        api_app_id
        usage
      }
      by_user {
        user {
          name
        }
        usage
      }
      last_updated
    }
  }
}
🏷️ API version: 2025-04

You can now update a user's custom role using the role_id argument on the update_users_role mutation. You can obtain available role_id values by querying the new account_roles type.

Custom roles are only available on Enterprise plans.

mutation {
  update_users_role (user_ids: [12345, 54321], role_id: "5") {
    updated_users {
      name
    }
    errors {
      user_id
      code
      message
    }
  }
} 
🏷️ API version: 2025-04

You can now query an account's roles through the new account_roles object. This query returns metadata about an account's user roles (both default and custom).

query {
  account_roles {
    id
    name
    roleType
  }
}
{
  "data": {
    "account_roles": [
      {
        "id": "1",
        "name": "admin",
        "roleType": "basic_role"
      },
      {
        "id": "2",
        "name": "member",
        "roleType": "basic_role"
      },
      {
        "id": "3",
        "name": "view_only",
        "roleType": "basic_role"
      },
      {
        "id": "4",
        "name": "guest",
        "roleType": "basic_role"
      }
    ]
  }
}
🏷️ API version: 2024-10 and later

We increased the maximum dimensions of workdoc tables. You can now create tables up to 25 rows tall and 10 columns wide.

Example query:

mutation {
  create_doc_block (
    type: table, 
    doc_id: 500152767, 
    content: "{\"column_count\": 10, \"row_count\": 25}"
  ) {
    id
  }
}

We delivered this feature because we got multiple requests for it from our developer community. If you have a feature request, submit it to us through the developer's category.

🏷️ API version: 2025-04

The value field for connect boards, dependency, and subtask columns will now return null instead of including linked item IDs and their last updated timestamp. This change improves overall column values performance.

You can retrieve this information by querying the relevant fields directly (read more below).

Examples

The following examples show the same query's behavior before and after this change.

Previous behavior (2025-01 and earlier)

Query

query {  
  boards(ids: 1234567890) {  
    items_page {  
      items {  
        column_values (types: board_relation) {  
          value  
          id  
        }  
      }  
    }  
  }  
}

Response

{
  "data": {
    "boards": [
      {
        "items_page": {
          "items": [
            {
              "column_values": [
                {
                  "value": "{\"changed_at\":\"2025-03-18T18:27:14.832Z\",\"linkedPulseIds\":[{\"linkedPulseId\":9876543210}]}",
                  "id": "connect_boards"
                }
              ]
            }
          ]
        }
      }
    ]
  }
}

New behavior (2025-04 onward)

Query

query {  
  boards(ids: 1234567890) {  
    items_page {  
      items {  
        column_values (types: board_relation) {  
          value  
          id  
        }  
      }  
    }  
  }  
}

Response

{
  "data": {
    "boards": [
      {
        "items_page": {
          "items": [
            {
              "column_values": [
                {
                  "value": null,
                  "id": "connect_boards"
                }
              ]
            }
          ]
        }
      }
    ]
  }
}

How to retrieve linked item IDs and their timestamps

To retrieve the missing data, query the linked_items and linked_item_ids fields directly as shown below.

query {  
  boards(ids: 1234567890) {  
    items_page {  
      items {  
        column_values (types: board_relation) {  
          value  
          ... on BoardRelationValue {  
            linked_item_ids  
            linked_items {
              name
              updated_at
            }
          }  
          id  
        }  
      }  
    }  
  }  
}

Response

{
  "data": {
    "boards": [
      {
        "items_page": {
          "items": [
            {
              "column_values": [
                {
                  "value": null,
                  "linked_item_ids": [
                    "9876543210"
                  ],
                  "linked_items": [
                    {
                      "name": "Item 4",
                      "updated_at": "2023-08-29T15:38:11Z"
                    }
                  ],
                  "id": "connect_boards"
                }
              ]
            }
          ]
        }
      }
    ]
  }
}
🏷️ API version: 2025-04

We've recently added two new fields to the users object, making it easier to query and manage custom fields in the user profile:

  1. custom_field_metas: Retrieves metadata about the custom field, including its type, description, and whether or not it is editable
  2. custom_field_values: Fetches the values users input into the custom field

The example below retrieves the custom fields' type, description, id, and editability using the custom_field_metas field. It also retrieves the fields' meta ID and value using the custom_field_values field.

query {
  users (ids: 1234567) {
    custom_field_metas { 
      field_type
      description
      id 
      editable
    }
    custom_field_values {
      custom_field_meta_id
      value
    }
  }
}
🏷️ API version: 2025-04

You can now query the max_units field on app_subscription queries.

  • For seat-based apps, this will return the maximum number of seats allowed.
  • For feature-based apps, this will return null.
query {
  app_subscription {
    billing_period
    days_left
    is_trial
    plan_id
    renewal_date
    max_units
  }
}