Skip to main content
POST
/
v1
/
proof-of-work
/
timesheet
Fetch Timesheet
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    startDate: '2026-02-08 00:00:00',
    endDate: '2026-02-08 23:59:59',
    timeZone: 'Asia/Kolkata',
    userId: ['ab7c4f30-1024-471a-a767-739df0dc53fd'],
    teamId: []
  })
};

fetch('https://api.trackpilots.com/v1/proof-of-work/timesheet', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "success": true,
  "statusCode": 200,
  "statusMessage": "Fetched timesheet successfully",
  "error": null,
  "data": [
    {
      "user": {
        "userId": "ab7c4f30-1024-471a-a767-739df0dc53fd",
        "name": "Sakthivel Govinthan",
        "profilePicUrl": "https://trackpilots.s3.amazonaws.com/profile-pic/xxx.png"
      },
      "dailySummary": [
        {
          "date": "2026-02-12T00:00:00.000Z",
          "day": "Thursday",
          "inTime": "2026-02-12T10:02:01.676Z",
          "outTime": "2026-02-12T22:23:56.461Z",
          "totalTimeSpendSeconds": 18432,
          "activeTimeSpendSeconds": 16787,
          "idleTimeSpendSeconds": 1645,
          "productiveTimeSpendSeconds": 14288,
          "unproductiveTimeSpendSeconds": 0,
          "neutralTimeSpendSeconds": 2499
        }
      ],
      "overallSummary": {
        "totalActiveTimeSpendSeconds": 29973,
        "totalIdleTimeSpendSeconds": 2481,
        "totalTimeSpendSeconds": 32454,
        "totalProductiveTimeSpendSeconds": 26047,
        "totalNeutralTimeSpendSeconds": 3926,
        "totalUnproductiveTimeSpendSeconds": 0
      },
      "session": {
        "avgCheckInTime": "01:45:51",
        "avgCheckOutTime": "10:46:51"
      }
    }
  ]
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Request payload to fetch timesheet. Either userId or teamId must be provided. Both cannot be empty.

startDate
string<date-time>
required
Example:

"2026-02-08 00:00:00"

endDate
string<date-time>
required
Example:

"2026-02-08 23:59:59"

timeZone
string
required

IANA timezone of the requester

Example:

"Asia/Kolkata"

userId
string<uuid>[]
required

List of user UUIDs to fetch screenshots for

teamId
string<uuid>[]

List of team UUIDs to fetch screenshots for

Example:
[]

Response

Fetched timesheet successfully.

success
boolean
Example:

true

statusCode
integer
Example:

200

statusMessage
string
Example:

"Fetched timesheet successfully"

error
unknown
data
object[]