On Tuesday, September 10th, at 7:30 AM EST, we will conduct 60 minutes of planned maintenance on the following low-utilization endpoints in the RC version (i.e., 2024-10
) ONLY:
Other queries and mutations may also experience very brief periods of downtime. If your call fails, wait 60 seconds and try again.
In API versions 2024-10
and later, we added the following fields and mutations to the updates
object:
- Mutations
- Pin an update to the top of an item
- Unpin an update from the top of an item
- Edit an update
- Unlike an update
- Queries
likes
fieldpinned_to_top
fielditem
field
As a reminder, we will be deprecating the following API versions on January 15th, 2025:
2024-07
2024-04
2024-01
2023-10
After 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
mutation
query {
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!
Before
{
"error_message": "User unauthorized to perform action",
"error_code": "UserUnauthorizedException",
"error_data": {},
"status_code": 403,
"account_id": 123456
}
After
{
"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.
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
}
}