Show One Task

GET https://YOURACCOUNT.harvestapp.com/tasks/{task_id}

HTTP Response: 200 OK

Examples

Example request in Postman

<?xml version="1.0" encoding="UTF-8"?>
<task>
    <id type="integer">2086199</id>
    <name>Admin</name>
    <billable-by-default type="boolean">false</billable-by-default>
    <created-at type="dateTime">2013-04-30T20:28:12Z</created-at>
    <updated-at type="dateTime">2013-08-14T22:25:42Z</updated-at>
    <is-default type="boolean">true</is-default>
    <default-hourly-rate type="decimal">0</default-hourly-rate>
    <deactivated type="boolean">true</deactivated>
</task>
{
    "task": {
        "id": 2086199,
        "name": "Admin",
        "billable_by_default": false,
        "created_at": "2013-04-30T20:28:12Z",
        "updated_at": "2013-08-14T22:25:42Z",
        "is_default": true,
        "default_hourly_rate": 0,
        "deactivated": true
    }
}

Show All Tasks

GET https://YOURACCOUNT.harvestapp.com/tasks/

You can filter by updated_since. To show only the tasks that have been updated since 2010-09-25 18:30, pass the UTC date time value (URL encoded). Check out the example below.

GET https://YOURACCOUNT.harvestapp.com/tasks?updated_since=2015-09-25+18%3A30

HTTP Response: 200 OK

Examples

Example request in Postman

<?xml version="1.0" encoding="UTF-8"?>
<task>
    <id type="integer">2086199</id>
    <name>Admin</name>
    <billable-by-default type="boolean">false</billable-by-default>
    <created-at type="dateTime">2013-04-30T20:28:12Z</created-at>
    <updated-at type="dateTime">2013-08-14T22:25:42Z</updated-at>
    <is-default type="boolean">true</is-default>
    <default-hourly-rate type="decimal">0</default-hourly-rate>
    <deactivated type="boolean">true</deactivated>
</task>
  {
    "task": {
        "id": 2086199,
        "name": "Admin",
        "billable_by_default": false,
        "created_at": "2013-04-30T20:28:12Z",
        "updated_at": "2013-08-14T22:25:42Z",
        "is_default": true,
        "default_hourly_rate": 0,
        "deactivated": true
    }
}

Create New Task

POST https://YOURACCOUNT.harvestapp.com/tasks/

A successful call will return: 201 Created - Location: /tasks/{new_task_id}

Examples

Example request in Postman

<task>
  <billable-by-default type="boolean">false</billable-by-default>
  <default-hourly-rate type="decimal">100</default-hourly-rate>
  <is-default type="boolean">false</is-default>
  <name>Server Administration</name>
</task>
{
    "task": {
        "name": "Admin",
        "billable_by_default": false,
        "is_default": true,
        "default_hourly_rate": 100,
        "deactivated": true
    }
}

Archive/Delete A Task

DELETE https://YOURACCOUNT.harvestapp.com/tasks/{task_id}

  • If the task has no hours tracked, it will be deleted.
  • If the task has hours tracked, it will be archived.

HTTP Response: 200 OK

Update A Task

PUT https://YOURACCOUNT.harvestapp.com/tasks/{task_id}

Using the same format as creating a new task, any task data can be updated using this call.

HTTP Response: 200 OK

Examples

Example request in Postman

<?xml version="1.0" encoding="UTF-8"?>
<task>
    <name>Admin</name>
    <billable-by-default type="boolean">false</billable-by-default>
    <is-default type="boolean">true</is-default>
    <default-hourly-rate type="decimal">0</default-hourly-rate>
    <deactivated type="boolean">true</deactivated>
</task>
{
    "task": {
        "name": "Admin",
        "billable_by_default": false,
        "is_default": true,
        "default_hourly_rate": 0,
        "deactivated": true
    }
}

Reactivate A Task

POST https://YOURACCOUNT.harvestapp.com/tasks/{task_id}/activate

HTTP Response: 200 OK: