---
title: "Lists report-ready time-clock rows from the time-clock reporting view, including clock-in/clock-out
times, computed shift hours, reason and clock codes, and override-audit context so callers do not
need to hand-join timer entries to their reason and clock-code tags."
method: POST
path: "/api/reporting/time-clock/list"
tags: ["Reporting"]
---

# Lists report-ready time-clock rows from the time-clock reporting view, including clock-in/clock-out
times, computed shift hours, reason and clock codes, and override-audit context so callers do not
need to hand-join timer entries to their reason and clock-code tags.

`POST /api/reporting/time-clock/list`

## Query parameters

- `Sort.Field` string
- `Sort.Dir` 'ascending' | 'descending' — Specify sorting direction.
- `Skip` integer
- `Take` integer

## Request body

- DtoReportingTimeClockReportFilter — Constrained filter for the time-clock reporting list endpoint. Every field maps to a fixed, server-controlled column; values are always bound as Dapper parameters and never concatenated into SQL.
  - `startedFrom` string, date-time, nullable — Inclusive lower bound applied to the entry's clock-in time (Started). Null means no lower bound.
  - `startedTo` string, date-time, nullable — Inclusive upper bound applied to the entry's clock-in time (Started); the whole `to` day is included. Null means no upper bound.
  - `employee` string, nullable — Optional exact-match filter on the operator / employee name. Null means no employee filter.
  - `type` string, nullable — Optional exact-match filter on the timer-entry type (ClockIn or Break). Null means no type filter.

## Response `200`

A page of time-clock report rows with the total matching count.

- DtoPagedResultDtoDtoReportingTimeClockReportRow — Paged result
  - `data` DtoReportingTimeClockReportRow[], required — The data
    - `employee` string, nullable — Operator / employee name.
    - `overridden` string, nullable — "Yes" when the entry's start or stop time was manually overridden, otherwise "No".
    - `type` string, nullable — Timer-entry type classification (ClockIn or Break).
    - `started` string, date-time, nullable — Clock-in timestamp.
    - `stopped` string, date-time, nullable — Clock-out timestamp; null if not yet stopped.
    - `shiftHoursWorked` number, double, nullable — Computed hours between Started and Stopped.
    - `reason` string, nullable — Reason code for the entry, when applicable.
    - `clockCode` string, nullable — Clock-code tag attached to the entry, when applicable.
    - `createdByName` string, nullable — User who created the entry.
    - `modifiedByName` string, nullable — Most recent user to modify the entry.
    - `startedOnOverrideByName` string, nullable — User who overrode the start time, when applicable.
    - `stoppedOnOverrideByName` string, nullable — User who overrode the stop time, when applicable.
  - `page` integer, required — The 1-indexed page
  - `pageSize` integer, required — The page size
  - `totalCount` integer, required — The total count of records
  - `totalPages` integer, required — The total pages
  - `hasPreviousPage` boolean, required — True if there is a previous page
  - `hasNextPage` boolean, required — True if there is a next page

## Other responses

- `403` — The viewer lacks the View Time Management permission.

---

[API](https://skmtc.net/fulcrumpro/apis/fulcrum-publicapi.md) · [All operations](https://skmtc.net/fulcrumpro/apis/fulcrum-publicapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fulcrumpro/fulcrum-publicapi/versions/1b5649cff14a/schema)
