For the complete documentation index, see llms.txt. This page is also available as Markdown.

Harvest

Your Toolhouse AI Worker can connect to Harvest using 57 specialized tools.

Auth Connection

This service requires an auth connection to use its tools. You can set this up in your Toolhouse dashboard under Auth Connections.

Tools (57)

Harvest Create Client

Integration name: HARVEST_CREATE_CLIENT

Tool to create a new client. Use after gathering client details to register a new client in Harvest.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

name

string

"Acme Corporation"

The name of the client or company.

address

string

"123 Main St\nAnytown, CA 12345"

The client's physical address. May include new line characters.

currency

string

"EUR"

ISO currency code for the client. If omitted, the company's default currency is used.

is_active

boolean

Whether the client is active, or archived. Defaults to true.


Harvest Create Client Contact

Integration name: HARVEST_CREATE_CLIENT_CONTACT

Tool to create a new client contact. Use when you need to add a contact under an existing client. Call after you've retrieved or confirmed the client_id.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

fax

string

"+1-555-8765"

Contact's fax number.

email

string

"john.doe@example.com"

Contact's email address.

title

string

"Director of Operations"

Title of the contact (e.g., 'Director of Ops').

client_id

integer

12345

ID of the client associated with this contact.

last_name

string

"Doe"

Last name of the contact.

first_name

string

"John"

First name of the contact.

phone_mobile

string

"+1-555-5678"

Contact's mobile phone number.

phone_office

string

"+1-555-1234"

Contact's office phone number.


Harvest Create Estimate

Integration name: HARVEST_CREATE_ESTIMATE

Tool to create a new estimate. Use after gathering client and line item details.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

tax

number

10

First tax percentage applied to subtotal, e.g., 10.0 for 10%.

tax2

number

5

Second tax percentage applied to subtotal, e.g., 5.0 for 5%.

notes

string

"Thank you for your business."

Additional notes to include on the estimate.

number

string

"2023-0001"

If not set, the estimate number will be auto-generated.

subject

string

"Website Redesign"

Estimate subject.

currency

string

"USD"

Currency for the estimate; defaults to client's currency.

discount

number

15

Discount percentage subtracted from subtotal, e.g., 15.0 for 15%.

client_id

integer

123456

ID of the client this estimate belongs to.

issue_date

string

"2023-04-01"

Date the estimate was issued (YYYY-MM-DD); defaults to today.

line_items

array

List of line items to include on the estimate.

purchase_order

string

"PO-7890"

The purchase order number.


Harvest Create Estimate Item Category

Integration name: HARVEST_CREATE_ESTIMATE_ITEM_CATEGORY

Tool to create a new estimate item category in Harvest. Use after deciding to categorize line items within an estimate.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

name

string

"Materials"

The name of the estimate item category.


Harvest Create Estimate Message

Integration name: HARVEST_CREATE_ESTIMATE_MESSAGE

Tool to create a new message for an estimate. Use when you have an estimate ID and want to send a message or run an event (send, accept, decline, re-open) on the estimate.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

body

string

The message body.

subject

string

The message subject.

event_type

string

If provided, runs an event on the estimate. Options: accept, decline, re-open, or send.

recipients

array

Array of recipient parameters. Required unless performing an event-only call.

estimate_id

integer

1439818

ID of the estimate to add a message to.

send_me_a_copy

boolean

Whether to email a copy of the message to the current user. Defaults to false.


Harvest Create Expense

Integration name: HARVEST_CREATE_EXPENSE

Tool to create a new expense entry. Use when recording costs against projects. Ensure either units or total_cost is provided.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

notes

string

"Lunch with client"

Textual notes describing the expense.

units

number

1

Quantity of units to use for calculating total_cost. Required for unit-based categories.

receipt

string

Receipt file to attach. Multipart/form-data upload not supported by this tool.

user_id

integer

1782959

ID of the user associated with this expense. Defaults to the authenticated user.

billable

boolean

true

Whether the expense is billable. Defaults to true.

project_id

integer

14308069

ID of the project associated with this expense.

spent_date

string

"2017-03-01"

Date the expense occurred (YYYY-MM-DD).

total_cost

number

13.59

Total amount of the expense. Required if not using a unit-based category.

expense_category_id

integer

4195926

ID of the expense category this expense is tracked against.


Harvest Create Invoice

Integration name: HARVEST_CREATE_INVOICE

Tool to create a new invoice. Use when you have gathered all invoice details and need to bill a client in Harvest.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

tax

5

First tax rate applied to the invoice (0-100).

tax2

2.5

Second tax rate applied to the invoice (0-100).

notes

string

"Thank you for your business!"

Additional notes on the invoice.

state

string

State of the invoice. Options: 'draft', 'open', 'paid', 'closed'.

number

string

"INV-1001"

Custom invoice number (e.g., 'INV-1001').

subject

string

"January Consulting"

Subject of the invoice.

currency

string

"USD"

Currency code (e.g., 'USD').

discount

10

Percentage discount applied to the invoice (0-100).

due_date

string

"2023-02-15"

Date the invoice is due (YYYY-MM-DD).

client_id

integer

12345

ID of the client to associate with the invoice.

issue_date

string

"2023-01-15"

Date the invoice was issued (YYYY-MM-DD).

line_items

array

Array of line item objects to include in the invoice.

purchase_order

string

"PO-1234"

Purchase order number.


Harvest Create Invoice Item Category

Integration name: HARVEST_CREATE_INVOICE_ITEM_CATEGORY

Tool to create a new invoice item category. Use after you have decided on the category name to register it in Harvest.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

name

string

"Hosting"

The name of the invoice item category.


Harvest Create Invoice Message

Integration name: HARVEST_CREATE_INVOICE_MESSAGE

Creates a new message for an invoice in Harvest. Use this to send invoice notifications to clients, create draft messages, or change invoice states (close/reopen). Requires a valid invoice ID. The invoice must be in the appropriate state for the requested event_type.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

body

string

"Please review the attached invoice."

The message body

subject

string

"Your Invoice is Ready"

The message subject

thank_you

boolean

If true, send a thank you message email

attach_pdf

boolean

If true, attach a PDF of the invoice to the message email

event_type

string

"send"

Invoice event type controls message sending and invoice state changes. Options: null/'send' - sends the message (invoice must be draft); 'draft' - creates message without sending; 'close' - closes invoice as written off (invoice must be open); 're-open' - reopens closed invoice (invoice must be closed). Default: null (same as 'send').

invoice_id

integer

123456

ID of the invoice to message

recipients

array

List of message recipients. If omitted and send_me_a_copy is false, the message will have no recipients and the request may fail. Required when event_type is 'send' or omitted (null) and send_me_a_copy is false.

send_me_a_copy

boolean

If true, send a copy of the message email to the current user

include_link_to_client_invoice

boolean

Deprecated. Ignored if true; if false, clears payment options on the invoice.


Harvest Create Invoice Payment

Integration name: HARVEST_CREATE_INVOICE_PAYMENT

Tool to create a new payment on an invoice. Use when recording a payment against an existing invoice.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

notes

string

"Paid by phone"

Any notes to be associated with the payment.

amount

1575.86

The amount of the payment.

paid_at

string

"2017-07-24T13:32:18Z"

Date and time the payment was made (ISO 8601 format). Provide either paid_at or paid_date (at least one is required), but not both.

paid_date

string

"2017-07-24"

Date the payment was made (YYYY-MM-DD format). Provide either paid_date or paid_at (at least one is required), but not both.

invoice_id

integer

13150378

ID of the invoice to add a payment to.

send_thank_you

boolean

true

Whether to send a thank you email to the client. Emails are only sent when the invoice becomes fully paid after this payment. Defaults to true if not specified. Requires account email settings to be enabled in Invoices > Configure > Messages.


Harvest Create Project

Integration name: HARVEST_CREATE_PROJECT

Create a new project in Harvest. A project is a container for tracking time, expenses, and invoices for a specific client engagement. Required: You must provide a valid client_id (use list_clients or create_client first), project name, and billing configuration (is_billable, bill_by, budget_by). Common use cases: - Time & Materials: is_billable=true, bill_by="Tasks", budget_by="project" - Fixed Fee: is_billable=true, bill_by="Project", budget_by="none", is_fixed_fee=true - Internal/Non-billable: is_billable=false, bill_by="none", budget_by="none"

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

fee

number

2000

The fee for the project when billing by project.

code

string

"PRJ001"

The project code.

name

string

"Website Redesign"

Name of the project.

notes

string

Any additional notes about the project.

budget

number

1000

The monetary budget for the project.

bill_by

string

"Tasks"

The method by which the project is invoiced. Required by the Harvest API.

ends_on

string

Date the project ends (YYYY-MM-DD).

budget_by

string

"project"

The method by which the project is budgeted. Required by the Harvest API.

client_id

integer

123

ID of the client to associate this project with.

is_active

boolean

Whether the project is active (true) or archived (false). Defaults to true.

starts_on

string

Date the project starts (YYYY-MM-DD).

cost_budget

number

500

The monetary cost budget for the project.

hourly_rate

number

150

The default hourly rate to use for this project when billing by project.

is_billable

boolean

Whether the project is billable. Required by the Harvest API.

is_fixed_fee

boolean

Whether the project is a fixed-fee project.

budget_is_monthly

boolean

Whether the budget resets every month.

show_budget_to_all

boolean

Whether the budget is visible to all project members.

notify_when_over_budget

boolean

Whether to send a notification when the project exceeds its budget.

cost_budget_include_expenses

boolean

Whether expenses are included in the cost budget.

over_budget_notification_percentage

number

80

Percentage at which the over budget notification is triggered.


Harvest Create Task

Integration name: HARVEST_CREATE_TASK

Creates a new task in Harvest. Tasks are reusable activity types (e.g., "Development", "Design", "Consulting") that can be assigned to projects for time tracking. Use this to define billable or non-billable work categories that your team will track time against.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

name

string

"Development"

The name of the task to create. Must be unique across all tasks (both active and archived) in the Harvest account.

is_active

boolean

Whether the task is active (true) or archived (false). Archived tasks cannot be assigned to projects. If not specified, defaults to true.

is_default

boolean

Whether this task should be automatically added to all future projects. If not specified, defaults to false.

billable_by_default

boolean

Whether the task is billable by default when added to a project. If not specified, defaults to true.

default_hourly_rate

number

100

The default hourly rate (in account currency) for this task when added to a project. If not specified, defaults to 0.


Harvest Create Time Entry

Integration name: HARVEST_CREATE_TIME_ENTRY

Tool to create a new time entry. Use when logging hours for a project by specifying start/end times or duration.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

hours

8.5

Total hours to log. Only used when the Harvest account is configured for duration-based time tracking. If the account uses timestamp timers, this parameter is ignored and a running timer is started instead. Use started_time and ended_time for timestamp-based tracking.

notes

string

Notes or description of the work performed

task_id

integer

67890

ID of the task to associate with the time entry. The task must be assigned to the specified project. To find valid task IDs, use GET /projects/{project_id}/task_assignments to list tasks assigned to your project - the task ID is found in the 'task.id' field of each assignment. Using HARVEST_LIST_TASKS returns global tasks which may not be assigned to your project. The task must also be active; inactive tasks cause a 422 'Task doesn't exist' error.

user_id

integer

111

ID of the user; defaults to the authenticated user

ended_time

string

Time the entry ended (e.g., '5:00pm', '17:00'). Only used when the Harvest account is configured for timestamp-based time tracking. If omitted with started_time, creates a running timer.

project_id

integer

12345

ID of the project to associate with the time entry. Use HARVEST_LIST_PROJECTS to retrieve available project IDs. The authenticated user must be assigned to the project.

spent_date

string

"2021-09-15"

Date the time entry was spent (YYYY-MM-DD) Use the user's local date, not UTC, to avoid logging hours on the wrong date.

started_time

string

Time the entry started (e.g., '9:00am', '14:30'). Only used when the Harvest account is configured for timestamp-based time tracking. Omit ended_time to create a running timer.

external_reference

object

Links this entry to an external system (task, project, etc.).


Harvest Create User

Integration name: HARVEST_CREATE_USER

Creates a new user in Harvest and sends an invitation email to the specified address. Use this action to add team members to your Harvest account. You can specify their role, permissions, rates, and whether they are employees or contractors. The user will receive an invitation email to activate their account. Required: first_name, last_name, and email. Optional: timezone, access roles, rates, weekly capacity, and business roles.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

email

string

"george@example.com"

The email address of the user.

roles

array

Descriptive names of the business roles assigned to this person. Used for filtering reports, with no impact on permissions.

timezone

string

"Eastern Time (US & Canada)"

The user's timezone in Rails timezone format. Defaults to the company's timezone if not specified. Common values: 'Eastern Time (US & Canada)', 'Pacific Time (US & Canada)', 'Central Time (US & Canada)', 'Mountain Time (US & Canada)', 'UTC', 'London', 'Paris', 'Tokyo', 'Sydney', etc.

cost_rate

number

The cost rate to use for this user when calculating project costs. Defaults to 0.0.

is_active

boolean

Whether the user is active or archived. Defaults to true.

last_name

string

"Frank"

The last name of the user.

first_name

string

"George"

The first name of the user.

access_roles

array

["administrator"]

Access role(s) that determine the user's permissions in Harvest. Primary roles (choose one): 'member' (default), 'manager', or 'administrator'. Additional manager-only roles (combine with 'manager'): 'project_creator', 'billable_rates_manager', 'managed_projects_invoice_drafter', 'managed_projects_invoice_manager', 'client_and_task_manager', 'time_and_expenses_manager', 'estimates_manager'. Note: Some roles have dependencies (e.g., invoice/estimates roles require 'billable_rates_manager').

is_contractor

boolean

Whether the user is a contractor or an employee. Defaults to false.

weekly_capacity

integer

126000

The number of hours per week this person is available to work in seconds. Defaults to 126000 (35 hours).

default_hourly_rate

number

The billable rate to use for this user when added to a project. Defaults to 0.0.

has_access_to_all_future_projects

boolean

Whether the user should be automatically added to future projects. Defaults to false.


Harvest Delete Client

Integration name: HARVEST_DELETE_CLIENT

Tool to delete a client. Use when you need to remove a client that has no associated projects, invoices, or estimates. Call after confirming the client_id exists and has no dependent resources.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

client_id

integer

123456

The ID of the client to delete.


Harvest Delete Client Contact

Integration name: HARVEST_DELETE_CLIENT_CONTACT

Permanently deletes a client contact from Harvest. Use when you need to remove a contact that is no longer relevant. Requires Administrator or Manager permissions. The deletion cannot be undone, so verify the contact_id before calling.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

contact_id

integer

The ID of the contact to delete. Returns 404 error if the contact does not exist.


Harvest Delete Estimate

Integration name: HARVEST_DELETE_ESTIMATE

Tool to delete an estimate. Use when you need to remove an estimate that is no longer needed. Call after confirming the estimate_id exists and has no dependent resources.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

estimate_id

integer

123456

The ID of the estimate to delete.


Harvest Delete Estimate Message

Integration name: HARVEST_DELETE_ESTIMATE_MESSAGE

Tool to delete an estimate message. Use when you need to remove a message from an estimate. Call after confirming estimate_id and message_id are correct.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

message_id

integer

654321

The ID of the message to delete from the estimate.

estimate_id

integer

123456

The ID of the estimate.


Harvest Delete Invoice

Integration name: HARVEST_DELETE_INVOICE

Delete an invoice from Harvest. Removes the specified invoice permanently. Requires Administrator or Manager permissions with invoice editing access.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

invoice_id

integer

123456

The ID of the invoice to delete.


Harvest Delete Invoice Item Category

Integration name: HARVEST_DELETE_INVOICE_ITEM_CATEGORY

Tool to delete an invoice item category from Harvest. Returns 200 OK on success with no response body. Important: Deletion is only possible if both use_as_service and use_as_expense are false. Categories actively used for billable hours or expenses cannot be deleted. Use when you need to remove an obsolete or unused invoice item category. Requires Admin or Project Manager permissions.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

invoice_item_category_id

integer

123456

The ID of the invoice item category to delete.


Harvest Delete Invoice Message

Integration name: HARVEST_DELETE_INVOICE_MESSAGE

Tool to delete a message from an invoice. Use when you need to remove a specific message that is no longer relevant. Call after confirming the invoice_id and message_id.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

invoice_id

integer

13150403

The ID of the invoice to delete a message from.

message_id

integer

27835324

The ID of the message to be deleted.


Harvest Delete Invoice Payment

Integration name: HARVEST_DELETE_INVOICE_PAYMENT

Tool to delete an invoice payment. Use when you need to remove a payment from an invoice after confirming payment details.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

invoice_id

integer

1234

The ID of the invoice containing the payment to delete.

payment_id

integer

5678

The ID of the invoice payment to delete.


Harvest Delete Project

Integration name: HARVEST_DELETE_PROJECT

Tool to delete a project. Use when you need to remove a project and all its associated time entries and expenses; invoices remain intact. Call after confirming the project_id exists.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

project_id

integer

987654

The ID of the project to delete.


Harvest Delete Task

Integration name: HARVEST_DELETE_TASK

Tool to delete a task. Use when you need to remove a task that has no associated time entries. Call after confirming the task_id exists and has no dependent time entries.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

task_id

integer

123456

The ID of the task to delete.


Harvest Delete Time Entry

Integration name: HARVEST_DELETE_TIME_ENTRY

Tool to delete a time entry. Use when removing an existing time entry that is deletable (not closed or on archived projects/tasks). Call after confirming the time_entry_id exists.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

time_entry_id

integer

123456

The ID of the time entry to delete.


Harvest Delete User

Integration name: HARVEST_DELETE_USER

Tool to delete a user. Use when you need to remove a user that has no associated time entries or expenses. Call after confirming the user_id exists and has no dependent time entries or expenses.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

user_id

integer

123456

The ID of the user to delete.


Harvest Get Client

Integration name: HARVEST_GET_CLIENT

Retrieves a specific client by ID from Harvest. Use this to get detailed information about a client including their name, active status, address, currency, and timestamps. Returns complete client details needed for invoicing, reporting, or verifying client information.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

client_id

integer

12345

The ID of the client to retrieve.


Harvest Get Company Info

Integration name: HARVEST_GET_COMPANY_INFO

Retrieves detailed information about the company associated with the authenticated Harvest account. This endpoint returns comprehensive company settings including: - Basic information (name, domain, active status) - Time tracking preferences (format, week start day, timer type) - Localization settings (date/time format, currency, separators) - Feature flags (expenses, invoices, estimates, approvals, team scheduling) - Weekly capacity and other operational settings No parameters required. Use this to understand company configuration before performing other operations.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

No parameters required.


Harvest Get Estimate

Integration name: HARVEST_GET_ESTIMATE

Tool to retrieve a specific estimate by ID. Use after confirming the estimate ID. Example: "Get estimate with ID 123456".

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

estimate_id

integer

123456

ID of the estimate to retrieve.


Harvest Get Invoice

Integration name: HARVEST_GET_INVOICE

Tool to retrieve a specific invoice by ID. Use when you need the full details of an invoice after selecting or creating it. Example: 'Get invoice with ID 13150378.'

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

invoice_id

integer

13150378

Unique ID of the invoice to retrieve.


Harvest Get Project

Integration name: HARVEST_GET_PROJECT

Tool to retrieve a specific Harvest project by ID. Use when you have a project ID and need its details.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

project_id

integer

123456

The ID of the Harvest project to retrieve.


Harvest Get Task

Integration name: HARVEST_GET_TASK

Tool to retrieve a specific task by ID. Use when you have a task ID and need its detailed information.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

task_id

integer

123456

Unique ID of the task to retrieve.


Harvest Get Time Entry

Integration name: HARVEST_GET_TIME_ENTRY

Tool to retrieve a single time entry by ID. Use when you have a specific time entry ID and need its full details.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

time_entry_id

integer

123456

The ID of the time entry to retrieve.


Harvest Get User

Integration name: HARVEST_GET_USER

Tool to retrieve a specific user by ID. Use after obtaining a valid user ID (for example via List Users). Example: "Get details of user 3230547".

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

user_id

integer

123

The unique ID of the user to retrieve.


Harvest List Client Contacts

Integration name: HARVEST_LIST_CLIENT_CONTACTS

Tool to list client contacts. Use when you need to retrieve contacts with optional filtering and pagination.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page

integer

1

Page number to use in pagination.

per_page

integer

100

Number of records to return per page.

client_id

integer

123456

Only return contacts belonging to the client with this ID.

updated_since

string

"2021-03-01T00:00:00Z"

Only return contacts updated since this date/time (ISO 8601).


Harvest List Clients

Integration name: HARVEST_LIST_CLIENTS

Tool to list clients. Use when you need to retrieve a paginated list of clients from Harvest. Ensure you have a valid access token in metadata before calling.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page

integer

1

DEPRECATED. Page number for pagination. Defaults to 1.

per_page

integer

100

The number of records to return per page. Min 1, max 2000. Defaults to 2000.

is_active

boolean

true

Pass true to only return active clients and false to return inactive clients.

updated_since

string

"2021-03-15T12:00:00Z"

Only return clients that have been updated since the given date and time, in ISO 8601 format.


Harvest List Estimate Messages

Integration name: HARVEST_LIST_ESTIMATE_MESSAGES

Lists all messages associated with a specific estimate in Harvest. Returns messages sorted by creation date (most recent first). Use this tool when you need to: - View communication history for an estimate - Check what messages have been sent to clients regarding an estimate - Track events that occurred on an estimate (send, accept, decline, re-open) - Filter messages by update time to find recent communications Requires a valid estimate_id. Supports pagination via per_page parameter (default 2000, max 2000).

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page

integer

2

DEPRECATED. Page number for pagination. Defaults to 1.

per_page

integer

1000

Number of records per page, between 1 and 2000. Defaults to 2000.

estimate_id

integer

1439818

ID of the estimate to retrieve messages for.

updated_since

string

"2020-01-01T00:00:00Z"

Only return estimate messages updated since the given date and time, in ISO 8601 format.


Harvest List Expense Categories

Integration name: HARVEST_LIST_EXPENSE_CATEGORIES

Tool to list expense categories. Use when you need to retrieve a paginated list of expense categories, optionally filtering by active status or last update timestamp.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page

integer

1

Page number for pagination.

per_page

integer

100

Number of records to return per page (1–2000).

is_active

boolean

true

Pass true to return only active expense categories; false to return only inactive categories.

updated_since

string

"2023-01-01T00:00:00Z"

Only return expense categories updated since the given date and time (ISO 8601).


Harvest List Invoice Item Categories

Integration name: HARVEST_LIST_INVOICE_ITEM_CATEGORIES

Tool to retrieve invoice item categories. Use when you need to fetch a paginated list of invoice item categories in Harvest.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page

integer

1

DEPRECATED. Page number for pagination. Defaults to 1.

per_page

integer

100

The number of records to return per page. Min 1, max 2000. Defaults to 2000.

updated_since

string

"2021-03-15T12:00:00Z"

Only return invoice item categories that have been updated since the given date and time, in ISO 8601 format.


Harvest List Invoice Messages

Integration name: HARVEST_LIST_INVOICE_MESSAGES

Tool to list messages associated with a given invoice. Use when you need to retrieve invoice messages with optional filtering by update time and pagination.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page

integer

1

Page number to use in pagination (deprecated, defaults to 1).

per_page

integer

100

Number of records to return per page (1-2000, defaults to 2000).

invoice_id

integer

123456

ID of the invoice to retrieve messages for.

updated_since

string

"2021-04-01T00:00:00Z"

Only return messages updated since this date/time (ISO 8601).


Harvest List Invoice Payments

Integration name: HARVEST_LIST_INVOICE_PAYMENTS

List all payments recorded for a specific invoice. Returns payment details including amounts, dates, payment gateway information, and who recorded each payment. Supports filtering by updated_since date and pagination. Returns an empty list if the invoice has no payments.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page

integer

1

Page number for pagination. Note: This parameter is deprecated by Harvest in favor of cursor-based pagination. Defaults to 1.

per_page

integer

100

Number of payment records to return per page. Must be between 1 and 2000. Defaults to 2000 (maximum).

invoice_id

integer

12345

The ID of the invoice whose payments you want to list. Required.

updated_since

string

"2021-03-01T00:00:00Z"

Filter to only payments updated after this date/time. ISO 8601 format (e.g., '2021-03-01T00:00:00Z'). Optional.


Harvest List Invoices

Integration name: HARVEST_LIST_INVOICES

Tool to list invoices. Use when you need to retrieve invoices filtered by client, project, date range, or state. Example: 'List invoices for client 5735776 from 2023-01-01 to 2023-01-31.'

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page

integer

1

Page number for pagination. Defaults to 1.

state

string

"open"

Only return invoices with a state matching this value.

to_date

string

"2021-03-31"

Only return invoices with an issue_date on or before the given date (YYYY-MM-DD).

per_page

integer

100

Number of records to return per page. 1–2000. Defaults to 100.

client_id

integer

5735776

Only return invoices belonging to the client with the given ID.

from_date

string

"2021-03-01"

Only return invoices with an issue_date on or after the given date (YYYY-MM-DD).

project_id

integer

14308069

Only return invoices associated with the project with the given ID.

updated_since

string

"2021-03-15T12:00:00Z"

Only return invoices that have been updated since the given date and time, in ISO 8601 format.


Harvest List Projects

Integration name: HARVEST_LIST_PROJECTS

Tool to list projects. Use when you need to retrieve a paginated list of projects from Harvest. Ensure a valid access token is present in metadata before calling. Results span multiple pages; check total_pages in the response and increment page to retrieve all projects. Large result sets may be returned as remote files rather than inline JSON; use structure_info to parse the response correctly.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page

integer

1

Page number for pagination. Defaults to 1.

client

integer

123456

Filter projects by the client ID.

per_page

integer

50

Number of records per page. Min 1, max 100. Defaults to 100.

updated_since

string

"2021-03-15T12:00:00Z"

Only return projects updated since the given date/time (ISO 8601).


Harvest List Tasks

Integration name: HARVEST_LIST_TASKS

Tool to list tasks. Use when you need to retrieve a paginated list of tasks from Harvest. Ensure you have a valid access token in metadata before calling. Response includes total_pages to iterate all pages when task count exceeds per_page.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page

integer

1

Page number for pagination. Defaults to 1.

per_page

integer

100

The number of records to return per page. Min 1, max 100. Defaults to 100.

is_active

boolean

true

Pass true to only return active tasks and false to return archived tasks. Use true to obtain valid task IDs for time entry creation; passing an inactive task ID to HARVEST_CREATE_TIME_ENTRY causes a 422 error.

is_default

boolean

true

Pass true to only return default tasks.

updated_since

string

"2021-03-15T12:00:00Z"

Only return tasks that have been updated since the given date and time, in ISO 8601 format.


Harvest List Time Entries

Integration name: HARVEST_LIST_TIME_ENTRIES

Tool to retrieve a list of time entries. Use when you need to fetch tracked hours with filters or date ranges for reporting or invoicing. Example: "List time entries for project 123 between 2023-01-01 and 2023-01-31".

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

to

string

"2023-01-31"

Only return time entries with a spent_date on or before this date (YYYY-MM-DD).

page

integer

1

Page number for pagination.

task_id

integer

321

Only return time entries belonging to the task with the given ID.

user_id

integer

123

Only return time entries belonging to the user with the given ID.

per_page

integer

100

Number of records to return per page (1–2000).

client_id

integer

456

Only return time entries belonging to the client with the given ID.

from_date

string

"2023-01-01"

Only return time entries with a spent_date on or after this date (YYYY-MM-DD).

is_billed

boolean

true

Pass true to return invoiced entries, false for unbilled entries.

is_running

boolean

true

Pass true to return running timers, false for stopped entries.

project_id

integer

789

Only return time entries belonging to the project with the given ID.

updated_since

string

"2023-03-01T00:00:00Z"

Only return time entries updated since this date and time (ISO 8601).

external_reference_id

string

"ref-123"

Only return time entries with the given external reference ID.


Harvest List Users

Integration name: HARVEST_LIST_USERS

Tool to list users. Use when you need to retrieve a paginated list of users from Harvest.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

page

integer

1

DEPRECATED. Page number for pagination. Defaults to 1.

per_page

integer

100

The number of records to return per page. Min 1, max 2000. Defaults to 2000.

is_active

boolean

true

Pass true to only return active users and false to return inactive users.

updated_since

string

"2021-03-15T12:00:00Z"

Only return users that have been updated since the given date and time, in ISO 8601 format.


Harvest Update Client

Integration name: HARVEST_UPDATE_CLIENT

Tool to update an existing client. Use after retrieving client details to modify its properties. Supports partial updates; omit fields to leave them unchanged.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

name

string

"Acme Corporation Updated"

A textual description of the client.

address

string

"123 Main St\nAnytown, CA 12345"

The client's physical address. May include new line characters.

currency

string

"USD"

ISO currency code for the client.

client_id

integer

123456

Unique ID of the client to update

is_active

boolean

true

Whether the client is active or archived.


Harvest Update Client Contact

Integration name: HARVEST_UPDATE_CLIENT_CONTACT

Tool to update a client contact. Use when you have a contact_id and need to modify its details.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

email

string

"john.doe@example.com"

Contact's email address.

title

string

"Director of Marketing"

Title of the contact (e.g., 'Director of Ops').

last_name

string

"Doe"

Last name of the contact.

contact_id

integer

12345

ID of the contact to update.

first_name

string

"John"

First name of the contact.

phone_mobile

string

"+1-555-5678"

Contact's mobile phone number.

phone_office

string

"+1-555-1234"

Contact's office phone number.


Harvest Update Company Info

Integration name: HARVEST_UPDATE_COMPANY_INFO

Updates company time tracking settings in Harvest. This endpoint allows modification of two company settings: 1. wants_timestamp_timers - Controls whether time is tracked via duration or start/end times 2. weekly_capacity - Sets the expected working hours per week (in seconds) Returns the complete updated company object. Requires admin permissions. Note: Other company settings (name, timezone, currency, date/time formats, color scheme, etc.) cannot be modified via the API and must be changed through the Harvest web interface.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

weekly_capacity

integer

144000

The weekly capacity in seconds. This represents the expected number of working hours per week. For example, 144000 seconds = 40 hours (40 * 60 * 60). Must be non-negative.

wants_timestamp_timers

boolean

true

Whether time is tracked via duration (false) or start and end times (true). When true, users must enter start/end times for time entries. When false, users can enter just the duration.


Harvest Update Estimate

Integration name: HARVEST_UPDATE_ESTIMATE

Tool to update an existing estimate. Use when you need to modify specific fields of an estimate; omit parameters to leave other fields unchanged.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

tax

number

10

First tax percentage applied to the subtotal, e.g., 10.0 for 10%.

tax2

number

5

Second tax percentage applied to the subtotal, e.g., 5.0 for 5%.

notes

string

"Please review changes."

Additional notes for the estimate.

number

string

"2023-0001"

Custom estimate number. Auto-generated if omitted.

subject

string

"Updated Project Quote"

Estimate subject line.

currency

string

"USD"

Currency code for the estimate; defaults to client's currency.

discount

number

15

Discount percentage subtracted from the subtotal, e.g., 15.0 for 15%.

client_id

integer

5735776

The ID of the client this estimate belongs to.

issue_date

string

"2023-06-01"

Date the estimate was issued (YYYY-MM-DD).

line_items

array

List of line items to update or add. Omit unchanged items.

estimate_id

integer

1439827

Unique ID of the estimate to update.

purchase_order

string

"PO-2345"

The purchase order number.


Harvest Update Estimate Item Category

Integration name: HARVEST_UPDATE_ESTIMATE_ITEM_CATEGORY

Updates an existing estimate item category's name in Harvest. Estimate item categories are used to organize line items within estimates. Provide the category ID and the new name you want to set.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

name

string

"Materials Updated"

The new name for the estimate item category.

estimate_item_category_id

integer

123

Unique ID of the estimate item category to update


Harvest Update Expense

Integration name: HARVEST_UPDATE_EXPENSE

Tool to update an existing expense. Use after retrieving an expense to modify project, category, date, cost, or delete a receipt; omit fields to leave unchanged.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

notes

string

"Client dinner expenses"

Notes or description for the expense.

units

3.5

Quantity of units used to calculate the expense total.

billable

boolean

true

Whether the expense is billable.

expense_id

integer

123456

Unique ID of the expense to update

project_id

integer

654321

ID of the project associated with this expense.

spent_date

string

"2021-09-15"

Date the expense occurred (YYYY-MM-DD)

total_cost

150.75

Total amount of the expense.

delete_receipt

boolean

true

Pass true to delete the attached receipt.

expense_category_id

integer

98765

ID of the expense category for this expense.


Harvest Update Invoice

Integration name: HARVEST_UPDATE_INVOICE

Tool to update an existing invoice. Use after retrieving invoice details to modify its fields. Supports partial updates; omit fields to leave unchanged.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

tax

10

Tax percentage applied to the invoice.

tax2

2.5

Additional tax percentage applied.

notes

string

"Thank you for your business!"

Additional notes to include on the invoice.

number

string

"INV-1001"

Custom invoice number.

subject

string

"Consulting Services"

The invoice subject.

currency

string

"USD"

Currency code (e.g., USD).

discount

5

Discount percentage applied to the invoice.

due_date

string

"2023-02-15"

Date the invoice is due (YYYY-MM-DD).

client_id

integer

12345

ID of the client this invoice belongs to.

invoice_id

integer

789

Unique ID of the invoice to update.

issue_date

string

"2023-01-15"

Date the invoice was issued (YYYY-MM-DD).

line_items

array

Array of line item objects to update or add.

estimate_id

integer

234

ID of the estimate associated with this invoice.

retainer_id

integer

678

ID of the retainer associated with this invoice.

payment_term

string

"net 30"

Payment timeframe: 'upon receipt', 'net 15', 'net 30', 'net 45', or 'net 60'.

purchase_order

string

"PO-1234"

The purchase order number.

payment_options

array

Payment options available: 'ach', 'credit_card', or 'paypal'.


Harvest Update Project

Integration name: HARVEST_UPDATE_PROJECT

Tool to update an existing project. Use when you need to modify one or more fields of a project by its ID. Invoke after confirming the project ID and desired changes.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

fee

number

7500

Fixed-fee amount to invoice for fixed-fee projects

code

string

"WR2023Q2"

Project code identifier

name

string

"Website Redesign Q2"

Name of the project

notes

string

"Kickoff scheduled for May 1."

Project notes or description

budget

number

200

Time budget in hours when budgeting by hours

bill_by

string

"Project"

Billing method: 'Project', 'Tasks', 'People', or 'none'

ends_on

string

"2023-12-31"

Project end date (YYYY-MM-DD)

budget_by

string

"project"

Budgeting method: 'project' (hours per project), 'project_cost' (total fees), 'task' (hours per task), 'task_fees' (fees per task), 'person' (hours per person), or 'none'

client_id

integer

5735776

ID of the client to associate this project with

is_active

boolean

true

Whether the project is active (true) or archived (false)

starts_on

string

"2023-05-01"

Project start date (YYYY-MM-DD)

project_id

integer

14308112

Unique ID of the project to update. This must be an existing project ID obtained from Harvest, typically by using LIST_PROJECTS first. Do not use arbitrary numbers or placeholders.

cost_budget

number

5000

Monetary budget when budgeting by money

hourly_rate

number

100

Hourly rate when billed by project hourly rate

is_billable

boolean

true

Whether time on this project is billable

is_fixed_fee

boolean

false

Whether this is a fixed-fee project

budget_is_monthly

boolean

false

If true, reset budget each month; defaults to false

show_budget_to_all

boolean

false

Show budget to all employees; defaults to false

notify_when_over_budget

boolean

false

Email managers when over budget; defaults to false

cost_budget_include_expenses

boolean

false

Include tracked expenses in 'project_cost' budgets; defaults to false

over_budget_notification_percentage

number

80

Threshold percent to trigger over-budget alerts (e.g., 80.0)


Harvest Update Task

Integration name: HARVEST_UPDATE_TASK

Tool to update an existing task. Use after retrieving task details to modify its attributes such as name, billing defaults, or status. Supports partial updates; omit fields to leave them unchanged.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

name

string

"Design Review"

New name for the task.

task_id

integer

123456

Unique ID of the task to update

is_active

boolean

true

Whether this task is active (true) or archived (false).

is_default

boolean

true

Whether this task should be automatically added to future projects.

billable_by_default

boolean

true

Whether new projects with this task are billable by default.

default_hourly_rate

number

150

Default hourly rate when this task is added to a project.


Harvest Update Time Entry

Integration name: HARVEST_UPDATE_TIME_ENTRY

Tool to update an existing time entry. Use after retrieving the entry to adjust hours, notes, project, or task details. Supports partial updates; omit fields to leave unchanged.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

hours

1.5

The updated number of hours for the time entry.

notes

string

"Completed API integration"

The updated notes for the time entry.

task_id

integer

67890

ID of the task associated with the time entry.

ended_time

string

The time the entry ended (e.g., '5:00pm'); if omitted, timer remains running

project_id

integer

12345

ID of the project associated with the time entry.

spent_date

string

"2021-09-15"

The date the time entry was spent (YYYY-MM-DD)

started_time

string

The time the entry started (e.g., '9:00am'); omit ended_time for running timer

time_entry_id

integer

123456

Unique ID of the time entry to update


Harvest Update User

Integration name: HARVEST_UPDATE_USER

Tool to update an existing user. Use when you need to modify a user's profile or settings after confirming the user ID.

Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

Parameter
Type
Required
Example
Description

email

string

"george@example.com"

The email address of the user. Cannot be updated if the user is inactive.

roles

array

Descriptive names of the business roles assigned to this person. Used for filtering reports, with no impact on permissions.

user_id

integer

123456

Unique ID of the user to update

timezone

string

"Eastern Time (US & Canada)"

The user’s timezone. Defaults to the company’s timezone. See supported time zones in the Harvest docs.

is_active

boolean

Whether the user is active or archived.

last_name

string

"Frank"

The last name of the user. Cannot be updated if the user is inactive.

first_name

string

"George"

The first name of the user. Cannot be updated if the user is inactive.

access_roles

array

Access roles that determine the user’s permissions in Harvest. Possible values: administrator, manager, member, project_creator, billable_rates_manager, managed_projects_invoice_drafter, managed_projects_invoice_manager, client_and_task_manager, time_and_expenses_manager, estimates_manager.

is_contractor

boolean

Whether the user is a contractor or an employee. Defaults to false.

weekly_capacity

integer

126000

The number of hours per week this person is available to work, in seconds. Must be non-negative.

has_access_to_all_future_projects

boolean

Whether the user should be automatically added to future projects. Defaults to false.