Skip to main content

GET /timesheets

Summary

List timesheets

URL Parameters

  • None

Query Parameters

NameTypeRequiredDescription
companystringNoFilter by company id(s). Pass a single id or comma-separated ids. If omitted, data for all companies linked to the API key is returned.
pageintegerNoPage number (default 1)
limitintegerNoRecords per page (default 50, max 200)
statusenum(pending, pending_approval, approved, cancelled, absent)NoFilter by timesheet status
projectstringNoFilter by project id
sitestringNoFilter by site id
assignmentstringNoFilter by assignment id
workerstringNoFilter by worker id
agencystringNoFilter by agency id
querystringNoCase-insensitive search against timesheet reference, worker name/reference, and agency name
dateFieldenum(createdAt, updatedAt, start, end, weekEnding, approvedDate)NoDate field that from/to apply to. Default: createdAt.
fromstringNoDate filter start (YYYY-MM-DD); applies to dateField
tostringNoDate filter end (YYYY-MM-DD); applies to dateField
sortByenum(createdAt, updatedAt, timesheetRef, start, weekEnding, approvedDate)NoSort field
sortOrderenum(asc, desc)NoSort direction
fieldsstringNoComma-separated list of response fields or dot-path nested fields to return
includeTimelogsbooleanNoInclude timelog rows for each timesheet

Request Example

curl -X GET 'https://api.requidex.com/api/open/v1/timesheets' \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Accept: application/json'

Response Fields

FieldTypeDescription
agencyobject
Show child attributes
  • id string - Agency id
  • name string - Agency name
approvedDatestringApproval timestamp in ISO 8601 date-time format
assignmentobject
Show child attributes
  • id string - Assignment id
  • reference string - Assignment reference
companyobject
Show child attributes
  • id string - Company id
  • name string - Company name
createdAtstringCreation timestamp
endstringTimesheet period end in ISO 8601 date-time format
idstringTimesheet id
netHoursnumberTotal net hours after breaks
payTypestringPay type
pieceRateEntriesarrayPiece work captured on the timesheet.
Show child attributes
  • id string - Entry id
  • pieceRateId string - Rate-card piece rate id
  • code string - Generated piece-rate code
  • name string - Piece-rate name
  • unitLabel and unitLabelPlural string - Unit labels
  • frequency enum - daily or weekly
  • rateType string - Applied rate type
  • values object - Snapshot unit values with pay, emp, margin, and charge
  • totals object - Total units, payValue, empValue, marginValue, and chargeValue
  • lines array - Captured daily or weekly unit lines, including optional date, comment, and costCode
projectobject
Show child attributes
  • id string - Project id
  • name string - Project name
ratesobjectTimesheet rate sets.
Show child attributes
  • wd object with pay, emp, margin, charge, and uplift
  • wdNw object with pay, emp, margin, charge, and uplift
  • weNw object with pay, emp, margin, charge, and uplift
  • bh object with pay, emp, margin, charge, and uplift
  • bhNight object with pay, emp, margin, charge, and uplift
  • sat object with pay, emp, margin, charge, and uplift
  • sun object with pay, emp, margin, charge, and uplift
  • ot object with pay, emp, margin, charge, and uplift
rateTypestringRate type
referencestringTimesheet reference
siteobject
Show child attributes
  • id string - Site id
  • name string - Site name
startstringTimesheet period start in ISO 8601 date-time format
statusstringTimesheet status
timelogsarrayReturned only when includeTimelogs=true.
Show child attributes
  • id string
  • status string
  • date string
  • start string
  • end string
  • shiftType string
  • breaks number - break duration in minutes
  • rateDescription string
  • hours object with standard, overtime, and total; standard and total are gross values including breaks
  • rates object with pay, emp, margin, and charge
  • values object with pay, emp, margin, and charge breakdowns containing standard, overtime, and total
  • absenceAuthorized boolean - returned only when recorded
  • absenceReason string - returned only when recorded
  • costCodeAllocations array - returned only when non-empty, with child attributes costCode.name, costCode.description, and hours
updatedAtstringLast update timestamp
valuesobjectPay/charge/expense values.
Show child attributes
  • pay object with wdBasic, wdOvertime, wdNightwork, weNightwork, bankHoliday, bankHolidayNight, saturday, sunday, saturdayNightwork, sundayNightwork, and total
  • charge object with wdBasic, wdOvertime, wdNightwork, weNightwork, bankHoliday, bankHolidayNight, saturday, sunday, saturdayNightwork, sundayNightwork, and total
  • expense number
versionintegerCurrent timesheet version number
weekEndingstringWeek ending date in ISO 8601 date-time format
workerobject
Show child attributes
  • id string - Worker id
  • name string - Worker name

Response Example (200)

{
"success": true,
"data": [
{
"id": "67bc36db80a1616ec3f4a001",
"reference": "TS-1044",
"status": "approved",
"worker": {
"id": "67bc36db80a1616ec3f48999",
"name": "Jordan Smith"
},
"assignment": {
"id": "67bc36db80a1616ec3f49001",
"reference": "A1044"
},
"company": {
"id": "67bc36db80a1616ec3f47001",
"name": "Requidex Construction Ltd"
},
"project": {
"id": "67bc36db80a1616ec3f47011",
"name": "Northern Rail Electrification"
},
"site": {
"id": "67bc36db80a1616ec3f47055",
"name": "Manchester Central"
},
"agency": {
"id": "67bc36db80a1616ec3f47101",
"name": "Northline Labour Desk"
},
"payType": "hourly",
"rateType": "cis",
"start": "2026-03-02T00:00:00.000Z",
"end": "2026-03-08T23:59:59.999Z",
"weekEnding": "2026-03-08T00:00:00.000Z",
"version": 2,
"approvedDate": "2026-03-09T09:15:00.000Z",
"netHours": 37.5,
"rates": {
"wd": {
"pay": 21.5,
"emp": 2.93,
"margin": 4.32,
"charge": 28.75,
"uplift": null
},
"wdNw": { "pay": 0, "emp": 0, "margin": 0, "charge": 0, "uplift": 25 },
"weNw": { "pay": 0, "emp": 0, "margin": 0, "charge": 0, "uplift": 40 },
"bh": { "pay": 0, "emp": 0, "margin": 0, "charge": 0, "uplift": 100 },
"bhNight": {
"pay": 0,
"emp": 0,
"margin": 0,
"charge": 0,
"uplift": 125
},
"sat": {
"pay": 32.25,
"emp": 4.39,
"margin": 6.48,
"charge": 43.13,
"uplift": 50
},
"sun": {
"pay": 43,
"emp": 5.86,
"margin": 8.64,
"charge": 57.5,
"uplift": 100
},
"ot": {
"pay": 32.25,
"emp": 4.39,
"margin": 6.48,
"charge": 43.13,
"uplift": 50
}
},
"values": {
"pay": {
"wdBasic": 860,
"wdOvertime": 215,
"wdNightwork": 0,
"weNightwork": 0,
"bankHoliday": 0,
"bankHolidayNight": 0,
"saturday": 294,
"sunday": 295,
"saturdayNightwork": 0,
"sundayNightwork": 0,
"total": 1664
},
"charge": {
"wdBasic": 1150,
"wdOvertime": 287.5,
"wdNightwork": 0,
"weNightwork": 0,
"bankHoliday": 0,
"bankHolidayNight": 0,
"saturday": 396,
"sunday": 396.5,
"saturdayNightwork": 0,
"sundayNightwork": 0,
"total": 2230
},
"expense": 125
},
"pieceRateEntries": [
{
"id": "67bc36db80a1616ec3f4a201",
"pieceRateId": "pr_9X2KLM",
"code": "PR-A1B2C3",
"name": "Meters installed",
"unitLabel": "metre",
"unitLabelPlural": "metres",
"frequency": "daily",
"rateType": "cis",
"values": { "pay": 12.5, "emp": 0, "margin": 2.5, "charge": 15 },
"totals": {
"units": 10,
"payValue": 125,
"empValue": 0,
"marginValue": 25,
"chargeValue": 150
},
"lines": [
{
"id": "67bc36db80a1616ec3f4a202",
"date": "2026-03-03T00:00:00.000Z",
"units": 10,
"payValue": 125,
"empValue": 0,
"marginValue": 25,
"chargeValue": 150,
"comment": "Installed on block A",
"costCode": {
"name": "CC-001",
"description": "Trackside installation"
}
}
]
}
],
"timelogs": [
{
"id": "67bc36db80a1616ec3f4a101",
"status": "approved",
"date": "2026-03-03T00:00:00.000Z",
"start": "2026-03-03T08:00:00.000Z",
"end": "2026-03-03T17:00:00.000Z",
"shiftType": "day",
"breaks": 30,
"rateDescription": "wdBasic",
"hours": {
"standard": 8,
"overtime": 0,
"total": 8
},
"rates": {
"pay": 21.5,
"emp": 2.93,
"margin": 4.32,
"charge": 28.75
},
"values": {
"pay": {
"standard": 172,
"overtime": 0,
"total": 172
},
"emp": {
"standard": 23.44,
"overtime": 0,
"total": 23.44
},
"margin": {
"standard": 34.56,
"overtime": 0,
"total": 34.56
},
"charge": {
"standard": 230,
"overtime": 0,
"total": 230
}
},
"costCodeAllocations": [
{
"costCode": {
"name": "CC-001",
"description": "Trackside installation"
},
"hours": 8
}
]
}
],
"createdAt": "2026-03-08T18:00:00.000Z",
"updatedAt": "2026-03-09T09:15:00.000Z"
}
],
"meta": {
"page": 1,
"limit": 50,
"total": 1
}
}

Errors

HTTP StatusDescription
400Invalid filters or parameters
401Missing, invalid, revoked, or expired API key
403Forbidden due to scope or IP restrictions
405Method not allowed on Open API routes
429Rate limit exceeded
500Unexpected internal error