harvest_list_time_entries
List time entries
List time entries, optionally filtered by user, project, client, task, date range, running/billed status, or updated-since. Paginated. Harvest REST: GET /time_entries.
Parameterstofrompagetask_iduser_idper_pageclient_idis_billedis_runningproject_idupdated_since
harvest_get_time_entry
Get time entry
Retrieve a single time entry by id. Harvest REST: GET /time_entries/{id}.
Parameterstime_entry_idrequired
harvest_list_projects
List projects
List projects, optionally filtered by active status or client, or updated-since. Paginated. Harvest REST: GET /projects.
Parameterspageper_pageclient_idis_activeupdated_since
harvest_get_project
Get project
Retrieve a single project by id. Harvest REST: GET /projects/{id}.
Parametersproject_idrequired
harvest_list_clients
List clients
List clients, optionally filtered by active status or updated-since. Paginated. Harvest REST: GET /clients.
Parameterspageper_pageis_activeupdated_since
harvest_get_client
Get client
Retrieve a single client by id. Harvest REST: GET /clients/{id}.
Parametersclient_idrequired
harvest_list_tasks
List tasks
List tasks (the billable/non-billable work categories that can be assigned to projects), optionally filtered by active status or updated-since. Paginated. Harvest REST: GET /tasks.
Parameterspageper_pageis_activeupdated_since
harvest_list_users
List users
List users in the account, optionally filtered by active status or updated-since. Paginated. Harvest REST: GET /users.
Parameterspageper_pageis_activeupdated_since
harvest_get_current_user
Get current user
Retrieve the currently authenticated user (whom the access token belongs to). Harvest REST: GET /users/me.
Takes no parameters.
harvest_list_project_assignments
List my project assignments
List the authenticated user's active project assignments — the projects and their assignable tasks the current user can log time against (use this to find the project_id + task_id for harvest_create_time_entry). Paginated. Harvest REST: GET /users/me/project_assignments.
Parameterspageper_page
harvest_list_invoices
List invoices
List invoices, optionally filtered by client, project, state, date range, or updated-since. Paginated. Harvest REST: GET /invoices.
Parameterstofrompagestateper_pageclient_idproject_idupdated_since
harvest_get_invoice
Get invoice
Retrieve a single invoice by id, including its line items. Harvest REST: GET /invoices/{id}.
Parametersinvoice_idrequired
harvest_list_estimates
List estimates
List estimates, optionally filtered by client, state, date range, or updated-since. Paginated. Harvest REST: GET /estimates.
Parameterstofrompagestateper_pageclient_idupdated_since
harvest_list_expenses
List expenses
List expenses, optionally filtered by user, client, project, date range, billed status, or updated-since. Paginated. Harvest REST: GET /expenses.
Parameterstofrompageuser_idper_pageclient_idis_billedproject_idupdated_since
harvest_get_company
Get company
Retrieve the company/account settings for the authenticated account (name, currency, time/date formats, week start, feature flags). Harvest REST: GET /company.
Takes no parameters.
harvest_create_time_entry
Create time entry
Create a time entry. Requires project_id, task_id and spent_date. Provide `hours` to log a specific duration; OR provide `started_time` (+ optional `ended_time`) for a timestamped entry; OR omit both to start a running timer (on a timestamp-tracking account). Use harvest_list_project_assignments to find valid project_id + task_id. Harvest REST: POST /time_entries. WRITE — creates data.
Parametershoursnotestask_idrequireduser_idended_timeproject_idrequiredspent_daterequiredstarted_time
harvest_update_time_entry
Update time entry
Update an existing time entry's hours, notes, spent date, or project/task. Only the fields you provide are changed. Harvest REST: PATCH /time_entries/{id}. WRITE — modifies data.
Parametershoursnotestask_idended_timeproject_idspent_datestarted_timetime_entry_idrequired
harvest_stop_time_entry
Stop running time entry
Stop a currently running time entry (no-op error if it is already stopped). Harvest REST: PATCH /time_entries/{id}/stop. WRITE — modifies data.
Parameterstime_entry_idrequired
harvest_restart_time_entry
Restart stopped time entry
Restart a previously stopped time entry, resuming its timer (error if it is already running). Harvest REST: PATCH /time_entries/{id}/restart. WRITE — modifies data.
Parameterstime_entry_idrequired
harvest_delete_time_entry
Delete time entry
Permanently delete a time entry by id. This cannot be undone. Harvest REST: DELETE /time_entries/{id}. WRITE — destroys data.
Parameterstime_entry_idrequired