# Harvest API Documentation

This is the complete API documentation for connecting to the Harvest API using MindCloud's Universal API.

MindCloud offers one normalized API to access 3,400+ apps from a single place. It centralizes authentication and normalizes app APIs so they are easier and more consistent to use.

## Quickstart

1. A **MindCloud account** — sign in or create an account at [MindCloud](https://app.mindcloud.co).
2. A **MindCloud API Key** — create one in [API Keys](https://app.mindcloud.co/user/api-keys). Keep it on your server.
3. At least one **Harvest connection** — create or choose one in [Connections](https://app.mindcloud.co/credentials). Note its `connectionId`.

```text
POST https://connect.mindcloud.co/v2/universal/apps/harvest/actions/{actionSlug}/run
```

## Harvest actions

- POST `create-client` Create Client
- POST `create-contact` Create Contact
- POST `create-expense` Create Expense
- POST `create-invoice` Create Invoice
- POST `create-project` Create Project
- POST `create-project-task-assignment` Create Project Task Assignment
- POST `create-task` Create Task
- POST `create-time-entry` Create Time Entry
- DELETE `delete-client` Delete client
- DELETE `delete-invoice` Delete invoice
- DELETE `delete-project` Delete project
- DELETE `delete-task` Delete task
- GET `list-clients` List Clients
- GET `list-contacts` List Contacts
- GET `list-expense-categories` List Expense Categories
- GET `list-expenses` List Expenses
- GET `list-invoices` List Invoices
- GET `list-projects` List Projects
- GET `list-tasks` List Tasks
- GET `list-time-entries` List Time Entries
- GET `list-users` List Users
- GET `retrieve-client` Retrieve Client
- GET `retrieve-company` Retrieve Company
- GET `retrieve-contact` Retrieve Contact
- GET `retrieve-current-user` Retrieve Current User
- GET `retrieve-invoice` Retrieve Invoice
- GET `retrieve-project` Retrieve Project
- GET `retrieve-task` Retrieve Task
- GET `retrieve-time-entry` Retrieve Time Entry
- PUT `update-client` Update Client
- PUT `update-contact` Update Contact
- PUT `update-expense` Update Expense
- PUT `update-invoice` Update Invoice
- PUT `update-project` Update Project
- PUT `update-task` Update Task
- PUT `update-time-entry` Update Time Entry
