Harvest

Learn how to use Harvest with Composio

Overview

SLUG

HARVEST

Description

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

Authentication Details

client_id
stringRequired
client_secret
stringRequired
full
stringDefaults to https://api.harvestapp.com/v2Required
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to harvest:read,harvest:write
bearer_token
string

Tools

SLUG: HARVEST_CREATE_CLIENT

Tool to create a new client. use after gathering client details to register a new client in harvest.

Action Parameters

address
string
currency
string
is_active
boolean
name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

client_id
integerRequired
email
fax
string
first_name
stringRequired
last_name
string
phone_mobile
string
phone_office
string
title
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_CREATE_ESTIMATE

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

Action Parameters

client_id
integerRequired
currency
string
discount
number
issue_date
string
line_items
array
notes
string
number
string
purchase_order
string
subject
string
tax
number
tax2
number

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

body
string
estimate_id
integerRequired
event_type
string
recipients
array
send_me_a_copy
boolean
subject
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_CREATE_EXPENSE

Tool to create a new expense entry. use when recording costs against projects. ensure either units or total cost is provided.

Action Parameters

billable
boolean
expense_category_id
integerRequired
notes
string
project_id
integerRequired
receipt
string
spent_date
stringRequired
total_cost
number
units
number
user_id
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

client_id
integerRequired
currency
string
discount
number
due_date
string
issue_date
string
line_items
arrayRequired
notes
string
number
string
purchase_order
string
state
string
subject
string
tax
number
tax2
number

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_CREATE_INVOICE_MESSAGE

Tool to create a new message for an invoice. use after confirming the invoice id when you need to notify a client with invoice details.

Action Parameters

attach_pdf
boolean
body
string
event_type
string
include_link_to_client_invoice
boolean
invoice_id
integerRequired
recipients
array
send_me_a_copy
boolean
subject
string
thank_you
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_CREATE_INVOICE_PAYMENT

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

Action Parameters

amount
numberRequired
invoice_id
integerRequired
notes
string
paid_at
string
paid_date
string
send_thank_you
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_CREATE_PROJECT

Tool to create a new project. use after confirming the client exists.

Action Parameters

bill_by
string
budget
number
budget_by
string
budget_is_monthly
boolean
client_id
integerRequired
code
string
cost_budget
number
cost_budget_include_expenses
boolean
ends_on
string
fee
number
hourly_rate
number
is_active
boolean
is_billable
boolean
is_fixed_fee
boolean
name
stringRequired
notes
string
notify_when_over_budget
boolean
over_budget_notification_percentage
number
show_budget_to_all
boolean
starts_on
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_CREATE_TASK

Tool to create a new task. use after identifying task details to register it in harvest.

Action Parameters

billable_by_default
boolean
default_hourly_rate
number
is_active
boolean
is_default
boolean
name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

ended_time
string
external_reference
object
hours
number
notes
string
project_id
integerRequired
spent_date
stringRequired
started_time
string
task_id
integerRequired
user_id
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_CREATE_USER

Tool to create a new user. use after gathering user details to invite them to harvest.

Action Parameters

access_roles
array
cost_rate
number
default_hourly_rate
number
email
stringRequired
first_name
stringRequired
has_access_to_all_future_projects
boolean
is_active
boolean
is_contractor
boolean
last_name
stringRequired
roles
array
timezone
string
weekly_capacity
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

client_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_DELETE_CLIENT_CONTACT

Tool to delete a client contact. use when you need to remove a contact that is no longer relevant. call after confirming the contact id exists.

Action Parameters

contact_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

estimate_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

estimate_id
integerRequired
message_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_DELETE_INVOICE

Tool to delete an invoice. use when you need to remove an invoice that has no associated payments. call after confirming the invoice id exists.

Action Parameters

invoice_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_DELETE_INVOICE_ITEM_CATEGORY

Tool to delete an invoice item category. use when you need to remove an obsolete or incorrect invoice item category. call after confirming the invoice item category id exists.

Action Parameters

invoice_item_category_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

invoice_id
integerRequired
message_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

invoice_id
integerRequired
payment_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

project_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

task_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

time_entry_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

user_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_GET_CLIENT

Tool to retrieve a specific client by id. use when you need details of a client before invoicing or reporting.

Action Parameters

client_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_GET_CLIENT_CONTACT

Tool to retrieve a specific client contact. use when you have client id and contact id to fetch and verify contact details.

Action Parameters

client_id
integerRequired
contact_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_GET_COMPANY_INFO

Tool to retrieve information about the authenticated user's company. use after authentication to fetch company settings for display or configuration.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_GET_ESTIMATE

Tool to retrieve a specific estimate by id. use after confirming the estimate id. example: "get estimate with id 123456".

Action Parameters

estimate_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.'

Action Parameters

invoice_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_GET_PROJECT

Tool to retrieve a specific harvest project by id. use when you have a project id and need its details.

Action Parameters

project_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_GET_TASK

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

Action Parameters

task_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

time_entry_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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".

Action Parameters

user_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

is_active
boolean
page
integer
per_page
integer
updated_since
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_LIST_CLIENT_CONTACTS

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

Action Parameters

client_id
integer
page
integer
per_page
integer
updated_since
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_LIST_ESTIMATE_MESSAGES

Tool to list messages for an estimate. use after obtaining an estimate id to retrieve associated messages, supports pagination and filtering by update time.

Action Parameters

estimate_id
integerRequired
page
integer
per_page
integer
updated_since
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

is_active
boolean
page
integer
per_page
integer
updated_since
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.'

Action Parameters

client_id
integer
from_date
string
page
integer
per_page
integer
project_id
integer
state
string
to_date
string
updated_since
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

page
integer
per_page
integer
updated_since
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

invoice_id
integerRequired
page
integer
per_page
integer
updated_since
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_LIST_INVOICE_PAYMENTS

Tool to retrieve payments for a specific invoice. use when you need to list all payments applied to an invoice after confirming the invoice exists.

Action Parameters

invoice_id
integerRequired
page
integer
per_page
integer
updated_since
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

client
integer
page
integer
per_page
integer
updated_since
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

is_active
boolean
is_default
boolean
page
integer
per_page
integer
updated_since
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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".

Action Parameters

client_id
integer
external_reference_id
string
from_date
string
is_billed
boolean
is_running
boolean
page
integer
per_page
integer
project_id
integer
task_id
integer
to
string
updated_since
string
user_id
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_LIST_USERS

Tool to list users. use when you need to retrieve a paginated list of users from harvest.

Action Parameters

is_active
boolean
page
integer
per_page
integer
updated_since
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

address
string
client_id
integerRequired
currency
string
is_active
boolean
name
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_UPDATE_CLIENT_CONTACT

Tool to update a client contact. use when you have a contact id and need to modify its details.

Action Parameters

contact_id
integerRequired
email
first_name
string
last_name
string
phone_mobile
string
phone_office
string
title
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_UPDATE_COMPANY_INFO

Tool to update information about the company. use to modify company settings such as name, timezone, or formatting options. use after obtaining current settings to apply changes.

Action Parameters

color_scheme
string
currency
string
decimal_symbol
string
name
string
thousands_separator
string
timezone
string
week_start_day
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

client_id
integer
currency
string
discount
number
estimate_id
integerRequired
issue_date
string
line_items
array
notes
string
number
string
purchase_order
string
subject
string
tax
number
tax2
number

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: HARVEST_UPDATE_ESTIMATE_ITEM_CATEGORY

Tool to update an estimate item category. use after retrieving the category to change its name.

Action Parameters

estimate_item_category_id
integerRequired
name
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

billable
boolean
delete_receipt
boolean
expense_category_id
integer
expense_id
integerRequired
notes
string
project_id
integer
spent_date
string
total_cost
number
units
number

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

client_id
integer
currency
string
discount
number
due_date
string
estimate_id
integer
invoice_id
integerRequired
issue_date
string
line_items
array
notes
string
number
string
payment_options
array
payment_term
string
purchase_order
string
retainer_id
integer
subject
string
tax
number
tax2
number

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

bill_by
string
budget
number
budget_by
string
budget_is_monthly
boolean
client_id
integer
code
string
cost_budget
number
cost_budget_include_expenses
boolean
ends_on
string
fee
number
hourly_rate
number
is_active
boolean
is_billable
boolean
is_fixed_fee
boolean
name
string
notes
string
notify_when_over_budget
boolean
over_budget_notification_percentage
number
project_id
integerRequired
show_budget_to_all
boolean
starts_on
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

billable_by_default
boolean
default_hourly_rate
number
is_active
boolean
is_default
boolean
name
string
task_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

ended_time
string
hours
number
notes
string
project_id
integer
spent_date
string
started_time
string
task_id
integer
time_entry_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

SLUG: 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.

Action Parameters

access_roles
array
email
string
first_name
string
has_access_to_all_future_projects
boolean
is_active
boolean
is_contractor
boolean
last_name
string
roles
array
timezone
string
user_id
integerRequired
weekly_capacity
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired