1 How do I start working with the API?

In order to use Wrike API, you should be a Wrike user. Most likely you already are, but if not, please sign up for an account on our tour page via the registration form. You can also contact one of your coworkers that already uses Wrike and ask to be invited to their account. After registering, you can obtain client credentials for your app by creating an API App on Apps & Integrations portal in Wrike. After that, all you have to do is dive into docs to learn about OAuth and our API methods, and then start building your application!

2 Is there a fee or do you need a specific Wrike subscription plan to use the Wrike API?

No! Usage of our API is completely free and allowed for accounts with any subscription plan (including Free). However, access to features through the API is tied to subscription plans. For example, if a user making an API call to get task details has an Enterprise account, the response may include Custom Fields.

3 What is the difference between versions of the API?

We have released API v4, a new generation of Wrike API built for improved security and scalability. The main difference between Wrike API v4 and v3 is that the new version can access data from only one account at a time. API v3 is not compatible with API v4 and will be sunsetted on June 30, 2019, so it should not be used for any new development and existing code needs to be migrated. The migration article provides more details.

4 Does the API support users on European Data Center (EU DC)?

Yes, but your application needs to account for interoperability. The web host for API endpoints differ depending on the datacenter that contains user’s data. For example, the “tasks” endpoint on EU DC will have URL https://app-eu.wrike.com/api/v4/tasks. Always use the “host” parameter obtained from /oauth2/token call to construct API endpoint URLs.

5 What is the general scope of API requests? I see that there's a complex Access Rights policy in Wrike.

Wrike API requests are executed on behalf of the end-user, who gives consent for the third-party app through OAuth2 protocol.

The consent screen will request permissions according to the scopes, specified for app in OAuth authorization call. Each API method documentation contains information about which scopes are required. Best practice is to only request the scopes that are necessary for the application to work. The data available through the API is the data visible and accessible to that particular user according to specific sharing settings, which are described in our Help pages.

6 What kind of data can I get through the API?

You can access almost every part of our data-model, with a few exceptions for complex or niche Wrike features. For basic Wrike items - such as folders, tasks, comments, and time logs - you can perform a standard set of operations: create new, edit or delete existing objects, and change individual properties or attributes. You can check the full list of API methods in full API reference. Additionally, Wrike offers BI Export API that returns all account data in an analytics-friendly format (as a set of CSV files). BI Export contains some data that is not yet included in standard REST APIs such as the history of task statuses and custom field changes.

7 How does that OAuth2 thing work?

OAuth2 is an open standard which describes secure ways for the end-user to grant a third-party app access to their data (in this case, data from the user’s Wrike account). Security is of paramount importance, which makes authorization more complex topic than working with Wrike API itself. Part of our API documentation is dedicated to the OAuth 2.0 authorization process and we try to stick as closely as possible to IETF specs on the subject - RFC 6749.

Here is a brief summary of the basic authorization flow:

The user is presented with Wrike’s consent screen (login is required) showing the application name and asking for permission for the app to access the user's data. If the user is enrolled in multiple accounts, an additional screen asking to select one account to work with will be shown. When the user grants access, we redirect the user to the app’s redirect URI (you must provide one when registering your application) and you can retrieve an authorization code at this URI. The code is then exchanged for a set of tokens. The access token is used for all API calls and has a short TTL, while the refresh token is only used to get new access tokens.

There are several things to bear in mind:

  • You can have multiple redirect URIs for your application, but they all must use HTTPS protocol to protect the authorization code we send while in transfer. However, you can use http://localhost for development purposes without setting up HTTPS.
  • Your refresh token should only be used as needed to get new access tokens, and passing tokens as parameters is a lot less secure than doing so in the headers.
  • The web host for API endpoints differ depending on the datacenter that contains user’s data. For best compatibility, always use “host” parameter obtained from /oauth2/token call to construct API endpoint URLs.

Please get in touch with support@team.wrike.com if you have any questions!

8 I'm developing a background/UI-less/other non-conventional app - how should I work with OAuth2?

It is even easier to set up! The calls are still made on behalf of a specific end-user (this is a core concept of our implementation of OAuth2 standard and Wrike architecture in general). We suggest creating a "technical" user (this user should have access to all required folders and tasks in Wrike). You will use this user for the initial run of the basic OAuth2 flow, which cannot be fully scripted or run with cURL. Follow these steps:
  • Put the initial URL in your browser with your API credentials:
    https://www.wrike.com/oauth2/authorize?response_type=code&client_id=<client_id>
  • Log in as your “technical” user in Wrike and grant access to your application.
  • You will be redirected to the URI you previously specified (we allow http://localhost for convenient local development) with the authorization code as part of the URI.
  • Grab the authorization code and use it in the console cURL client to exchange it for a set of tokens. Store your refresh token securely and use it to obtain fresh access tokens as they expire. From this point, your background application can run without any user interaction by relying on these tokens.

Alternatively, you can bypass OAuth completely by using Permanent Access Tokens. Be aware that Permanent tokens grant full access to user’s account, never expire and are not intended to be used in multi-user applications.

9 Are there rate limits or quotas for requests?

Our current rate limit is estimated on per-second basis which leads to approximately 200 requests per minute. A best practice: if you encounter 429 HTTP response to your requests, use retries with exponential backoff. Also note that the [GET]/tasks method returns only 1,000 results by default for each call. To get more tasks, you can use pagination.

We also have internal DDoS protection that shuts down requests that consume too much resources. This should not happen during normal usage of the API - but if you receive 429 HTTP response without exceeding rate limit above please contact us at support@team.wrike.com.

10 What is the recommended way to check data in Wrike for updates?

While you can use periodic GET requests to poll data for new changes, the most efficient way is to register a Webhook that allow you to subscribe to notifications about changes in Wrike. See more information about using Webhooks here.

11 I'm developing an app in <insert your favorite language here>, do you have some kind of a wrapper or "Hello world" app for me?

Right now, we don’t have ready examples to jumpstart your app development as part of Wrike, but our API Community Forums have some maintained libraries for popular languages such as C# or PHP. In any case, our API gurus will be able to help when you get stuck. Send us an email at support@team.wrike.com. You are not confined to using any specific language, and we’d love to hear your success story using the Wrike API if a more esoteric language is your weapon of choice. :)

12 Is there already a Wrike integration with <insert your favorite app here>?

We have launched Wrike Integrate, a new paid add-on for Business and Enterprise subscriptions that allows for integrating Wrike with more than 150 populars apps in code-less fashion. We also have a lot of integrations available as part of base plans. So chances are, your app is already supported! Check with our list of current integrations. If your app is missing, we would be happy to learn about your use-cases, so feel free to ask us about it by emailing support@team.wrike.com.

13 My question is not listed here, what should I do?

Post the question on API Community Forum! Both Wrike employees and other Wrike users are there to answer your questions. If your question is of private nature, please contact our Support team at support@team.wrike.com. We don’t judge, and we're always happy to talk!