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
Reporting
Harvest provides a powerful reporting interface along with CSV and QuickBooks export. If you need to get raw data in a scriptable manner, Harvest provides direct XML export through the Reporting API. You can import XML data into other systems or create your own custom reporting interfaces on top of your Harvest account's data.
Get all time entries logged to a project for a given timeframe
GET /projects/#{project_id}/entries?from=YYYYMMDD&to=YYYYMMDD
HTTP Response: 200 Success
<?xml version="1.0\" encoding="UTF-8\"?> <day-entries> <day-entry> <hours type="decimal">0.3</hours> <id type="integer">755730</id> <notes>Follow up with Danny</notes> <project-id type="integer">4234</project-id> <spent-at type="date">2007-11-15</spent-at> <task-id type="integer">1</task-id> <user-id type="integer">5</user-id> </day-entry> <day-entry> ... </day-entry> ... </day-entries>
This call requires parameters (from and to) to describe the
timeframe to use for a report.
Get all time entries by the current user logged to a project for a given timeframe
GET /projects/#{project_id}/entries?from=YYYYMMDD&to=YYYYMMDD&user_id=#{user_id}
This call requires parameters (from, to) to describe the
timeframe to use for a report. This method can be used to view your own entries on a specific project.
Get all time entries logged by a user for a given timeframe
GET /people/#{user_id}/entries?from=YYYYMMDD&to=YYYYMMDD
HTTP Response: 200 Success
<?xml version="1.0" encoding="UTF-8"?> <day-entries> <day-entry> <hours type="decimal">0.2</hours> <id type="integer">755689</id> <notes></notes> <project-id type="integer">2</project-id> <spent-at type="date">2007-11-19</spent-at> <task-id type="integer">2</task-id> <user-id type="integer">1</user-id> </day-entry> <day-entry> ... </day-entry> ... <day-entries>
This call requires parameters (from and to) to describe the
timeframe to use for a report.
Get all your time entries from a project and a given timeframe
GET /people/#{user_id}/entries?from=YYYYMMDD&to=YYYYMMDD&project_id=#{project_id}
HTTP Response: 200 Success
This call requires parameters (from, to and project_id) and it will return results .
Get all expense entries logged by a user for a given timeframe
GET /people/#{user_id}/expenses?from=YYYYMMDD&to=YYYYMMDD
HTTP Response: 200 Success
<?xml version="1.0" encoding="UTF-8"?> <expenses> <expense> <expense-category-id type="integer">50543</expense-category-id> <id type="integer">11</id> <notes>Drive to pick up office supplies</notes> <project-id type="integer">19034</project-id> <spent-at type="date">2008-01-23</spent-at> <total-cost type="decimal">4.85</total-cost> <units type="decimal">10.0</units> <user-id type="integer">12334</user-id> </expense> <expense> ... </expense> ... <expenses>
This call requires parameters (from and to) to describe the
timeframe to use for a report.
In conjunction with the reporting calls, you may wish to retrieve all users projects expense categories tasks and to convert numeric IDs to users, projects, tasks, and expense categories.