Wrike’s Development Platform

  • Overview

    Wrike’s Development Platform enables building custom software applications on top of Wrike’s rich project collaboration features. The platform consists of a set of seven callable API methods and API endpoints. The arguments, responses and error codes for each method are listed in the API Methods section.

    To perform an action using Wrike API, send a request (specifying a method and its parameters) by using the desired request format to an API endpoint. A response will then be sent back to you.

    All listed request formats take a list of named parameters.

    To get started, please read the rest of the documentation and apply for an API key by registering your application in the form on the left.

  • User Authentication

    WRIKE OAuth Quick Start Guide

    Abstract

    This guide provides information about using OAuth with WRIKE APIs and Web services.

    What is OAuth?

    OAuth is an open protocol, enabling an application to access end user information from a Web service when the application is authorized by the end user. The end user's information is securely transferred without revealing the identity of the user. OAuth verifies that requests by your application are actually yours and that you have permission to access potentially sensitive data for WRIKE users.

    This document supplements the official OAuth documentation and explains how the authorization process works when using WRIKE APIs that require the three-legged OAuth model (a model that requires explicit consent from end users).

    OAuth Libraries and Code

    Since OAuth is an open standard, you can take advantage of several open-source client libraries for OAuth. These libraries, available for various languages, can reduce the time you spend implementing authorization for your service or app. You can review these libraries on the OAuth site: http://oauth.net/code

    OAuth Authorization Flow

    Here is how the overall three-legged flow of OAuth authorization works:

    1. Sign Up and Get a Consumer Key.
    2. Get a Request Token.
    3. Get User Authorization.
    4. Exchange the Request Token and OAuth Verifier for an Access Token.
    1 Sign Up and Get a Consumer Key

    Before you start making WRIKE API requests, you need to sign up and submit some details about your application.

    To sign up, register your application in the form on the left. After you register your application, you will receive a Consumer Key, which identifies you to Wrike. You will also receive a Consumer Secret that will be required when asking for a Request Token. Save the Consumer Key and Secret so that you can use them in your code as required.

    2 Get a Request Token (get_request_token)
    URL:
    https://www.wrike.com/rest/auth/request_token
    Supported Methods:
    GET, POST

    Before your Users get involved, your application uses your Consumer Key to obtain a Request Token (OAuth Core 1.0 Spec, Section 6.1).The Request Token is a temporary token used to initiate User authorization for your application. The Request Token tells Wrike that you have obtained User approval, but the Request Token must be exchanged for an Access Token. The Request Token is intentionally short so that a User can type it manually as part of the redirect URL in cases when the application cannot launch a browser (such as a mobile phone app or a device that has no browser).

    Here is an example of URI request for a request token:

    https://www.wrike.com/rest/auth/request_token
    ?oauth_nonce=ce2130523f788f313f76314ed3965ea6
     &oauth_timestamp=1202956957
     &oauth_consumer_key=123456891011121314151617181920
     &oauth_signature_method=plaintext
     &oauth_signature=abcdef
     &oauth_version=1.0
     &oauth_callback="http://yoursite.com/callback"
    

    The key request parameters are shown in the following table:

    Table 1. Request Parameters for getting Request Token
    Request Parameter Description
    oauth_consumer_key Consumer Key provided to you once you sign up.
    oauth_nonce A random string (OAuth Core 1.0 Spec, Section 8)
    oauth_signature_method The signature method that you use to sign the request. This can be PLAINTEXT or HMAC-SHA1.
    oauth_signature The Consumer Secret that was issued to the application. If you are using the PLAINTEXT signature method, add %26 at the end of the Consumer Secret.
    oauth_timestamp Current timestamp of the request. This value must be +-600 seconds of the current time.
    oauth_version OAuth version (1.0).
    oauth_callback Wrike redirects Users to this URL after they authorize access to their private data. If your application does not have access to a browser, you must specify the callback as oob (out of bounds).

    Wrike returns a response similar to the following via the URL:

    1. oauth_token=z4ezdgj
    2. &oauth_token_secret=47ba47e0048b7f2105db67df18ffd24bd072688a

    The key response parameters include the following:

    Table 2. Response Parameters for getting Request Token
    Response Parameter Description
    oauth_token_secret The secret associated with the Request Token, provided in hexstring format.
    oauth_token The Request Token that Wrike returns as a response to the request_token call. The Request Token is required during the User authorization process.
    3 Get User Authorization
    URL:
    https://www.wrike.com/rest/auth/authorize
    Supported Methods:
    GET, POST

    After getting the Request Token from Wrike, your application displays Wrike’s authorization page (OAuth Core 1.0 Spec, Section 6.2) to your Users, asking them to give permission to your application to access their data.

    The following is an example of an authorization URL that includes the Request Token:

    https://www.wrike.com/rest/auth/authorize?oauth_token=j5nyp6
    
    Table 3. Request Parameters for getting Request Auth
    Request Parameter Description
    oauth_token The Request Token that Wrike returns as a response to the request_token call. The Request Token is required during the User authorization process.
    4 Exchange the Request Token for an Access Token
    URL:
    https://www.wrike.com/rest/auth/access_token
    Supported Methods:
    GET, POST

    After your Users authorize your application to access their information, your application needs to exchange the approved Request Token for an Access Token, which tells Wrike that your application has been given authorization to access User data. (OAuth Core 1.0 Spec, Section 6.3)

    The following is an example of a URI request for an Access Token:

    https://www.wrike.com/rest/auth/access_token
    ?oauth_consumer_key=dj0yJmk9NG5USlVvTlZsZEpnJmQ9WVdrOVQwa
    zFPRUozTkc4bWNHozlNVE13TXprM01UUTBNZy0tJnM9Y29uc3VtZXJzZWNyZXQmeD1kNg--
     &oauth_signature_method=PLAINTEXT
     &oauth_version=1.0
     &oauth_token=gugucz&oauth_timestamp=1228169662
     &oauth_nonce=8B9SpF
    &oauth_signature=5f78507cf0acc38890cf5aa697210822e90c8b1c%261fa61b464613d0d32de80089fe099caf34c9dac5
    
    Table 4. Request Parameters for Getting Access Token
    Request Parameter Description
    oauth_consumer_key Consumer Key provided to you once you sign up.
    oauth_signature_method The signature method that you use to sign the request. This can be PLAINTEXT or HMAC-SHA1.
    oauth_nonce A random string (OAuth Core 1.0 Spec, Section 8)
    oauth_signature The concatenated Consumer Secret and Token Secret separated by an "&" character. If you are using the PLAINTEXT signature method, add%26 at the end of the Consumer Secret. If using HMAC-SHA1, refer to OAuth Core 1.0 Spec, Section 9.2.
    oauth_timestamp Current timestamp of the request. This value must be +-600 seconds of the current time.
    oauth_version OAuth version (1.0).
    oauth_token The Request Token, which is required during the User authorization process and is short enough for the end User to easily enter. The Request Token is provided in response to the get_request_token request.

    Wrike will return a response similar to the following:

    oauth_token=A%3DqVDHXBngo1tEtzox.JMhzd91Rk99.39Al7hos3J80mm1j_3nGP4BiilL777vUj2rsPLj1cZw.srbisvw.cz42Lzmlxt    H0Kk9mkXilvS1ll5lNoMKXO5zy5YG4vO3fbGKewp7IESYMIdEi4Md7SroYiv6kBCEjqB4jXr0.8XsMvOlQgZ.aKNKXwc2sv3n4BOZxs    54tzXV6rGNpEHZUaj9CovPUo44isTgs9FnLIKpXFCU4Jq1BB3_IOTFBNf1vtf5vSxaxe_L5dUhr.i15Hx0LTZ2tlsWeDcActSGGBWVc    vytPF3cK9mDWy44baBgCVI3AEbGCqg.NGhDPqOh1ZHfKFtYlBZfG4xf2n..CdxcM5x4INxnVz2.biMkfhfkw8haJuR0RaUY37lBxZ9z    3e.TlH0zdjaDjxh2tCoZQiHWPMe8HMv5LFYPZvsMp3tkG5u_QM9ymtn8jG.nDvEDA0rhBoODWguLW5079nD7RoezDxr.2b76jz7P4jY    d2k8BsZbBF6Y7V2nl.Gx9Sw5HVXa3cRWFBevCqUBPc5Tod4Cy1lLnTbxTYCpLYethRWERjX43C.td4VFqMkr3.TSZCc9UtsOeb2Ulr1
       h.E8bRwPoXV9eq4vAtNX_8KVca9qcIJtvVV8kc3J6nZXWQyoLhQ5YYrtY33bT0COPBexk-
     &oauth_token_secret=c5a9684d3a3aa22aa051308987219efb8d6982fc
    
    Table 5. Response Parameters for Getting Access Token
    Response Parameter Description
    oauth_token The Access Token provides access to protected resources accessible through Wrike API.
    oauth_token_secret The secret associated with the Access Token provided in hexstring format.

    Once you have an Access Token, you can use it in requests to Wrike API.

    Using OAuth in WRIKE API Requests

    For requests to Wrike API that require OAuth authorization, you must use the HMAC-SHA1 encryption method because requests are not secure if HTTP is used. The following example is an HTTP POST request for the profile of a fictional User with the UID OYgzyijdAo5Q.

    POST http://www.wrike.com/api/[json/xml]/v2/wrike.profile.get?
      oauth_consumer_key="dj0yJmk9nM9Y29uc3VtZXJzZWNyZXQmeD1lMg--",
      oauth_nonce="24829.2331",
      oauth_signature_method="HMAC-SHA1",
      oauth_timestamp="1219450170",
      oauth_token="A%3DuqkiebGpiTJl7ThQxU.jDXXaETYyfEy3xAKPyoavokwOOcZcz8Xs_l1Nvnl._
       KmCEVCeLkxxT1Y6BgRqf5f98sQWHklBM_anetveR7okK_M_5XEmQ1_1reo3UgKQULT_dQT8Gao3.
        Rrgz5rJxgmnYrhdWWdfgTdMQVzpbJT2aGkz59NTK1O8yXVE1EvZUCqju7WiFYu.WHNEw.9TWq3g--",
      oauth_version="1.0",
      oauth_signature="O2AQipLITO0aYHKZc9266RzC94%3D"
    
  • Encoding

    The Wrike API expects all data to be UTF-8 encoded.

    All data is converted to UTF-8 before being stored.

  • Request method

    Post request only.

  • Response Formats

    By default, all responses are returned in XML format unless a format parameter is sent and its value is not XML. Possible formats are XML and JSON.

  • URLs

    You should use the following URL format:

    http://www.wrike.com/api/v2/API_METHOD?argumentName1=argumentValue1[&argumentName2=argumentValue2......]
    http://www.wrike.com/api/json/v2/API_METHOD?argumentName1=argumentValue1[&argumentName2=argumentValue2......]
    http://www.wrike.com/api/xml/v2/API_METHOD?argumentName1=argumentValue1[&argumentName2=argumentValue2......]
        

    API_METHOD is one of the methods described in the next sections.

    You can specify data format you will get from response.

  • Async Keys

    The asynchronous key is a marker of request. The asynchronous key is granted by parameter in the request, so it is the identifier of this request. If you add the key to the request, this key will always return in response. This parameter is optional.

  • Root Folder

    The root folder is an abstract folder that the user cannot get, edit or remove. In the WRIKE workspace, this folder is called “My Folders.” The root folder always has ID = 0.

  • profile

    wrike.profile.get

    Get a profile for the calling user

    Authentication

    Arguments

    • [String] token (required)

    Response

    • [String] uid - user string identifier
    • [String] lastName - last name of the calling user
    • [String] firstName - first name of the calling user
    • [String] primaryEmail - primary email
    • [String] organization - organization name
    • [String] workingDays - working days starting from Sunday marked "1" - example [0111110]
    • [String] weekendDays - weekends from Sunday marked "1" - example [1000001]
    • [String] dateFormat - date format (“MM/dd/yyyy” or “dd/MM/yyyy”)
    • [String] timezoneName - time zone
    • [int] timezoneOffset - time zone offset in milliseconds
    • [List<String>] secondaryEmails - verified secondary emails
    • [String] language - language
    • [String] license - license name

    Examples

    <?xml version="1.0" encoding="UTF-8"?>
    <profile>
        <lastName>Api Test</lastName>
        <firstName>Wrike</firstName>
        <primaryEmail>wrikeapitest@gmail.com</primaryEmail>
        <organization>TEST</organization>
        <workingDays>0111110</workingDays>
        <weekendDays>1000001</weekendDays>
        <dateFormat>MM/dd/yyyy</dateFormat>
        <timezoneName>Europe/Amsterdam</timezoneName>
        <timezoneOffset>10800000</timezoneOffset>
        <secondaryEmails/>
        <language>en</language>
        <uid>OYgzyijdAo5Q</uid>
        <license>Collaborator</license>
    </profile>                    
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
  • contacts

    wrike.contacts.list

    Get a list of contacts for the calling user.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)

    Response

    list of

    • [String] uid - user string identifier
    • [String] firstName - first name
    • [String] lastName - last name
    • [String] email - primary email of contact

    Examples

        <?xml version="1.0" encoding="UTF-8"?>
        <contacts>
            <list>
                <contact uid="GCG7DDZ4Q1ic" firstName="Alexey" lastName="Koryak"
                         email="Alexey.Koryak@team.wrike.com"/>
                <contact uid="t3acIwjcblNN" firstName="Dmitry" lastName="Simochkin"
                         email="Dmitry.Simochkin@team.wrike.com"/>
            </list>
        </contacts>                    
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
  • folders

    Rules and specifications

    • A folder can be included in several parent folders. Each folder can contain an unlimited number of descendant folders and tasks. Thus, the structure of tasks and folders can be described as a Directed Acyclic Graph (DAG).
    • If a folder is included in the root folder, it cannot be included in any other folder.
    • A folder has no start date and due date.
    • A folder has no responsible users.
    • A folder has no status.
    • When you delete a folder, all its descendants (both tasks and folders) will be deleted as well, excluding those that are included in other folders.
    • In case you add or move a folder to other folders, all shared users from other folders will be added to the folder.

    wrike.folder.tree

    Get a list of all active folders of the calling user.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Boolean] includeChilds (optional) (default true) - show all descendants, or only the first layer of folders
    • [Integer] parentId (optional) (default Root Folder) - show descendants from this folder.
    • [String] asyncKey (optional)

    Response (list)

    • [String] id - folder id
    • [String] parentId - parent folder id,
    • [String] title - folder title
    • [String] fullPath - full path to the folder from this root.
    • [String] minimalPath - unique minimal path to this folder.

    Examples

    {"foldersTree": {
        "folders": [
        {
          "id": "0",
          "parentId": "0",
          "title": "/",
          "fullPath": "/",
          "minimalPath": "/"
        },
        {
          "id": "284064",
          "parentId": "0",
          "title": "spool",
          "fullPath": "/spool",
          "minimalPath": "spool"
        },
        {
          "id": "368196",
          "parentId": "284064",
          "title": "test",
          "fullPath": "/spool/test",
          "minimalPath": "test"
        }
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    406: ACCESS_ERROR
    Parent folder with given id not found in the calling user’s folder scope.

    wrike.folder.get

    Get folder data.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Integer] id (required) - folder ID
    • [String] asyncKey (optional)

    Response

    • [Integer] - folder ID
    • [String] - folder title
    • [String] - folder description
    • [String] - folder author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [String] whoChanged - UID of the user who made the last modification, (“-1” in case the user was deleted)
    • [String] lastUpdatedDate - date of the last modification
    • [Long] attachmentsCount - count of attachments
    • [Long] commentsCount - count of comments
    • [List <String>] sharedUsers - list of UIDs of users who share the folder
    • [List <String>] parents - list of parent folders IDs. (“0” - means Root Folder)
    • [boolean] deleted - only in case the folder was deleted

    Examples

    {"folder": {
      "id": 284064,
      "title": "spool",
      "description": "Description of my first project",
      "authorUid": "GCG7DDZ4Q1ic",
      "createdDate": "2009-06-05 11:50:51.723",
      "whoChanged": "OYgzyijdAo5Q",
      "lastUpdatedDate": "2010-11-17 17:05:16.239",
      "attachmentsCount": 1,
      "commentsCount": 2,
      "sharedUsers": [
        "OYgzyijdAo5Q"
      ],
      "parents": [
        "0"
      ],
      "asyncKey": "123654"
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: id
    405: LIMITATION_ERROR
    'Get' operation is forbidden for 'RootFolder' (id = 0)
    406: ACCESS_ERROR
    The folder with given id not found in the calling user’s folder scope.

    wrike.folder.add

    Add a new folder.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [String] title (required) - folder title
    • [String] description (optional) - folder description
    • [List <String>] sharedUsers (optional)- user UIDs. (IDs are separated by a comma.)
    • [List <String>] parents (optional)- parent folders’ IDs (IDs are separated by a comma.) (In case the parents are not specified - the folder is added to the root)
    • [String] asyncKey (optional)

    Response

    • [Integer] id- folder ID
    • [String] title - folder title
    • [String] description - folder description
    • [String] authorUid - folder author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [String] whoChanged - UID of the user who made the last modification, (“-1” in case the user was deleted)
    • [String] lastUpdatedDate - date of the last modification
    • [Long] attachmentsCount - count of attachments
    • [Long] commentsCount - count of comments
    • [List <String>] sharedUsers - list of UIDs of users who share the folder
    • [List <String>] parents - list of parent folders’ IDs. (“0” - means Root Folder)
    • [boolean] deleted - only in case the folder was deleted
    • [String] asyncKey (optional)

    Examples

    {"folder": {
      "id": 371956,
      "title": "test new folder 1290122316635",
      "description": "test description,
      "authorUid": "OYgzyijdAo5Q",
      "createdDate": "2010-11-19 01:19:07.204",
      "whoChanged": "OYgzyijdAo5Q",
      "lastUpdatedDate": "2010-11-19 01:19:07.213",
      "attachmentsCount": 0,
      "commentsCount": 0,
      "sharedUsers": [
        "N5L9OlSRomRp",
        "OYgzyijdAo5Q"
      ],
      "parents": [
        "0"
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: title.
    405:LIMITATION_ERROR
    The calling user has a Viewer license.
    406: ACCESS_ERROR
    The folder with given id not found in the calling user’s folder scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.folder.delete

    Delete folders and all descendants.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Integer] ids (required) folders’ IDs (IDs are separated by a comma.)
    • [String] asyncKey (optional)

    Response (list)

    • [Integer] id - folder ID
    • [String] title - folder title
    • [boolean] deleted
    • [List <String>] deletedElements - all elements (folders and tasks) which were deleted
    • [String] asyncKey (optional)

    Examples

    {"folders": {
      "asyncKey": "123456",
      "list": [
        {
          "id": 373879,
          "title": "test_new_folder1290129095442",
          "deleted": true,
          "deletedEllements": "373879"
        }
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: id or title
    405:LIMITATION_ERROR
    The calling user has a Viewer license
    406: ACCESS_ERROR
    The folder with given id not found in the calling user’s folder scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.folder.update

    Update a folder.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Integer] id ( Required ) folder ID
    • [String] title (required) - folder title
    • [String] description (optional) - folder description
    • [List <String>] sharedUsers (optional)- user UIDs. (IDs are separated by a comma.)
    • [List <String>] parents (optional)- parent folders’ IDs (IDs are separated by a comma.) (In case the parents are not specified - the folder is added to the root)
    • [String] asyncKey (optional)

    Response

    • [Integer] id - folder ID
    • [String] title - folder title
    • [String] description - folder description
    • [String] authorUid - folder author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [String] whoChanged - UID of the user who made the last modification, (“-1” in case the user was deleted)
    • [String] lastUpdatedDate - date of last modification
    • [Long] attachmentsCount - count of attachments
    • [Long] commentsCount - count of comments
    • [List <String>] sharedUsers - list of UIDs of users who share the folder
    • [List <String>] parents - list of parent folders’ IDs. (“0” - means Root Folder)
    • [boolean] deleted - only in case the folder was deleted
    • [String] asyncKey (optional)

    Examples

    {"folder": {
      "id": 371915,
      "title": "test_new_folder_updated1290122347300",
      "description": "description_updated1290122347300",
      "authorUid": "OYgzyijdAo5Q",
      "createdDate": "2010-11-19 01:19:02.864",
      "whoChanged": "OYgzyijdAo5Q",
      "lastUpdatedDate": "2010-11-19 01:20:33.607",
      "attachmentsCount": 0,
      "commentsCount": 0,
      "sharedUsers": [
        "GCG7DDZ4Q1ic",
        "OYgzyijdAo5Q"
      ],
      "parents": [
        "284064"
      ],
      "asyncKey": "123654"
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: id or title.
    405:LIMITATION_ERROR
    The calling user has a Viewer license or RootFolder cannot be updated or update operation is forbidden for deleted folder.
    406: ACCESS_ERROR
    The folder with given id not found in the calling user’s folder scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.
  • tasks

    Rules and specifications

    • A task can be included in several parent folders.
    • A task cannot be simultaneously included in the root and the parent folder.

    Statuses

    • 0 - active
    • 1 - completed
    • 2 - deferred
    • 3 - canceled

    Importance

    • 0 - high
    • 1 - normal
    • 2 - low

    Dates and duration

    • backlog - no start date, no due date, duration
    • milestone - no start date, no duration, only due date
    • planned - start date, due date, duration

    wrike.task.get

    Get task data.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Integer] id (required) - task ID
    • [List <String>] fields (Optional) - task’s fields in response
    • [String] asyncKey (optional)

    Response

    • [Integer] id - task ID
    • [String] title - task title
    • [String] description - task description
    • [String] authorUid - task author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [String] whoChanged - UID of the user who made the last modification, (“-1” in case the user was deleted)
    • [String] lastUpdatedDate - date of the last modification
    • [Long] attachmentsCount - count of attachments
    • [Long] commentsCount - count of comments
    • [List <String>] responsibleUsers - list of UIDs of users responsible for the task
    • [List <String>] sharedUsers - list of UIDs of users who share the task
    • [List <String>] parents - list of parent folders’ IDs. (“0” - means Root Folder)
    • [boolean] deleted - only in case the task was deleted
    • [Integer] status - task’s status
    • [Integer] importance - task’s importance
    • [Date] startDate
    • [Date] dueDate
    • [String] duration
    • [List <Integer>]predecessor - predecessor IDs
    • [List <Integer>]successor - successor IDS
    • [String] asyncKey (optional)

    Examples

    {"task": {
      "id": 369812,
      "title": "The task name",
      "description": "",
      "authorUid": "9zuLfzS9mEUm",
      "importance": 1,
      "startDate": "2010-11-05 00:00:00.0",
      "dueDate": "2010-11-25 00:00:00.0",
      "duration": "6720",
      "commentsCount": 0,
      "responsibleUsers": [
        "9zuLfzS9mEUm"
      ],
      "parents": [
        "354504"
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: id.
    406: ACCESS_ERROR
    The task with given id not found in the calling user’s folder scope.

    wrike.task.filter

    Get tasks by filter or template.

    Authentication

    This method requires authentication.

    Arguments

    • main arguments
      • [String] token (required)
      • [List <String>] fields (Optional) - task’s fields in response
      • [String] asyncKey (optional)
      • [Integer] limit (Optional) - number of tasks in response
      • [Integer] offset(Optional) - number of tasks to skip before returning a response
    • template argument (Optional)
      • [String] template (Optional) - template name + responsibility. (template names - completed|overdue|today|thisweek)(responsibility - author by default or resp) (example “template=today:resp” or “template=today”)
        • overdue - where (dueDate >= today00), relationType (author|resp), order by (importance,dueDate,title)
        • today - where ( start_date < tomorrow_00) && due_date >= today_00 || (start_date is NULL && due_date >= today_00 && dueDate < tomorrow_00) ), relationType (author|resp), order by (dueDate,title)
        • thisweek - where ( start_date >= tomorrow_00 && start_date < today_00+7days || (start_date is NULL && due_date >= tomorrow_00 && dueDate < today_00+7days) ), relationType (author|resp), order by (startDate,dueDate,title)
        • completed - where (status = 1), relationType (author|resp), order by (dueDate,title)
    • filter arguments (Optional)
      • [List<Integer> ] ids] - list of task IDs
      • [String] title
      • [String] description - regexp
      • [List<String>] authors[uid,..],
      • [List<Integer>] parents - 0 (Root Folder) or list of parent IDs
      • [List<Integer>] statuses
      • [Date] fromStartDate,
      • [Date] toStartDate,
      • [boolean]includeNullStartDate,
      • [Date] fromDueDate,
      • [Date] toDueDate,
      • [Boolean]includeNullDueDate
      • [List<Integer>] relationType 0 - author,1 - responsible, 2 shared (by default all - 0,1,2)
      • [List<String:String>] orderBy - fields + asc/desc which used in order by

    Response

    • [Integer] id - task ID
    • [String] title - task title
    • [String] description - task description
    • [String] authorUid - task author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [String] whoChanged - UID of the user who made the last modification, (“-1” in case the user was deleted)
    • [String] lastUpdatedDate - date of the last modification
    • [Long] attachmentsCount - count of attachments
    • [Long] commentsCount - count of comments
    • [List <String>] responsibleUsers - list of UIDs of users responsible for the task
    • [List <String>] sharedUsers - list of UIDs of users who share the task
    • [List <String>] parents - list of parent folders’ IDs. (“0” - means Root Folder)
    • [boolean] deleted - only in case the task was deleted
    • [Integer] status - task’s status
    • [Integer] importance - task’s importance
    • [Date] startDate
    • [Date] dueDate
    • [String] duration
    • [List <Integer>]predecessor - predecessor IDs
    • [List <Integer>]successor - successor IDS
    • [String] asyncKey (optional)
    • [Long] tLast - marker of this request. Used in wrike.get.updates

    Examples

    Example 1
    {"filteredListCount": {
      "tLast": 1290072477305,
      "count": 52
    }}
    
    Example 2
    {"filteredList": {
      "tLast": 1290072853886,
      "list": [
        {
          "id": 369669,
          "authorUid": "9zuLfzS9mEUm",
          "status": 0,
          "startDate": "2010-11-01 00:00:00.0",
          "dueDate": "2010-11-22 00:00:00.0",
          "responsibleUsers": [
            "9zuLfzS9mEUm"
          ]
        },
        {
          "id": 369812,
          "authorUid": "9zuLfzS9mEUm",
          "status": 0,
          "startDate": "2010-11-05 00:00:00.0",
          "dueDate": "2010-11-25 00:00:00.0",
          "responsibleUsers": [
            "9zuLfzS9mEUm"
          ]
        },
        {
          "id": 369892,
          "authorUid": "9zuLfzS9mEUm",
          "status": 0,
          "startDate": "2010-11-15 09:00:00.0",
          "dueDate": "2010-12-06 17:00:00.0",
          "responsibleUsers": [
            "9zuLfzS9mEUm",
            "0n5ATyHaSls6"
          ]
        }
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: id.
    406: ACCESS_ERROR
    The task with given id not found in the calling user’s folder scope.

    wrike.task.updates

    Get task updates by since last tLast.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Long] tLast (required) - previous response marker
    • [String] fields (Optional) - task’s fields in response
    • [String] asyncKey (Optional)
    • [Integer] limit (Optional) - number of tasks in response
    • [Integer] offset(Optional) - number of skipping tasks before beginning to return response
    • [List<String:String>] orderBy (Optional) - fields + asc/desc which used in order by

    Response list

    • [Integer] id - task ID
    • [String] title - task title
    • [String] description - task description
    • [String] authorUid - task author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [String] whoChanged - UID of the user who made the last modification, (“-1” in case the user was deleted)
    • [String] lastUpdatedDate - date of the last modification
    • [Long] attachmentsCount - count of attachments
    • [Long] commentsCount - count of comments
    • [List<String>] responsibleUsers - list of UIDs of users responsible for the task
    • [List<String>] sharedUsers - list of UIDs of users who share the task
    • [List<String>] parents - list of parent folders’ IDs. (“0” - means Root Folder)
    • [boolean] deleted - only in case the task was deleted
    • [Integer] status - task‘s status
    • [Integer] importance - task‘s importance
    • [Date] startDate
    • [Date] dueDate
    • [String] duration
    • [List<Integer>]predecessor - predecessor IDs
    • [List<Integer>]successor - successor IDS
    • [String] asyncKey (optional)
    • [Long] tLast - time of request in ms. used in wrike.get.updates

    Examples

    {"taskUpdates": {
      "tLast": 1290968971559,
      "newTasks": [
      {
          "id": 380268,
          "title": "test_new_task1290968795877",
          "description": "description_for_task1290968795877",
          "authorUid": "OYgzyijdAo5Q",
          "createdDate": "2010-11-28 20:27:53.222",
          "whoChanged": "OYgzyijdAo5Q",
          "lastUpdatedDate": "2010-11-28 20:27:53.276",
          "type": "1",
          "status": 0,
          "importance": 1,
          "startDate": "",
          "dueDate": "",
          "duration": "1",
          "attachmentsCount": 0,
          "commentsCount": 0,
          "responsibleUsers": [
            "GCG7DDZ4Q1ic",
            "N5L9OlSRomRp",
            "t3acIwjcblNN",
            "7TndRrK3cqdk"
          ],
          "sharedUsers": [
            "GCG7DDZ4Q1ic",
            "N5L9OlSRomRp",
            "t3acIwjcblNN",
            "7TndRrK3cqdk",
            "OYgzyijdAo5Q"
          ],
          "parents": [
            "0"
          ],
          "recurenceTemplate": "1",
          "predecessor": [
          ],
          "successor": [
          ]
        }
      ],
      "updatedTasks": [
        {
          "id": 380217,
          "title": "test_new_task_updated1290968884041",
          "description": "",
          "authorUid": "OYgzyijdAo5Q",
          "createdDate": "2010-11-28 20:27:14.19",
          "whoChanged": "OYgzyijdAo5Q",
          "lastUpdatedDate": "2010-11-28 20:29:31.395",
          "type": "1",
          "status": 0,
          "importance": 1,
          "startDate": "2010-01-01 09:00:00.0",
          "dueDate": "2010-01-04 18:00:00.0",
          "duration": "1020",
          "attachmentsCount": 0,
          "commentsCount": 0,
          "responsibleUsers": [
            "N5L9OlSRomRp"
          ],
          "sharedUsers": [
            "GCG7DDZ4Q1ic",
            "N5L9OlSRomRp",
            "t3acIwjcblNN",
            "7TndRrK3cqdk",
            "OYgzyijdAo5Q"
          ],
          "parents": [
            "284064"
          ],
          "recurenceTemplate": "1",
          "predecessor": [
          ],
          "successor": [
          ]
        }
      ],
      "deletedTasks": [
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    406: ACCESS_ERROR
    The task with given id not found in the calling user’s folder scope.

    wrike.task.add

    Add a new task.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [String] title ( Required )
    • [String] description (optional)
    • [Integer] status (optional)- by default - active
    • [Integer]importance (optional)- by default - normal
    • [Date]startDate(optional) - date format is "yyyy-MM-dd'T'HH:mm:ss"
    • [Date]dueDate(optional) - date format is "yyyy-MM-dd'T'HH:mm:ss"
    • [String]duration (optional)
    • [List <String>]responsibleUsers(optional)
    • [List <String>]sharedUsers(optional)
    • [List <Integer>]parents (optional)- parent folders’ IDs, by default - root folder
    • [String] asyncKey (optional)

    Response

    • [Integer] id - task ID
    • [String] title - task title
    • [String] description - task description
    • [String] authorUid - task author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [String] whoChanged - UID of the user who made the last modification, (“-1” in case the user was deleted)
    • [String] lastUpdatedDate - date of the last modification
    • [Long] attachmentsCount - count of attachments
    • [Long] commentsCount - count of comments
    • [List <String>] responsibleUsers - list of UIDs of users responsible for the task
    • [List <String>] sharedUsers - list of UIDs of users who share the task
    • [List <String>] parents - list of parent folders’ IDs. (“0” - means Root Folder)
    • [boolean] deleted - only in case the task was deleted
    • [Integer] status - task’s status
    • [Integer] importance - task’s importance
    • [Date] startDate
    • [Date] dueDate
    • [String] duration
    • [String] asyncKey (optional)

    Examples

    {"task": {
      "id": 370464,
      "title": "The task name",
      "description": "",
      "authorUid": "9zuLfzS9mEUm",
      "createdDate": "2010-11-18 12:18:58.405",
      "whoChanged": "9zuLfzS9mEUm",
      "lastUpdatedDate": "2010-11-18 12:18:58.43",
      "type": "task",
      "status": 0,
      "importance": 1,
      "startDate": "2010-11-18 00:00:00.0",
      "dueDate": "2010-11-18 00:00:00.0",
      "duration": "0",
      "attachmentsCount": 0,
      "commentsCount": 0,
      "responsibleUsers": [
    	"9zuLfzS9mEUm"
      ],
      "sharedUsers": [
    	"9zuLfzS9mEUm"
      ],
      "parents": [
    	"354504"
      ],
      "recurenceTemplate": "",
      "predecessor": [
      ],
      "successor": [
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: title.
    405:LIMITATION_ERROR
    The calling user has a Viewer license.
    406: ACCESS_ERROR
    The task with given id not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.task.update

    Update an existing task.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Integer] id ( Required )
    • [String] title ( Required )
    • [String] description (optional)
    • [Integer] status (optional)- by default - active
    • [Integer]importance (optional)- by default - normal
    • [Date]startDate(optional) - date format is "yyyy-MM-dd'T'HH:mm:ss"
    • [Date]dueDate(optional) - date format is "yyyy-MM-dd'T'HH:mm:ss"
    • [String]duration (optional)
    • [List <String>]responsibleUsers(optional)
    • [List <String>]sharedUsers(optional)
    • [List <Integer>]parents (optional)- parent folders’ IDs, by default - root folder
    • [String] asyncKey (optional)

    Response

    • [Integer] id - task ID
    • [String] title - task title
    • [String] description - task description
    • [String] authorUid - task author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [String] whoChanged – UID of the user who made the last modification, (“-1” in case the user was deleted)
    • [String] lastUpdatedDate - date of the last modification
    • [Long] attachmentsCount - count of attachments
    • [Long] commentsCount - count of comments
    • [List <String>] responsibleUsers - list of UIDs of users who are responsible for the task
    • [List <String>] sharedUsers - list of UIDs of users who share the task
    • [List <String>] parents - list of parent folders’ IDs. (“0” - means Root Folder)
    • [boolean] deleted - only in case the task was deleted
    • [Integer] status - task’s status
    • [Integer] importance - task’s importance
    • [Date] startDate
    • [Date] dueDate
    • [String] duration
    • [String] asyncKey (optional)

    Examples

    {"task": {
      "id": 369812,
      "title": "The task name",
      "description": "",
      "authorUid": "9zuLfzS9mEUm",
      "createdDate": "2010-11-11 18:09:00.556",
      "whoChanged": "9zuLfzS9mEUm",
      "lastUpdatedDate": "2010-11-18 11:41:08.221",
      "type": "task",
      "status": 0,
      "importance": 1,
      "startDate": "2010-11-05 00:00:00.0",
      "dueDate": "2010-11-25 00:00:00.0",
      "duration": "6720",
      "attachmentsCount": 0,
      "commentsCount": 0,
      "responsibleUsers": [
    	"9zuLfzS9mEUm"
      ],
      "sharedUsers": [
    	"9zuLfzS9mEUm"
      ],
      "parents": [
    	"0"
      ],
      "recurenceTemplate": "",
      "predecessor": [
      ],
      "successor": [
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: id, title.
    405:LIMITATION_ERROR
    The calling user has a Viewer license.
    406: ACCESS_ERROR
    The task with given id not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.task.delete

    Delete an existing task.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [List <Integer>] ids ( Required )
    • [String] asyncKey (optional)

    Response

    • [Integer] id - task ID
    • [String] title - task title
    • [Boolean] deleted
    • [String] asyncKey (optional)

    Examples

    {"tasks": {
      "asyncKey": "123456",
      "list": [
        {
          "id": 377648,
          "title": "test_new_task1290739828697",
          "deleted": true,
          "asyncKey": "123456"
        }
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: id, title.
    405:LIMITATION_ERROR
    The calling user has a Viewer license.
    406: ACCESS_ERROR
    The task with given id not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.
  • comments

    wrike.comment.add

    Add a new comment to a task.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Integer] taskId( required)
    • [String] text(required )
    • [String] asyncKey (optional)

    Response

    • [Integer] id - comment ID
    • [String] text - comment text
    • [Integer] taskId - task ID
    • [String] authorUid - comment author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [boolean] deleted - only in case the comment was deleted
    • [List <Integer>] attachments - list of attachment IDs
    • [String] asyncKey (optional)

    Examples

    {"comment": {
      "id": 3577,
      "text": "this is comment",
      "authorUid": "9zuLfzS9mEUm",
      "taskId": 369812,
      "createdDate": "2010-11-18 11:37:00.417",
      "attachments": [
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: text or taskId.
    406: ACCESS_ERROR
    The task with given taskId not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.comment.delete

    Delete a comment and comment attachments.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [List <Integer>] ids( required)

    Response (list)

    • [Integer] id - comment’s ID
    • [Integer] taskId - task’s ID
    • [boolean] deleted - only in case the comment was deleted
    • [String] asyncKey (optional)

    Examples

    {"comments": {
      "list": [
        {
          "id": 3488,
          "taskId": 380502,
          "deleted": true
        }
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: ids.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.comment.update

    Update a comment.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Integer] id( required)
    • [String] text(required )
    • [String] asyncKey (optional)

    Response

    • [Integer] id - comment ID
    • [String] text - comment text
    • [Integer] taskId - task ID
    • [String] authorUid - comment author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [boolean] deleted - only in case the comment was deleted
    • [List <Integer>] attachments - list of attachment IDs
    • [String] asyncKey (optional)

    Examples

    {"comment": {
      "id": 3478,
      "text": "comment updated",
      "authorUid": "OYgzyijdAo5Q",
      "taskId": 380497,
      "createdDate": "2010-11-28 21:17:09.802",
      "attachments": [
      ],
      "asyncKey": "123456"
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: text or taskId.
    406: ACCESS_ERROR
    The comment with given id not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.comment.list

    Get comment list for a task or get comment list by comment IDs.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Integer] taskId or [List <Integer>] ids( required)
    • [String] asyncKey (optional)

    Response (list)

    • [Integer] id - comment ID
    • [String] text - comment text
    • [Integer] taskId - task ID
    • [String] authorUid - comment author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [boolean] deleted - only in case the comment was deleted
    • [List <Integer>] attachments - list of attachment IDs
    • [String] asyncKey (optional)

    Examples

    {"comments": {
      "list": [
        {
          "id": 3510,
          "text": "comment for task",
          "authorUid": "OYgzyijdAo5Q",
          "taskId": 380513,
          "createdDate": "2010-11-28 21:53:23.528",
          "attachments": [
          ]
        },
        {
          "id": 3509,
          "text": "updated_comment for task",
          "authorUid": "OYgzyijdAo5Q",
          "taskId": 380513,
          "createdDate": "2010-11-28 21:53:23.439",
          "attachments": [
          ]
        }
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: ids or taskID.
    406: ACCESS_ERROR
    The task with given taskId not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.comment.updates

    Get new, updated, deleted comments lists since tLast.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Long]tLast( required)
    • [String] asyncKey (optional)

    Response (“newComments” list, “updatedComments” list, “deletedComments” list)

    • [Integer] id - comment ID
    • [String] text - comment text
    • [Integer] taskId - task ID
    • [String] authorUid - comment author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [boolean] deleted - only in case the comment was deleted
    • [List <Integer>] attachments - list of attachment IDs
    • [String] asyncKey (optional)

    Examples

    {"commentsUpdates": {
      "tLast": 1290976320985,
      "newComments": [
        {
          "id": 3542,
          "text": "comments_for_task1290976319473",
          "authorUid": "OYgzyijdAo5Q",
          "taskId": 380529,
          "createdDate": "2010-11-28 22:31:59.697",
          "attachments": [
          ],
          "deleted": false
        }
      ],
      "updatedComments": [
      ],
      "deletedComments": [
        {
          "id": 3541,
          "text": "comments_updated_for_task1290976319742",
          "authorUid": "OYgzyijdAo5Q",
          "taskId": 380529,
          "createdDate": "2010-11-28 22:31:59.595",
          "attachments": [
          ],
          "deleted": true,
          "deletedDate": "2010-11-28 22:32:00.527"
        }
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: tLast.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.
  • attachments

    wrike.attachment.list

    Get attachment list for tasks.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [List <Integer>] taskIds ( required)
    • [String] asyncKey (optional)

    Response (list)

    • [Integer] id - attachment ID
    • [Integer] taskId - task ID
    • [String] fileName - file name
    • [[String] authorUid - attachment author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [Integer] version
    • [Long] size
    • [String] contentType
    • [boolean] deleted - only in case the attachment was deleted
    • [String] asyncKey (optional)

    Examples

    {"attachments": {
      "list": [
        {
          "taskId": 284064,
          "list": [
            {
              "id": 25053,
              "fileName": "33.JPG",
              "taskId": 284064,
              "createdDate": "2010-11-17 17:05:13.154",
              "authorUid": "OYgzyijdAo5Q",
              "version": 1,
              "size": 99743,
              "contentType": "image/jpeg"
            }
          ]
        }
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: taskIds.
    406: ACCESS_ERROR
    The task with given taskId not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.attachment.history

    Get attachment history.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Integer] id ( required)
    • [String] asyncKey (optional)

    Response (list)

    • [Integer] id - attachment ID
    • [Integer] taskId - task ID
    • [String] fileName - file name
    • [String] authorUid - comment author UID, (“-1” in case the author was deleted)
    • [String] createdDate - creation date
    • [Integer] version
    • [Long] size
    • [String] contentType
    • [boolean] deleted - only in case the attachment was deleted
    • [String] asyncKey (optional)

    Examples

    {"attachments": {
      "list": [
        {
          "id": 25053,
          "taskId": 284064,
          "fileName": "33.JPG",
          "createdDate": "2010-11-17 17:05:13.154",
          "authorUid": "OYgzyijdAo5Q",
          "version": 1,
          "size": 99743,
          "contentType": "image/jpeg"
        },
        {
          "id": 25054,
          "taskId": 284064,
          "fileName": "sudokuboom.gadget",
          "createdDate": "2010-11-29 02:12:24.811",
          "authorUid": "OYgzyijdAo5Q",
          "version": 2,
          "size": 10337,
          "contentType": "application/octet-stream"
        }
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: id.
    406: ACCESS_ERROR
    The task with given taskId not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.attachment.download

    Get file binary stream.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Integer] id (required) attachment id

    Response (list)

    • binary stream

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: id.
    406: ACCESS_ERROR
    The task with given attachment id not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.
  • time logs

    wrike.timelog.list

    Get a time log for a task.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Integer] taskId (optional) – in case the taskId missed, all time logs of the called user will be in response.
    • [String] asyncKey (optional)

    Response (list)

    • [Integer] id – time log ID
    • [String] userUid – time log user UID, (“-1” in case the author was deleted)
    • [Integer] taskId - task ID
    • [Date] date,
    • [Double] hours
    • [boolean] deleted
    • [String] asyncKey (optional)

    Examples

    {"timelogs": {
      "asyncKey": "123456",
      "list": [
        {
          "id": 2466,
          "userUid": "OYgzyijdAo5Q",
          "taskId": 380572,
          "date": "2010-11-30 00:00:00.0",
          "hours": 10.0
        },
        {
          "id": 2467,
          "userUid": "OYgzyijdAo5Q",
          "taskId": 380572,
          "date": "2010-11-30 00:00:00.0",
          "hours": 2.1
        },
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: taskId .
    406: ACCESS_ERROR
    The task with given taskId not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.timelog.add

    Add a new time log to a task.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [Date] date (required) in format 'yyyy-MM-dd'
    • [Integer] taskId(required)
    • [Double] hours(required)
    • [String] asyncKey (optional)

    Response

    • [Integer] id – time log ID
    • [String] userUid – time log user UID, (“-1” in case the author was deleted)
    • [Integer] taskId - task ID
    • [Date] date
    • [Double] hours
    • [boolean] deleted - only in case the time log was deleted
    • [String] asyncKey (optional)

    Examples

    {"timelog": {
      "id": 2419,
      "userUid": "OYgzyijdAo5Q",
      "taskId": 380549,
      "date": "2010-11-30 00:00:00.0",
      "hours": 10.0
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: date or taskID or hours.
    406: ACCESS_ERROR
    The task with given taskId not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.

    wrike.timelog.delete

    Delete a time log from a task.

    Authentication

    This method requires authentication.

    Arguments

    • [String] token (required)
    • [List <Integer>] ids(required)
    • [String] asyncKey (optional)

    Response (list)

    • [Integer] id – time log ID
    • [String] userUid – time log user UID, (“-1” in case the author was deleted)
    • [Integer] taskId - task ID
    • [Date] date
    • [Double] hours
    • [boolean] deleted
    • [String] asyncKey (optional)

    Examples

    {"timelogs": {
      "list": [
        {
          "id": 2479,
          "userUid": "OYgzyijdAo5Q",
          "taskId": 380575,
          "date": "2010-11-30 00:00:00.0",
          "hours": 2.1,
          "deleted": true
        }
      ]
    }}
    

    Error Codes

    402: CREDENTIALS_ERROR
    Authorization failed. The passed signature was invalid.
    403: MISSING_REQUIRED_PARAMETER
    Missing required parameter: ids.
    406: ACCESS_ERROR
    The task with given taskId not found in the calling user’s task scope.
    407:APPLICATION_ERROR
    Message of exception occurred during the execution of the method.