Time Reports
Time reports show the hours and billable information for each client, project, task, or user, where tracked time is present for a given timeframe.
The response contains an object with a results
property that contains an array of up to per_page
results. Each entry in the array is a separate result object. If no more results are available, the resulting array will be empty. Several additional pagination properties are included in the response to simplify paginating your results.
Note: Each time report request requires both the from
and to
parameters to be supplied in the URL’s query string. The timeframe supplied cannot exceed 1 year (365 days).
The result object
Attribute | Type | Description |
---|---|---|
client_id |
integer | The ID of the client associated with the reported hours. Only returned in the Client and Project reports. |
client_name |
string | The name of the client associated with the reported hours. Only returned in the Client and Project reports. |
project_id |
integer | The ID of the project associated with the reported hours. Only returned in the Client and Project reports. |
project_name |
string | The name of the project associated with the reported hours. Only returned in the Client and Project reports. |
task_id |
integer | The ID of the task associated with the reported hours. Only returned in the Task report. |
task_name |
string | The name of the task associated with the reported hours. Only returned in the Task report. |
user_id |
integer | The ID of the user associated with the reported hours. Only returned in the Team report. |
user_name |
string | The name of the user associated with the reported hours. Only returned in the Team report. |
weekly_capacity |
integer | The number of hours per week this person is available to work in seconds, in half hour increments. For example, if a person’s capacity is 35 hours, the API will return 126000 seconds. Only returned in the Team report. |
avatar_url |
string | The URL to the user’s avatar image. Only returned in the Team report. |
is_contractor |
boolean | The contractor status of the user associated with the reported hours. Only returned in the Team report. |
total_hours |
decimal | The totaled hours for the given timeframe, subject (client, project, task, or user), and currency. If Time Rounding is turned on, the hours will be rounded according to your settings. |
billable_hours |
decimal | The totaled billable hours for the given timeframe, subject (client, project, task, or user), and currency. If Time Rounding is turned on, the hours will be rounded according to your settings. |
currency |
string | The currency code associated with the tracked hours for this result. Only visible to Administrators and Project Managers with the View billable rates and amounts permission. |
billable_amount |
decimal | The totaled billable amount for the billable hours above. Only visible to Administrators and Project Managers with the View billable rates and amounts permission. |
Required permissions
If you’re an Administrator, you’ll see all clients, projects, tasks, and users for the account. Managers will see their own tracked time, plus time tracked against any projects or teammates they manage. Members will only see their own tracked time.
Clients Report
GET /v2/reports/time/clients
Parameter | Type | Required | Description |
---|---|---|---|
from |
date | required | Only report on time entries with a spent_date on or after the given date. |
to |
date | required | Only report on time entries with a spent_date on or before the given date. |
include_fixed_fee |
string | optional | When true , billable amounts will be calculated and included for fixed fee projects. |
page |
integer | optional | The page number to use in pagination. For instance, if you make a list request and receive 2000 records, your subsequent call can include page=2 to retrieve the next page of the list. (Default: 1) |
per_page |
integer | optional | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
Example Request:
curl
"https://api.harvestapp.com/v2/reports/time/clients?from=20170101&to=20171231" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Harvest-Account-Id: $ACCOUNT_ID" \
-H "User-Agent: MyApp ([email protected])"
Example Response:
Projects Report
GET /v2/reports/time/projects
Parameter | Type | Required | Description |
---|---|---|---|
from |
date | required | Only report on time entries with a spent_date on or after the given date. |
to |
date | required | Only report on time entries with a spent_date on or before the given date. |
include_fixed_fee |
string | optional | When true , billable amounts will be calculated and included for fixed fee projects. |
page |
integer | optional | The page number to use in pagination. For instance, if you make a list request and receive 2000 records, your subsequent call can include page=2 to retrieve the next page of the list. (Default: 1) |
per_page |
integer | optional | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
Example Request:
curl
"https://api.harvestapp.com/v2/reports/time/projects?from=20170101&to=20171231" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Harvest-Account-Id: $ACCOUNT_ID" \
-H "User-Agent: MyApp ([email protected])"
Example Response:
Tasks Report
GET /v2/reports/time/tasks
Parameter | Type | Required | Description |
---|---|---|---|
from |
date | required | Only report on time entries with a spent_date on or after the given date. |
to |
date | required | Only report on time entries with a spent_date on or before the given date. |
include_fixed_fee |
string | optional | When true , billable amounts will be calculated and included for fixed fee projects. |
page |
integer | optional | The page number to use in pagination. For instance, if you make a list request and receive 2000 records, your subsequent call can include page=2 to retrieve the next page of the list. (Default: 1) |
per_page |
integer | optional | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
Example Request:
curl
"https://api.harvestapp.com/v2/reports/time/tasks?from=20170101&to=20171231" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Harvest-Account-Id: $ACCOUNT_ID" \
-H "User-Agent: MyApp ([email protected])"
Example Response:
Team Report
GET /v2/reports/time/team
Parameter | Type | Required | Description |
---|---|---|---|
from |
date | required | Only report on time entries with a spent_date on or after the given date. |
to |
date | required | Only report on time entries with a spent_date on or before the given date. |
include_fixed_fee |
string | optional | When true , billable amounts will be calculated and included for fixed fee projects. |
page |
integer | optional | The page number to use in pagination. For instance, if you make a list request and receive 2000 records, your subsequent call can include page=2 to retrieve the next page of the list. (Default: 1) |
per_page |
integer | optional | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
Example Request:
curl
"https://api.harvestapp.com/v2/reports/time/team?from=20170101&to=20171231" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Harvest-Account-Id: $ACCOUNT_ID" \
-H "User-Agent: MyApp ([email protected])"
Example Response: