The Harvest API allows developers to programmatically access data and objects in Harvest, a web-based time tracking application. With the API, developers can create applications that submit and retrieve time tracking data, as well as automate various aspects of the Harvest user experience.
Some examples of what you can build using the Harvest API include:
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
harvest: {
type: "app",
app: "harvest",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://id.getharvest.com/api/v2/accounts`,
headers: {
Authorization: `Bearer ${this.harvest.$auth.oauth_access_token}`,
"User-Agent": `Pipedream (pipedream.com)`,
},
})
},
})
Creates a new time entry object. Create a time entry via duration documentation, Create a time entry via start and end time documentation
Harvest uses OAuth authentication. When you connect your Harvest account, Pipedream will open a popup window where you can sign into Harvest and grant Pipedream permission to connect to your account. Pipedream securely stores and automatically refreshes the OAuth tokens so you can easily authenticate any Harvest API.
Pipedream requests the following authorization scopes when you connect your account:
GET
https://id.getharvest.com/oauth2/authorize
?
client_id={{oauth.client_id}}
&
redirect_uri={{oauth.redirect_uri}}
&
state={{oauth.state}}
&
response_type=code
&
scope={{oauth.space_separated_scopes}}
POST
https://id.getharvest.com/api/v2/oauth2/token
content-type: application/x-www-form-urlencoded
accept: application/json
client_id={{oauth.client_id}}
&
client_secret={{oauth.client_secret}}
&
redirect_uri={{oauth.redirect_uri}}
&
grant_type=authorization_code
&
code={{oauth.code}}
POST
https://id.getharvest.com/api/v2/oauth2/token
content-type: application/x-www-form-urlencoded
accept: application/json
client_id={{oauth.client_id}}
&
client_secret={{oauth.client_secret}}
&
grant_type=refresh_token
&
refresh_token={{oauth.refresh_token}}