As a reminder, we will be deprecating the following API versions on January 15th, 2025:
2024-072024-042024-012023-10
After January 15th, calls to any of these versions will automatically be routed to 2024-10.
As a reminder, we will be deprecating the following API versions on January 15th, 2025:
2024-072024-042024-012023-10After January 15th, calls to any of these versions will automatically be routed to 2024-10.
The platform API will support the Emails & Activities (E&A) app in API versions 2024-10 and later. We added the following queries to read, create, and delete timeline items in the E&A app:
timeline_item querycreate_timeline_item mutationdelete_timeline_item mutationquery {
timeline_item (id: "6376175611") {
board {
id
}
item {
name
}
id
ref_id
user {
id
name
}
title
type
}
}We recently added a new descriptive FIELD_LIMIT_EXCEEDED error to all API versions.
The error occurs when there are to many requests running concurrently. Previously, this returned a non-descriptive Internal Server Error . You can resolve the error by waiting for the amount of time indicated in the error before retrying the call.
{
"error_message": "Concurrency limit exceeded for the field",
"error_code": "FIELD_LIMIT_EXCEEDED",
"error_data": {
"retry_in_seconds": 15,
"entity": "boards"
},
"status_code": 429,
"account_id": 123456
}In API version 2024-10, we added the errors object to all API errors to comply with GraphQL specifications. Check out the before and after sample errors below!
{
"error_message": "User unauthorized to perform action",
"error_code": "UserUnauthorizedException",
"error_data": {},
"status_code": 403,
"account_id": 123456
}{
"errors": [
{
"message": "User unauthorized to perform action",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"me"
],
"extensions": {
"code": "UserUnauthorizedException",
"error_data": {},
"status_code": 403
}
}
],
"error_message": "User unauthorized to perform action",
"error_code": "UserUnauthorizedException",
"error_data": {},
"status_code": 403,
"account_id": 123456
}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.
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
}
}
}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 <account name>" 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.
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)));You can now access our API/apps framework AI bot in the API playground using the Ask AI button in the top right corner!
