API Documentation
Time Tracking
Extended REST API
Clients
Projects
Tasks
People
Expenses
Expense Tracking
User Assignment
Task Assignment
Reports
Invoices
Invoice Messages
Invoice Payments
Invoice Categories
Questions?
Email support@getharvest.com
Time Tracking
Extended REST API
Clients
Projects
Tasks
People
Expenses
Expense Tracking
User Assignment
Task Assignment
Reports
Invoices
Invoice Messages
Invoice Payments
Invoice Categories
Questions?
Email support@getharvest.com
Clients
Get all clients
GET /clients
HTTP Response: 200 Success
<clients> <client> <id type="integer">11072</id> <name>SuprCorp</name> <active>true</active> <details>123 Main St. Third Floor New York, NY 10011 USA 212-555-1212 212-555-1213 (fax) http://www.company.com</details> </client> <client> ... </client> </clients>
Get a client
GET /clients/#{client_id}
HTTP Response: 200 Success
<client> <id type="integer">11072</id> <name>SuprCorp</name> <active>true</active> <details>123 Main St. Third Floor New York, NY 10011 USA 212-555-1212 212-555-1213 (fax) http://www.company.com</details> </client>
Create a new client
POST /clients
HTTP Response: 201 Created
Location: /clients/#{new_client_id}
You need to post the following:
<client> <name>Company LLC</name> <details>123 Main St. Third Floor New York, NY 10011 USA 212-555-1212 212-555-1213 (fax) http://www.company.com</details> </client>Note: Only NAME is required.
Update client
PUT /client/#{client_id}
HTTP Response: 200 OK
You can update select attributes for a client.
<client> <name>Company LLC</name> <details>123 Main St. Third Floor New York, NY 10011 USA 212-555-1212 212-555-1213 (fax) http://www.company.com</details> </client>
(De)Activate an existing client
PUT /clients/#{client_id}/toggle
HTTP Response: 200 Success
Location: /clients/#{client_id}
Note that if the client has active projects, Harvest will return
HTTP Response: 400 Bad Request, with a Hint header.
Delete a client
DELETE /client/#{client_id}
If client does not have associated projects or invoices Harvest deletes it and returnsHTTP Response: 200 OK
otherwise client is not deleted and you'll get a HTTP Response: 400 Bad Request .