Dark
Get help in the API Community

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!