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
, or 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 filling out the form on our Developer Portal
. After filling out the form you will receive an email with your credentials. 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 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 gave consent for the third-party app through OAuth2 protocol. Accordingly, the data available through the API is only the data visible and accessible to that exact user according to your specific sharing settings (which are described in a user-friendly fashion in our Help pages
). There are no other scopes (e.g. read-only, read/write, etc.) yet.
4 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 the complex or niche Wrike features (e.g. Custom Calendars). For basic Wrike entities (e.g. Folders, Tasks, Comments, 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
5 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 required) showing the application name and asking for permission for the app to access the user's data. When the user grants access, we redirect 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.
Please get in touch with email@example.com if you have any questions!
6 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.
7 How can I change or invalidate my app credentials?
You need to contact our Support team at firstname.lastname@example.org
and ask them to do that for you.
8 Are there rate limits or quotas for requests?
Our current rate limit is maximum 100 requests per minute. A best practice: if you encounter 429 or 503 HTTP responses to your requests, use exponential fallback starting with 1sec wait. Also note that the [GET]/tasks method returns only 1,000 results by default for each call. To get more tasks, you need to add parameters for the page size of your task list response and use tokens as parameters to get more paged results. (Parameters are described in our [GET]/tasks method docs
9 I'm developing 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. But if you are using a popular language or framework, there is a good chance our API gurus will be able to help when you get stuck. Send us an email at email@example.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. :)
10 Is there already a Wrike integration with <insert your favorite app here>?
You can check with our list of current integrations
. If you are looking for a specific integration with a very popular tool, there's a chance that we're developing it right now. Our product management team would be happy to learn about your use-cases and include you in the list of beta-testers, so feel free to ask us about it by emailing firstname.lastname@example.org
11 My question is not listed here, what should I do?
Please contact our Support team at email@example.com
. We don’t judge, and we're always happy to talk!