In API versions 2025-01 and later, you can remove owners from a team through the API using the new remove_team_owners mutation!

mutation { remove_team_owners (user_ids: [654321, 123456], team_id: 24681012) { errors { message code user_id } team { owners { id } } } }

In API versions 2025-01 and later, you can owners to a team through the API using the new assign_team_owners mutation!

mutation { assign_team_owners (user_ids: [654321, 123456], team_id: 24681012) { errors { message code user_id } team { owners { id } } } }

In API versions 2025-01 and later, you can update a user's role through the API using the new update_users_role mutation!

mutation { update_users_role (user_ids: [12345, 54321], new_role: ADMIN) { updated_users { name is_admin } errors { user_id code message } } }

In API versions 2025-01 and later, you can deactivate users through the API using the new deactivate_users mutation!

mutation { deactivate_users (user_ids: [54321, 12345]) { deactivated_users { id name } errors { message code user_id } } }

In API versions 2025-01 and later, you can read the formula column using the display_value field. This field returns the content of the formula column as a string.

This feature is in an early release phase and has the following limitations:

  • Formulas that use mirror columns are not supported.
  • You can retrieve up to 10,000 formula values per minute.
  • You can query up to five formula columns in one request.

As we do additional testing and development, these limitations will gradually be reduced or removed.

query { boards(ids: [1234567890]){ items_page(limit:2){ items{ id column_values { ...on FormulaValue{ display_value id type } } } } } }

We recently fixed a bug that caused updates to be returned in chronological order (oldest first) instead of reverse chronological order (newest first) when queried through items. This bug impacted API versions 2024-10 and later.

The fix was deployed, and updates should now be returned in reverse chronological order.

query { items (ids: 123456890) { updates { id created_at } } }

In version 2025-01, we added two new fields on updates queries:

  • edited_at: Returns the date the update's body was last edited
  • viewers: Returns data about the update's viewers
query { updates { body edited_at viewers { user_id medium user { name } } } }
let query = "query { updates { body edited_at viewers { user_id medium user { name }}}}"; 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 2025-01 and later, we added the app_subscriptions object that enables you to query all of your app's subscriptions.

This call only works for app collaborators.

query { app_subscriptions (app_id: 1234567890) { cursor total_count subscriptions { account_id monthly_price currency } } }

We recently introduced an upgraded GraphQL parser that enforced GraphQL specification query validations that were previously ignored. The API schema did not change.

This was done to provide a more reliable and consistent API experience while also simplifying integrations with other GraphQL-compliant tools.

This upgrade caused queries that previously passed validation in 2024-07 to fail in 2024-10.

Solution

To avoid any breaking changes in version 2024-10, we've made the new parser backward compatible. This means that you can request 2024-10 in the API-Version header to continue using the query successfully.

From 2025-01 onwards, some validation rules will be introduced as breaking changes. You will then need to adjust your queries according to the documented schema. Queries that don't meet these standards may fail.

Impact

This fix impacts a variety of queries, including those that use a line break inside of a string or send null in a non-nullable field. If you switch to 2024-10 and encounter any unannounced breaking changes, please open a support ticket to report it to the team.

Test your queries

If you want to test your query, we recommend using the API playground. Before running the query, if any of it is not valid, you should see a syntax error in red on the left side. In versions 2024-10 and earlier, the query will still run successfully despite the error.

Examples

Line breaks

For scenarios that do not involve line breaks directly within string values, 2024-10 and earlier would accept the input in the example below.

mutation { change_multiple_column_values ( item_id: 2973338210, board_id: 2973338169, column_values: "{ \"link__1\": {\"url\": \"www.example.com\",\"text\": \"link url\"} }") { id } }

Now, version 2025-01 will expect the string as a single line.

mutation { change_multiple_column_values( item_id: 9876543210, board_id: 1234567890, column_values: "{\"link__1\": {\"url\": \"https://www.example.com\", \"text\": \"link url\"}}" ) { id } }

Null values

Versions 2024-10 and earlier sometimes accepted null values for non-nullable fields.

query { boards (ids: 1234567890) { items_page (limit: 1, query_params: { rules: [ {column_id: "checkbox", compare_value: [null], operator: is_not_empty} ] }) { items { id name } } } }

Version 2025-01 will not accept null, so you have to send an empty compare_value.

query { boards (ids: 1234567890) { items_page (limit: 1, query_params: { rules: [ {column_id: "checkbox", compare_value: [], operator: is_not_empty} ] }) { items { id name } } } }