Changes in API IDs internal structure (v4)
Overview
We're changing the format of Wrike's API ID on July 1, 2025, so please check if your integrations perform any of the actions below with API IDs. Also note that such IDs are returned in many places, including sub-records in responses from our API and webhooks.
Don't worry, we're not changing the format or values of any IDs created before July 1. Those will stay the same, and you can continue to use them. But any new IDs created from July 1 may be in the new format as we gradually roll out the change.
What to avoid when working with API IDs
Do not check them for allowed or forbidden characters
For example, the following code will eventually throw an exception on a valid API ID:
String id = "..."; // received in a response from the Wrike API
if (!id.matches("[A-Z0-9]+")) { // DO NOT DO THIS
throw new IllegalArgumentException("Wrong ID!");
}
Do not use parts of it as identifiers
For example, the following code will eventually create an incorrect "entityId" (even without throwing an error) or might fail if the ID's length is less than expected:
String id = "..."; // received in a response from the Wrike API
String entityId = id.substring(2, 6); // DO NOT DO THIS
Do not change them
For example, the following code will create an incorrect "normalizedId" that can conflict with other API IDs and might not be equal to the original one:
String id = "..."; // received in a response from the Wrike API
String normalizedId = id.toLowerCase(); // DO NOT DO THIS
Do not compare them with each other except for equality
For example, the following code will result in incorrect logic, as API IDs are not guaranteed to be ordered lexicographically (or in any other way):
String id1 = "..."; // received in a response from the Wrike API
String id2 = "..."; // received in a response from the Wrike API
if (id1.compareTo(id2) > 0) { // DO NOT DO THIS
However, code that checks them for equality is acceptable:
String id1 = "..."; // received in a response from the Wrike API
String id2 = "..."; // received in a response from the Wrike API
if (!id1.equals(id2)) {
// Code for when IDs are not equal
}
Self-check list
What if my integration applies some limits or transformations to API IDs?
Please review your integrations and update their code to avoid such actions with API IDs before July 1, 2025, or your integration might stop working.
What if I don't migrate my integration before the deadline?
Any affected integrations that are not migrated before July 1, 2025 will stop working.
What if my integration doesn't perform any such actions with API IDs?
Then no further actions are required here. Thank you for building a reliable system!