Skip to main content
POST
/
v1
/
report-analysis
/
extra-hours-summary
Fetch extra hours summary
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    year: 2026,
    month: 1,
    timeZone: 'Asia/Kolkata',
    userId: ['f0ad9ad9-d421-48dc-868d-9760e33e5089'],
    teamId: []
  })
};

fetch('https://api.trackpilots.com/v1/report-analysis/extra-hours-summary', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "success": true,
  "statusCode": 200,
  "statusMessage": "Fetched extra hours summary successfully",
  "error": null,
  "data": [
    {
      "user": {
        "userId": "f0ad9ad9-d421-48dc-868d-9760e33e5089",
        "name": "Abirami Kannan",
        "profilePicUrl": null,
        "emailId": "abiramikannan2006@gmail.com"
      },
      "extraHoursSummary": {
        "totalDays": 28,
        "workingDays": 16,
        "completedWorkingDays": 12,
        "upcomingWorkingDays": 4,
        "weekOffDays": 12,
        "weekOffWorkedDays": 2,
        "extraHoursWorkedDays": 3,
        "extraHoursWorkedTimeInSeconds": 22980
      },
      "dailySummary": [
        {
          "date": "2026-02-02",
          "day": "Monday",
          "attendanceStatus": "PRESENT",
          "extraHoursWorkedTimeInSeconds": 22980
        }
      ]
    }
  ]
}

Authorizations

Authorization
string
header
required

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

Body

application/json

Either userId or teamId must be provided. Both cannot be empty.

year
integer
required
Required range: 2000 <= x <= 2200
Example:

2026

month
integer
required
Required range: 1 <= x <= 12
Example:

1

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 extra hours summary successfully.

success
boolean
Example:

true

statusCode
integer
Example:

200

statusMessage
string
Example:

"Fetched extra hours summary successfully"

error
string | null
Example:

null

data
object[]