Authenticate using OAuth 2.0; obtain a Bearer access token by completing the authorization code flow through the Intuit developer portal for your QuickBooks Time app.
Call GET https://rest.tsheets.com/api/v1/timesheets with the Authorization: Bearer <token> header; pass filter parameters such as start_date, end_date, and user_ids to narrow results.
Parse the timesheets object in the response; each entry includes the user ID, jobcode ID, duration, start/end times, and approval status.
By default, the response includes a supplemental_data object containing related user and jobcode records — use this to resolve IDs to names without extra calls, or suppress it by passing supplemental_data=no.
Paginate through results using the page parameter if the response indicates more records are available.
Known gotchas
QuickBooks Time was acquired from TSheets — the API base URL remains rest.tsheets.com and the legacy documentation at tsheetsteam.github.io is still the primary API reference, separate from the main Intuit developer portal.
Timesheet duration is stored in seconds — convert to hours/minutes in your application layer rather than expecting the API to return human-readable durations.
Approved timesheets require the approvals to have been submitted in QuickBooks Time; requesting approved timesheets via filter will only return entries that have gone through the approval workflow.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp