Harvest API Documentation
This is the complete API documentation for connecting to the Harvest API using MindCloud's Universal API. If you are new to MindCloud, start with the Introduction to see how one API can sit in front of many different apps.
MindCloud is an integration company that offers one normalized API to access 3,100+ apps from a single place. It cleans up provider-specific quirks, keeps requests and responses consistent, and centralizes authentication so you do not need to manage separate flows for every app. Browse other apps.
Meet Harvest: Track time, manage projects, and handle invoices in Harvest. Keep reading to get started.
Quickstart
Before you run your first Harvest request, you need three things:
- A MindCloud account — sign in or create an account at MindCloud.
- A MindCloud API Key — create one in API Keys. Keep it on your server.
- At least one Harvest connection — create or choose one in Connections. Note its
connectionId.
Every Harvest action uses the same URL pattern:
POST https://connect.mindcloud.co/v2/universal/apps/harvest/actions/{actionSlug}/runYou need a MindCloud API Key and a Harvest connection. Then call an action such as Retrieve Current User:
curl --request POST \
--url "https://connect.mindcloud.co/v2/universal/apps/harvest/actions/retrieve-current-user/run" \
--header "Authorization: Bearer $MINDCLOUD_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"connectionId": "$CONNECTION_ID",
"arguments": {}
}'Every response comes back in the same envelope, with your rows in a data array:
{
"success": true,
"data": [
{ "id": "1042", "name": "Ava" }
],
"meta": {}
}After your first request works, use Shape your requests to control arguments, pagination, filtering, fields, and errors.
Authenticate with a MindCloud API Key plus a connectionId for your Harvest account. See Harvest API Authentication for the full flow and how to get your connection credentials.
Harvest actions
All 36 published actions for this Harvest version. Each page documents the endpoint, arguments, and response controls.
- POSTCreate Client
- POSTCreate Contact
- POSTCreate Expense
- POSTCreate Invoice
- POSTCreate Project
- POSTCreate Project Task Assignment
- POSTCreate Task
- POSTCreate Time Entry
- DELETEDelete client
- DELETEDelete invoice
- DELETEDelete project
- DELETEDelete task
- GETList Clients
- GETList Contacts
- GETList Expense Categories
- GETList Expenses
- GETList Invoices
- GETList Projects
- GETList Tasks
- GETList Time Entries
- GETList Users
- GETRetrieve Client
- GETRetrieve Company
- GETRetrieve Contact
- GETRetrieve Current User
- GETRetrieve Invoice
- GETRetrieve Project
- GETRetrieve Task
- GETRetrieve Time Entry
- PUTUpdate Client
- PUTUpdate Contact
- PUTUpdate Expense
- PUTUpdate Invoice
- PUTUpdate Project
- PUTUpdate Task
- PUTUpdate Time Entry
Related apps
More Productivity apps on the Universal API, behind the same REST shape. Or browse all apps.