/harvest-projects | Type: Application | PCID required: Yes
Tools
harvest_projects_create_project
Create a project Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
bill_by | string | Yes | — | The method by which the project is invoiced. Options: Project, Tasks, People, or none. |
budget | number | No | — | The budget in hours for the project when budgeting by time. |
budget_by | string | Yes | — | The method by which the project is budgeted. Options: project (Hours Per Project), project_cost (Total Project Fees), task (Hours Per Task), task_fees (Fees Per Task), person (Hours Per Person), none (No Budget). |
budget_is_monthly | boolean | No | — | Option to have the budget reset every month. Defaults to false. |
client_id | integer | Yes | — | The ID of the client to associate this project with. |
code | string | No | — | The code associated with the project. |
cost_budget | number | No | — | The monetary budget for the project when budgeting by money. |
cost_budget_include_expenses | boolean | No | — | Option for budget of Total Project Fees projects to include tracked expenses. Defaults to false. |
ends_on | string | No | — | Date the project will end. |
fee | number | No | — | The amount you plan to invoice for the project. Only used by fixed-fee projects. |
hourly_rate | number | No | — | Rate for projects billed by Project Hourly Rate. |
is_active | boolean | No | — | Whether the project is active or archived. Defaults to true. |
is_billable | boolean | Yes | — | Whether the project is billable or not. |
is_fixed_fee | boolean | No | — | Whether the project is a fixed-fee project or not. |
name | string | Yes | — | The name of the project. |
notes | string | No | — | Project notes. |
notify_when_over_budget | boolean | No | — | Whether Project Managers should be notified when the project goes over budget. Defaults to false. |
over_budget_notification_percentage | number | No | — | Percentage value used to trigger over budget email alerts. Example: use 10.0 for 10.0%. |
show_budget_to_all | boolean | No | — | Option to show project budget to all employees. Does not apply to Total Project Fee projects. Defaults to false. |
starts_on | string | No | — | Date the project was started. |
harvest_projects_create_task
Create a task Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
billable_by_default | boolean | No | — | Used in determining whether default tasks should be marked billable when creating a new project. Defaults to true. |
default_hourly_rate | number | No | — | The default hourly rate to use for this task when it is added to a project. Defaults to 0. |
is_active | boolean | No | — | Whether this task is active or archived. Defaults to true. |
is_default | boolean | No | — | Whether this task should be automatically added to future projects. Defaults to false. |
name | string | Yes | — | The name of the task. |
harvest_projects_create_task_assignment
Create a task assignment Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
billable | boolean | No | — | Whether the task assignment is billable or not. Defaults to false. |
budget | number | No | — | Budget used when the project’s budget_by is task or task_fees. |
hourly_rate | number | No | — | Rate used when the project’s bill_by is Tasks. Defaults to null when billing by task hourly rate, otherwise 0. |
is_active | boolean | No | — | Whether the task assignment is active or archived. Defaults to true. |
task_id | integer | Yes | — | The ID of the task to associate with the project. |
harvest_projects_create_time_entry
Create a time entry Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
ended_time | string | No | — | The time the entry ended. If provided, is_running will be set to false. If not provided, is_running will be set to true. |
external_reference | object | No | — | An object containing the id, group_id, account_id, and permalink of the external reference. |
hours | number | No | — | The current amount of time tracked. If provided, the time entry will be created with the specified hours and is_running will be set to false. If not provided, hours will be set to 0.0 and is_running will be set to true. |
notes | string | No | — | Any notes to be associated with the time entry. |
project_id | integer | Yes | — | The ID of the project to associate with the time entry. |
spent_date | string | Yes | — | The ISO 8601 formatted date the time entry was spent. |
started_time | string | No | — | The time the entry started. Defaults to the current time. Example: “8:00am”. |
task_id | integer | Yes | — | The ID of the task to associate with the time entry. |
user_id | integer | No | — | The ID of the user to associate with the time entry. Defaults to the currently authenticated user’s ID. |
harvest_projects_create_user_assignment
Create a user assignment Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
budget | number | No | — | Budget used when the project’s budget_by is person. |
hourly_rate | number | No | — | Custom rate used when the project’s bill_by is People and use_default_rates is false. Defaults to 0. |
is_active | boolean | No | — | Whether the user assignment is active or archived. Defaults to true. |
is_project_manager | boolean | No | — | Determines if the user has Project Manager permissions for the project. Defaults to false for users with Regular User permissions and true for those with Project Managers or Administrator permissions. |
use_default_rates | boolean | No | — | Determines which billable rate(s) will be used on the project for this user when bill_by is People. When true, the project will use the user’s default billable rates. When false, the project will use the custom rate defined on this user assignment. Defaults to true. |
user_id | integer | Yes | — | The ID of the user to associate with the project. |
harvest_projects_delete_project
Delete a project Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
harvest_projects_delete_task
Delete a task Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
taskId | string | Yes | — | Task Id |
harvest_projects_delete_task_assignment
Delete a task assignment Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
taskAssignmentId | string | Yes | — | Task Assignment Id |
harvest_projects_delete_time_entry
Delete a time entry Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
timeEntryId | string | Yes | — | Time Entry Id |
harvest_projects_delete_time_entry_external_reference
Delete a time entry’s external reference Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
timeEntryId | string | Yes | — | Time Entry Id |
harvest_projects_delete_user_assignment
Delete a user assignment Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
userAssignmentId | string | Yes | — | User Assignment Id |
harvest_projects_list_projects
List all projects Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
is_active | boolean | No | — | Pass true to only return active projects and false to return inactive projects. |
client_id | integer | No | — | Only return projects belonging to the client with the given ID. |
updated_since | string | No | — | Only return projects that have been updated since the given date and time. |
page | integer | No | — | DEPRECATED 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) |
cursor | string | No | — | Pagination cursor |
per_page | integer | No | — | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
harvest_projects_list_task_assignments
List all task assignments Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
is_active | boolean | No | — | Pass true to only return active task assignments and false to return inactive task assignments. |
updated_since | string | No | — | Only return task assignments that have been updated since the given date and time. |
page | integer | No | — | DEPRECATED 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) |
cursor | string | No | — | Pagination cursor |
per_page | integer | No | — | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
harvest_projects_list_task_assignments_for_specific_project
List all task assignments for a specific project Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
is_active | boolean | No | — | Pass true to only return active task assignments and false to return inactive task assignments. |
updated_since | string | No | — | Only return task assignments that have been updated since the given date and time. |
page | integer | No | — | 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 | No | — | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
harvest_projects_list_tasks
List all tasks Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
is_active | boolean | No | — | Pass true to only return active tasks and false to return inactive tasks. |
updated_since | string | No | — | Only return tasks that have been updated since the given date and time. |
page | integer | No | — | DEPRECATED 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) |
cursor | string | No | — | Pagination cursor |
per_page | integer | No | — | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
harvest_projects_list_time_entries
List all time entries Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
user_id | integer | No | — | Only return time entries belonging to the user with the given ID. |
client_id | integer | No | — | Only return time entries belonging to the client with the given ID. |
project_id | integer | No | — | Only return time entries belonging to the project with the given ID. |
task_id | integer | No | — | Only return time entries belonging to the task with the given ID. |
external_reference_id | string | No | — | Only return time entries with the given external_reference ID. |
is_billed | boolean | No | — | Pass true to only return time entries that have been invoiced and false to return time entries that have not been invoiced. |
is_running | boolean | No | — | Pass true to only return running time entries and false to return non-running time entries. |
approval_status | string | No | — | Only return time entries with the given approval status. Possible values: “unsubmitted”, “submitted”, or “approved”. |
updated_since | string | No | — | Only return time entries that have been updated since the given date and time. Use the ISO 8601 Format. |
from | string | No | — | Only return time entries with a spent_date on or after the given date. |
to | string | No | — | Only return time entries with a spent_date on or before the given date. |
page | integer | No | — | 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 | No | — | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
harvest_projects_list_user_assignments
List all user assignments Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
user_id | integer | No | — | Only return user assignments belonging to the user with the given ID. |
is_active | boolean | No | — | Pass true to only return active user assignments and false to return inactive user assignments. |
updated_since | string | No | — | Only return user assignments that have been updated since the given date and time. |
page | integer | No | — | DEPRECATED 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) |
cursor | string | No | — | Pagination cursor |
per_page | integer | No | — | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
harvest_projects_list_user_assignments_for_specific_project
List all user assignments for a specific project Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
user_id | integer | No | — | Only return user assignments belonging to the user with the given ID. |
is_active | boolean | No | — | Pass true to only return active user assignments and false to return inactive user assignments. |
updated_since | string | No | — | Only return user assignments that have been updated since the given date and time. |
page | integer | No | — | 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 | No | — | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
harvest_projects_restart_stopped_time_entry
Restart a stopped time entry Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
timeEntryId | string | Yes | — | Time Entry Id |
harvest_projects_retrieve_project
Retrieve a project Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
harvest_projects_retrieve_task
Retrieve a task Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
taskId | string | Yes | — | Task Id |
harvest_projects_retrieve_task_assignment
Retrieve a task assignment Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
taskAssignmentId | string | Yes | — | Task Assignment Id |
harvest_projects_retrieve_time_entry
Retrieve a time entry Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
timeEntryId | string | Yes | — | Time Entry Id |
harvest_projects_retrieve_user_assignment
Retrieve a user assignment Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
userAssignmentId | string | Yes | — | User Assignment Id |
harvest_projects_stop_running_time_entry
Stop a running time entry Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
timeEntryId | string | Yes | — | Time Entry Id |
harvest_projects_update_project
Update a project Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
bill_by | string | No | — | The method by which the project is invoiced. Options: Project, Tasks, People, or none. |
budget | number | No | — | The budget in hours for the project when budgeting by time. |
budget_by | string | No | — | The method by which the project is budgeted. Options: project (Hours Per Project), project_cost (Total Project Fees), task (Hours Per Task), task_fees (Fees Per Task), person (Hours Per Person), none (No Budget). |
budget_is_monthly | boolean | No | — | Option to have the budget reset every month. Defaults to false. |
client_id | integer | No | — | The ID of the client to associate this project with. |
code | string | No | — | The code associated with the project. |
cost_budget | number | No | — | The monetary budget for the project when budgeting by money. |
cost_budget_include_expenses | boolean | No | — | Option for budget of Total Project Fees projects to include tracked expenses. Defaults to false. |
ends_on | string | No | — | Date the project will end. |
fee | number | No | — | The amount you plan to invoice for the project. Only used by fixed-fee projects. |
hourly_rate | number | No | — | Rate for projects billed by Project Hourly Rate. |
is_active | boolean | No | — | Whether the project is active or archived. Defaults to true. |
is_billable | boolean | No | — | Whether the project is billable or not. |
is_fixed_fee | boolean | No | — | Whether the project is a fixed-fee project or not. |
name | string | No | — | The name of the project. |
notes | string | No | — | Project notes. |
notify_when_over_budget | boolean | No | — | Whether Project Managers should be notified when the project goes over budget. Defaults to false. |
over_budget_notification_percentage | number | No | — | Percentage value used to trigger over budget email alerts. Example: use 10.0 for 10.0%. |
show_budget_to_all | boolean | No | — | Option to show project budget to all employees. Does not apply to Total Project Fee projects. Defaults to false. |
starts_on | string | No | — | Date the project was started. |
harvest_projects_update_task
Update a task Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
taskId | string | Yes | — | Task Id |
billable_by_default | boolean | No | — | Used in determining whether default tasks should be marked billable when creating a new project. |
default_hourly_rate | number | No | — | The default hourly rate to use for this task when it is added to a project. |
is_active | boolean | No | — | Whether this task is active or archived. |
is_default | boolean | No | — | Whether this task should be automatically added to future projects. |
name | string | No | — | The name of the task. |
harvest_projects_update_task_assignment
Update a task assignment Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
taskAssignmentId | string | Yes | — | Task Assignment Id |
billable | boolean | No | — | Whether the task assignment is billable or not. |
budget | number | No | — | Budget used when the project’s budget_by is task or task_fees. |
hourly_rate | number | No | — | Rate used when the project’s bill_by is Tasks. |
is_active | boolean | No | — | Whether the task assignment is active or archived. |
harvest_projects_update_time_entry
Update a time entry Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
timeEntryId | string | Yes | — | Time Entry Id |
ended_time | string | No | — | The time the entry ended. |
external_reference | object | No | — | An object containing the id, group_id, account_id, and permalink of the external reference. |
hours | number | No | — | The current amount of time tracked. |
notes | string | No | — | Any notes to be associated with the time entry. |
project_id | integer | No | — | The ID of the project to associate with the time entry. |
spent_date | string | No | — | The ISO 8601 formatted date the time entry was spent. |
started_time | string | No | — | The time the entry started. Defaults to the current time. Example: “8:00am”. |
task_id | integer | No | — | The ID of the task to associate with the time entry. |
harvest_projects_update_user_assignment
Update a user assignment Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | Yes | — | Project Id |
userAssignmentId | string | Yes | — | User Assignment Id |
budget | number | No | — | Budget used when the project’s budget_by is person. |
hourly_rate | number | No | — | Custom rate used when the project’s bill_by is People and use_default_rates is false. |
is_active | boolean | No | — | Whether the user assignment is active or archived. |
is_project_manager | boolean | No | — | Determines if the user has Project Manager permissions for the project. |
use_default_rates | boolean | No | — | Determines which billable rate(s) will be used on the project for this user when bill_by is People. When true, the project will use the user’s default billable rates. When false, the project will use the custom rate defined on this user assignment. |

