We recently reverted changes to the ComplexityException errors that impacted the error message (related to this previous update). They are now back in their original state (see example below).

{
    "error_code": "ComplexityException",
    "status_code": 429,
    "error_message": "Complexity budget exhausted, query cost 30001 budget remaining 19986 out of 1000000 reset in 3 seconds",
    "error_data": {},
    "errors": [
        "Complexity budget exhausted, query cost 30001 budget remaining 19986 out of 1000000 reset in 3 seconds"
    ],
    "account_id": 1234567890
}

Changes to the ComplexityException error's structure and error code were reverted to their original format. Check out the example below:

{
    "error_code": "ComplexityException",
    "status_code": 429,
    "error_message": "Complexity budget exhausted, query cost 30001 budget remaining 19986 out of 1000000 reset in 3 seconds",
    "error_data": {},
    "errors": [
        "Complexity budget exhausted, query cost 30001 budget remaining 19986 out of 1000000 reset in 3 seconds"
    ],
    "account_id": 1234567890
}

At the end of March, we added a new app_subscription_operations query and mutation to API version 2024-04. App developers using feature-based pricing can use this API to track and update operation usage, as needed.

Query

The new app_subscription_operations query returns app subscription data, the current operation counter value, as well as the name of each operation. You can read more about the new query here.

query {
	app_subscription_operations (kind: "image_scan") {
    counter_value
    period_key
   }
 }

Mutation

The new increase_app_subscription_operations mutation allows you to increase the counter for a specific operation. This can be used to track the number of operations each account uses, per operation, per billing period. You can read more about the new mutation here.

 mutation {
   increase_app_subscription_operations(kind: "image_scan", increment_by: 2){
      counter_value
   }
 }

In API versions 2024-04 and later, you can create a doc column using the create_column mutation.

mutation {
  create_column (board_id: 1234567890, column_type: doc, title: "Task info") {
    id
  }
}
let query = 'mutation {  create_column (board_id: 1234567890, column_type: doc, title: "Task info") { id }}';

fetch ("https://api.monday.com/v2", {
  method: 'post',
  headers: {
    'Content-Type': 'application/json',
    'Authorization' : 'YOUR_API_KEY_HERE'
   },
   body: JSON.stringify({
     'query' : query
   })
  })
   .then(res => res.json())
   .then(res => console.log(JSON.stringify(res, null, 2)));

In API versions 2024-04 and later, you can filter the date column with multiple exact dates. In the query, your compare value must include:

  • Each date in "YYYY-MM-DD" format, separated by commas
  • One "EXACT" compare value for each date (e.g., if you have three dates, you need three "EXACT" compare values), separated by commas
query {
  boards(ids: 1234567890) {
    items_page(
      query_params: {rules: [ {
        column_id: "date",
        compare_value: ["EXACT", "2024-04-01", "EXACT", "2023-04-01"],
        operator: any_of}]}
    ) {
      items {
        id
        name
      }
    }
  }
}

We recently introduced a change to all API versions that fixes an earlier regression. Mutations with the column_values argument now accept both string IDs and integers. Previously, the argument only accepted integers.

This update impacts the following columns:

Both code samples below are examples of correct usage:

mutation {
  change_multiple_column_values (
    item_id:9876543210, 
    board_id:1234567890, 
    column_values: "{\"dropdown\": {\"ids\":[\"1\"]}}") {
    id
  }
}
mutation {
  change_multiple_column_values (
    item_id:9876543210, 
    board_id:1234567890, 
    column_values: "{\"dropdown\": {\"ids\":[1]}}") {
    id
  }
}

We're excited to announce the new platform API CLI and client SDK that make interacting with the API easier than ever!

CLI

The API JavaScript CLI breaks down the initial configuration for working with the platform API. It automates the setup of a development environment for working with the API and is designed to help developers quickly start projects with pre-configured tools and settings. You can access the CLI here.

SDK

The new API JavaScript SDK simplifies interactions with the platform API. It breaks down complex GraphQL queries by providing simple operations for widely used endpoints, like fetching board data and creating items. You can access the SDK here.