Timesheet (time and cost) report
list_timesheetsRetrieve timesheet time and cost report rows for a date range, grouped by task and employee, with optional status, client, project, or employee filters.
Instructions
Time recorded on timesheets for a date range (POST /reports/timesheets, the documented "time and cost report"; a POST that changes nothing), summed per task and employee for each period of time_grouping. Columns are the documented example's: Date, Status, CompanyName, CompanyReference, ChargeCodeGroup, ChargeCodeGroupReference, ChargeCode, ChargeCodeDesc, EmployeeReference, EmployeeName, ApproverName, EntryQuantity, RateCode, RateName, Units, ChargeRate, TotalCharge, TimesheetUpdateSequence; PayRate, TotalPay only with include_contact_details. Filters sent as documented: timesheetStatusFilters, clientFilter, costCentreFilter, employeeGroupFilter, employeeFilter, chargeCodeGroupFilter, taskCodeFilter, approvedDateFilterStart/End, modifiedAfterDate. Each call counts against the documented limit of 24 report requests and 500 records read per hour: keep ranges narrow. One page per call (pageIndex); the page size is not documented. Every value is redacted like free text, and a row whose length does not match the requested columns is refused rather than mislabelled.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | Last date, YYYY-MM-DD (at most 366 days after start_date) | |
| statuses | No | Timesheet statuses to include (default All) | |
| task_code | No | Sent as taskCodeFilter | |
| page_index | No | Page of the report (pageIndex, zero-based) | |
| start_date | Yes | First date, YYYY-MM-DD | |
| approved_to | No | Only time approved before this date/time (approvedDateFilterEnd) | |
| client_code | No | Sent as clientFilter | |
| max_results | No | Most rows to return in this call (default 100); the answer says how many were left out | |
| project_code | No | Sent as chargeCodeGroupFilter | |
| approved_from | No | Only time approved since this date/time (approvedDateFilterStart) | |
| employee_code | No | Sent as employeeFilter | |
| time_grouping | No | Time grouping of the rows (reportTimeGrouping) | Weekly |
| modified_after | No | Only records modified after this date/time (modifiedAfterDate) | |
| cost_centre_code | No | Sent as costCentreFilter | |
| employee_group_code | No | Sent as employeeGroupFilter | |
| include_contact_details | No | Include the pay columns (PayRate, TotalPay), and stop redacting email addresses, phone numbers, national insurance numbers and UK postcodes typed into names and other text (bank and card numbers are always removed) |