> ## Documentation Index
> Fetch the complete documentation index at: https://docs.boxd.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Harvest

> Harvest is a time-tracking and invoicing tool designed for teams and freelancers, helping them log billable hours, manage projects, and streamline payments

Harvest is a time-tracking and invoicing tool designed for teams and freelancers, helping them log billable hours, manage projects, and streamline payments

`harvest` · **57 tools** · no triggers

## Connect it

```bash theme={"theme":"github-dark"}
run auth harvest
run auth harvest --scope team    # shared with the organization
```

Or from the [Integrations page](https://app.boxd.sh/integrations) in the console. See [Connections](/guides/integrations/connections) for personal versus shared, and who may remove one.

## Use it

```bash theme={"theme":"github-dark"}
run harvest          # common commands
run harvest --all    # every command
```

```ts theme={"theme":"github-dark"}
import { harvest } from "@boxd/run";
```

## Common tools

| Tool                            | What it does                                                                                                                                                        |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `create-client`                 | Tool to create a new client. Use after gathering client details to register a new client in Harvest.                                                                |
| `create-client-contact`         | Tool to create a new client contact. Use when you need to add a contact under an existing client.                                                                   |
| `create-estimate`               | Tool to create a new estimate. Use after gathering client and line item details.                                                                                    |
| `create-estimate-item-category` | Tool to create a new estimate item category in Harvest. Use after deciding to categorize line items within an estimate.                                             |
| `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...                 |
| `create-expense`                | Tool to create a new expense entry. Use when recording costs against projects.                                                                                      |
| `create-invoice`                | Tool to create a new invoice. Use when you have gathered all invoice details and need to bill a client in 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.                                              |
| `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). |
| `create-invoice-payment`        | Tool to create a new payment on an invoice. Use when recording a payment against an existing invoice.                                                               |
| `create-project`                | Create a new project in Harvest. A project is a container for tracking time, expenses, and invoices for a specific client engagement.                               |
| `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.  |
| `create-time-entry`             | Tool to create a new time entry. Use when logging hours for a project by specifying start/end times or duration.                                                    |
| `create-user`                   | Creates a new user in Harvest and sends an invitation email to the specified address.                                                                               |
| `delete-client`                 | Tool to delete a client. Use when you need to remove a client that has no associated projects, invoices, or estimates.                                              |
| `delete-client-contact`         | Permanently deletes a client contact from Harvest. Use when you need to remove a contact that is no longer relevant.                                                |
| `delete-estimate`               | Tool to delete an estimate. Use when you need to remove an estimate that is no longer needed.                                                                       |
| `delete-estimate-message`       | Tool to delete an estimate message. Use when you need to remove a message from an estimate.                                                                         |
| `delete-invoice`                | Delete an invoice from Harvest. Removes the specified invoice permanently.                                                                                          |
| `delete-invoice-item-category`  | Tool to delete an invoice item category from Harvest. Returns 200 OK on success with no response body.                                                              |
| `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.                                                |
| `delete-invoice-payment`        | Tool to delete an invoice payment. Use when you need to remove a payment from an invoice after confirming payment details.                                          |
| `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.                           |
| `delete-task`                   | Tool to delete a task. Use when you need to remove a task that has no associated time entries.                                                                      |
| `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).                                 |

<Accordion title="All 57 tools" icon="list">
  | Tool                            | What it does                                                                                                                                                           |
  | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `create-client`                 | Tool to create a new client. Use after gathering client details to register a new client in Harvest.                                                                   |
  | `create-client-contact`         | Tool to create a new client contact. Use when you need to add a contact under an existing client.                                                                      |
  | `create-estimate`               | Tool to create a new estimate. Use after gathering client and line item details.                                                                                       |
  | `create-estimate-item-category` | Tool to create a new estimate item category in Harvest. Use after deciding to categorize line items within an estimate.                                                |
  | `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...                    |
  | `create-expense`                | Tool to create a new expense entry. Use when recording costs against projects.                                                                                         |
  | `create-invoice`                | Tool to create a new invoice. Use when you have gathered all invoice details and need to bill a client in 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.                                                 |
  | `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).    |
  | `create-invoice-payment`        | Tool to create a new payment on an invoice. Use when recording a payment against an existing invoice.                                                                  |
  | `create-project`                | Create a new project in Harvest. A project is a container for tracking time, expenses, and invoices for a specific client engagement.                                  |
  | `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.     |
  | `create-time-entry`             | Tool to create a new time entry. Use when logging hours for a project by specifying start/end times or duration.                                                       |
  | `create-user`                   | Creates a new user in Harvest and sends an invitation email to the specified address.                                                                                  |
  | `delete-client`                 | Tool to delete a client. Use when you need to remove a client that has no associated projects, invoices, or estimates.                                                 |
  | `delete-client-contact`         | Permanently deletes a client contact from Harvest. Use when you need to remove a contact that is no longer relevant.                                                   |
  | `delete-estimate`               | Tool to delete an estimate. Use when you need to remove an estimate that is no longer needed.                                                                          |
  | `delete-estimate-message`       | Tool to delete an estimate message. Use when you need to remove a message from an estimate.                                                                            |
  | `delete-invoice`                | Delete an invoice from Harvest. Removes the specified invoice permanently.                                                                                             |
  | `delete-invoice-item-category`  | Tool to delete an invoice item category from Harvest. Returns 200 OK on success with no response body.                                                                 |
  | `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.                                                   |
  | `delete-invoice-payment`        | Tool to delete an invoice payment. Use when you need to remove a payment from an invoice after confirming payment details.                                             |
  | `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.                              |
  | `delete-task`                   | Tool to delete a task. Use when you need to remove a task that has no associated time entries.                                                                         |
  | `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).                                    |
  | `delete-user`                   | Tool to delete a user. Use when you need to remove a user that has no associated time entries or expenses.                                                             |
  | `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...                    |
  | `get-company-info`              | Retrieves detailed information about the company associated with the authenticated Harvest account.                                                                    |
  | `get-estimate`                  | Tool to retrieve a specific estimate by ID. Use after confirming the estimate ID.                                                                                      |
  | `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.                                            |
  | `get-project`                   | Tool to retrieve a specific Harvest project by ID. Use when you have a project ID and need its details.                                                                |
  | `get-task`                      | Tool to retrieve a specific task by ID. Use when you have a task ID and need its detailed information.                                                                 |
  | `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.                                                      |
  | `get-user`                      | Tool to retrieve a specific user by ID. Use after obtaining a valid user ID (for example via List Users).                                                              |
  | `list-client-contacts`          | Tool to list client contacts. Use when you need to retrieve contacts with optional filtering and pagination.                                                           |
  | `list-clients`                  | Tool to list clients. Use when you need to retrieve a paginated list of clients from Harvest.                                                                          |
  | `list-estimate-messages`        | Lists all messages associated with a specific estimate in 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. |
  | `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.                                           |
  | `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.           |
  | `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.       |
  | `list-invoices`                 | Tool to list invoices. Use when you need to retrieve invoices filtered by client, project, date range, or state.                                                       |
  | `list-projects`                 | Tool to list projects. Use when you need to retrieve a paginated list of projects from Harvest.                                                                        |
  | `list-tasks`                    | Tool to list tasks. Use when you need to retrieve a paginated list of tasks from 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.                              |
  | `list-users`                    | Tool to list users. Use when you need to retrieve a paginated list of users from Harvest.                                                                              |
  | `update-client`                 | Tool to update an existing client. Use after retrieving client details to modify its properties.                                                                       |
  | `update-client-contact`         | Tool to update a client contact. Use when you have a contact\_id and need to modify its details.                                                                       |
  | `update-company-info`           | Updates company time tracking settings in Harvest. This endpoint allows modification of two company settings: 1. wants\_timestamp\_timers - Controls...                |
  | `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.                      |
  | `update-estimate-item-category` | Updates an existing estimate item category's name in 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.      |
  | `update-invoice`                | Tool to update an existing invoice. Use after retrieving invoice details to modify its fields.                                                                         |
  | `update-project`                | Tool to update an existing project. Use when you need to modify one or more fields of a project by its ID.                                                             |
  | `update-task`                   | Tool to update an existing task. Use after retrieving task details to modify its attributes such as name, billing defaults, or status.                                 |
  | `update-time-entry`             | Tool to update an existing time entry. Use after retrieving the entry to adjust hours, notes, project, or task details.                                                |
  | `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.                                                |
</Accordion>

[Open Harvest in the console →](https://app.boxd.sh/integrations/detail/harvest)
