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
Expenses
Show all expense categories
GET /expense_categories
HTTP Response: 200 Success
<expense-categories> <expense-category> <name>Mileage</name> <!-- unit values only populated for Mileage --> <unit-name>Miles</unit-name> <unit-price>0.485</unit-price> <!-- If true no expenses can be logged to this category --> <deactivated>false</deactivated> </expense-category> <expense-category> ... </expense-category> ... </expense-categories>
Create new expense category
POST /expense_categories
HTTP Response: 201 CreatedLocation: /expense_categories/#{new_expense_category_id}
Sample post:
<expense-category> <name>Entertainment</name> </expense-category>
Update an existing expense category
PUT /expense_categories/#{expense_category_id}
HTTP Response: 200 OK Location: /expense_categories/#{expense_category_id}
Sample put:
<expense-category> <name>Lodging</name> </expense-category>
Delete existing expense category
DELETE /expense_categories/#{expense_category_id}
HTTP Response: 200 OK is returned if expense category does not have
any reported expenses associated.
HTTP Response: 400 Bad Request is returned if expense category is not removable.