FreshBooks API Guide

Tasks

Staff access

Staff have access to the API calls listed below if the Time Tracking tab is enabled for staff. Each staff member can modify tasks if “Staff Project Access” (under Settings, Set Up Preferences, Time Tracking) is enabled. Each staff member can also see the tasks which are assigned to projects that staff member is assigned to.

task.create

Create a new task.

Request

<?xml version="1.0" encoding="utf-8"?>
<request method="task.create">
  <task>
    <name>Yard Work</name>         # (Required)
    <billable>1</billable>         # Must be either 1 or 0 (Default)
    <rate>15.00</rate>             # (Optional)
    <description>Grass cutting, hedge trimming, etc.</description>
  </task>
</request>

Response

<?xml version="1.0" encoding="utf-8"?>
<response status="ok">
  <task_id>211</task_id>
</response>

task.update

Update an existing task.

Request

<?xml version="1.0" encoding="utf-8"?>
<request method="task.update">
  <task>
    <task_id>211</task_id>

    # Remaining params are same as task.create
  </task>
</request>

Response

<?xml version="1.0" encoding="utf-8"?>
<response status="ok"/>

task.get

Retrieve an existing task.

Request

<?xml version="1.0" encoding="utf-8"?>
<request method="task.get">
  <task_id>211</task_id>
</request>

Response

<?xml version="1.0" encoding="utf-8"?>
<response status="ok">
  <task>
    ...
  </task>
</response>

task.delete

Delete an existing task.

Request

<?xml version="1.0" encoding="utf-8"?>
<request method="task.delete">
  <task>211</task>
</request>

Response

<?xml version="1.0" encoding="utf-8"?>
<response status="ok"/>

task.list

Returns a list of tasks in alphabetical order.

Filters

  • project_id - returns only tasks associated with a given project

Request

<?xml version="1.0" encoding="utf-8"?>
<request method="task.list">
  <project_id>23</project_id>           # (Optional)

  <page>1</page>                        # The page number to show (Optional)
  <per_page>15</per_page>               # Number of results per page, default 25 (Optional)
</request>

Response

<?xml version="1.0" encoding="utf-8"?>
<response status="ok">
  <tasks page="1" per_page="15" pages="2" total="28">
    <task>...</task>
    <task>...</task>
    ...
  </tasks>
</response>