We recently added a new descriptive JsonParseException error to all API versions.

The error occurs when an issue with JSON syntax error is identified in a query. Previously, this returned a non-descriptive Internal Server Error . You can resolve the error by verifying the validity of the JSON input.

{
  "error_message": "Syntax error in JSON input",
  "error_code": "JsonParseException", 
  "error_data": {
    "json": "{\"columnId..."
  },
  "status_code": 400,
  "account_id": 123456
}

In API version 2024-10, we added two new mutations to enable marketplace app developers to grant and delete discounts through the platform API.

Grant discounts

Using the grant_marketplace_app_discount mutation, you can give discounts through the API.

mutation {
  grant_marketplace_app_discount (
      account_slug: "Test",  
      app_id: 123456,
    	data: {
    		app_plan_ids: ["Basic"],
      	days_valid: 30, 
      	discount: 10, 
      	is_recurring: false, 
      	period: MONTHLY
    }) {
    granted_discount {
        app_id
      	period
      	discount
    }
  }
}

Delete discounts

Using the delete_marketplace_app_discount mutation, you can remove discounts through the API.

mutation {
  delete_marketplace_app_discount (
    account_slug: "Test", 
    app_id: 123456
  ) {
    deleted_discount {
      account_slug
      app_id
    }
  }
}

In API version 2024-10, we added the new marketplace_app_discounts object for marketplace app developers to manage discounts using the platform API. You can query this object to return discount metadata.

query {
  marketplace_app_discounts (app_id: 123456) {
    account_slug
    discount
    valid_until  	
  }
}

In the UI, you can subscribe everyone in a monday account to a board by selecting the "Everyone at " team option (see image below).

We just released a bug fix to all API versions that enables you to do the same thing through the API by passing [-1 as the team ID in the add_teams_to_board mutation.

mutation {
  add_teams_to_board (board_id: 1234567890, kind: subscriber, team_ids: [-1]) {
    id
  }
}

In API versions 2024-07 and later, you can access the new apps_monetization_info object to determine the number of seats a monday.com account has across all products. This is relevant for all marketplace apps utilizing seat-based pricing.

query {
  apps_monetization_info {
    seats_count
  }
}
let query = "query { apps_monetization_info { seats_count } }";

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)));

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
}