Rotageek Timesheets API
The Timesheets API from Rotageek — 1 operation(s) for timesheets.
The Timesheets API from Rotageek — 1 operation(s) for timesheets.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/rotageek:rotageek-timesheets-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Rotageek API v1 Timesheets API
description: Hello World!
contact:
name: Rotageek
email: office@rotageek.com
version: '1.0'
security:
- Bearer: []
tags:
- name: Timesheets
paths:
/api/v1/timesheets/locations/{locationId}/{weekStartDate}:
get:
tags:
- Timesheets
summary: Retrieve time sheet records list for the week
description: Retrieves a list of time sheet records for the specified week
operationId: Timesheets_GetTimeSheet
parameters:
- name: locationId
in: path
description: Target location
required: true
schema:
type: string
- name: weekStartDate
in: path
description: Week start date
required: true
schema:
type: string
format: date-time
- name: workerType
in: query
description: Optional filter for specifc types of shifts. The options are all, normal, bank and agency
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.WorkerTypeFilter'
responses:
'200':
description: List of time sheet records
content:
text/plain:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.TimeSheetResponseModel'
application/json:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.TimeSheetResponseModel'
text/json:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.TimeSheetResponseModel'
'400':
description: Request parameters are invalid
'401':
description: Access to resource denied
'500':
description: Internal Server Error
put:
tags:
- Timesheets
summary: Replace time sheet for the week
description: Replaces time sheet including all of its with the new model
operationId: Timesheets_UpdateTimeSheet
parameters:
- name: locationId
in: path
description: Target location
required: true
schema:
type: string
- name: weekStartDate
in: path
description: Week start date
required: true
schema:
type: string
format: date-time
requestBody:
description: NewTimeSheetModel
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.NewTimeSheetModel'
application/json:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.NewTimeSheetModel'
text/json:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.NewTimeSheetModel'
application/*+json:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.NewTimeSheetModel'
responses:
'200':
description: Updated time sheet
content:
text/plain:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.TimeSheetResponseModel'
application/json:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.TimeSheetResponseModel'
text/json:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.TimeSheetResponseModel'
'400':
description: Request parameters are invalid
'401':
description: Access to resource denied
'500':
description: Internal Server Error
components:
schemas:
Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_GeoCoordinatesModel:
type: object
properties:
longitude:
type: number
description: Longitude component of position
format: float
latitude:
type: number
description: Latitude component of position
format: float
additionalProperties: false
description: Container for geo coordinates positional information
Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_TimeSheetAdjustmentReasonsModel:
type: object
properties:
startAdjustmentReason:
type:
- string
- 'null'
description: The reason selected for adjusting the start time
startAdjustedByUserId:
type:
- string
- 'null'
description: User identifier of the person who made the start time adjustment
endAdjustmentReason:
type:
- string
- 'null'
description: The reason selected for adjusting the end time
endAdjustedByUserId:
type:
- string
- 'null'
description: User identifier of the person who made the end time adjustment
breakAdjustmentReason:
type:
- string
- 'null'
description: The reason selected for adjusting the unpaid break duration
breakAdjustedByUserId:
type:
- string
- 'null'
description: User identifier of the person who made the unpaid break duration adjustment
deleteAdjustmentReason:
type:
- string
- 'null'
description: The reason selected for deleting a time sheet entry
deleteAdjustedByUserId:
type:
- string
- 'null'
description: User identifier of the person who deleted the time sheet entry
additionalProperties: false
description: Container for reasons for manager adjustments to a time sheet entry
Rotageek.AspNetCore.PublicApi.Models.TimeSheetStatus:
enum:
- Created
- Submitted
- SignedOff
type: string
description: Describes the time sheet status
Rotageek.AspNetCore.PublicApi.Models.TimeSheetResponseModel:
type: object
properties:
status:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.TimeSheetStatus'
startDate:
type: string
description: Time sheet start date
format: date-time
endDate:
type: string
description: Time sheet end date
format: date-time
updatedOn:
type:
- string
- 'null'
description: Date and time this time sheet
format: date-time
entries:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.TimeSheetEntryResponseModel'
description: List of entries in this time sheet
amendments:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.TimeSheetEntryAmendmentModel'
description: List of amendments of entries from previous weeks in this time sheet
additionalProperties: false
Rotageek.AspNetCore.PublicApi.Models.WorkerTypeFilter:
enum:
- All
- Normal
- Bank
- Agency
type: string
Rotageek.AspNetCore.PublicApi.Models.PayrollData:
type: object
properties:
payrollCodeId:
type:
- string
- 'null'
description: Associated payroll code
duration:
type:
- integer
- 'null'
description: Duration of this payroll
format: int32
additionalProperties: false
description: Container for payroll data of time sheet record object
Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_TimeSheetLeaveDataResponseModel:
type: object
properties:
leaveRequestId:
type:
- string
- 'null'
description: Leave request unique id
leaveRequestDuration:
type:
- number
- 'null'
description: Total leave request duration
format: double
leaveTypeId:
type:
- string
- 'null'
description: Leave type id
additionalProperties: false
description: Container for leave information of time sheet record object
Rotageek.AspNetCore.PublicApi.Models.NewTimeSheetModel:
type: object
properties:
entries:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.NewTimeSheetEntryModel'
description: List of entries in this time sheet
additionalProperties: false
description: Container for new time sheet object
Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_Comment:
type: object
properties:
userId:
type:
- string
- 'null'
description: Unique if of user who left this comment
text:
type:
- string
- 'null'
description: Comment content
date:
type: string
description: Date when comment was made
format: date-time
additionalProperties: false
description: Container for comment information of time sheet record object
Rotageek.AspNetCore.PublicApi.Models.NewTimeSheetEntryModel:
type: object
properties:
clockInException:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_TimeAndAttendanceExceptionModel'
clockOutException:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_TimeAndAttendanceExceptionModel'
comments:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_Comment'
description: List of comments for this time sheet entry
leaveData:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.NewTimeSheetEntryModel_TimeSheetLeaveDataRequestModel'
approved:
type: boolean
description: Flag whether this time sheet record was approved by a supervisor
clockInTime:
type:
- string
- 'null'
description: Shift clock-in time
format: date-time
clockOutTime:
type:
- string
- 'null'
description: Shift clock-out time
format: date-time
adjustmentReasons:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_TimeSheetAdjustmentReasonsModel'
scheduleRecordId:
type:
- string
- 'null'
description: ID of the associated schedule record (if any)
userId:
type:
- string
- 'null'
description: Target user id
startTime:
type: string
description: Actual shift start time
format: date-time
clockInCoordinates:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_GeoCoordinatesModel'
endTime:
type: string
description: Actual shift end time
format: date-time
clockOutCoordinates:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_GeoCoordinatesModel'
breakDuration:
type: integer
description: Actual break duration
format: int32
isLeave:
type: boolean
description: Flag which indicates whether this time sheet entry is associated with a shift or leave
employeeMissing:
type:
- boolean
- 'null'
description: Flag which indicates whether the user clocked into the shift associated with this time sheet entry
payrollCodes:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.PayrollData'
description: List of associated payroll codes
locationId:
type:
- string
- 'null'
description: ID of worked location
additionalProperties: false
description: Container for time sheet entry record object
Rotageek.AspNetCore.PublicApi.Models.NewTimeSheetEntryModel_TimeSheetLeaveDataRequestModel:
required:
- leaveRequestDuration
- leaveRequestId
type: object
properties:
leaveRequestId:
minLength: 1
type: string
description: Leave request unique id
leaveRequestDuration:
maximum: 24
minimum: 0
type: number
description: Total leave request duration
format: double
additionalProperties: false
description: Container for leave information of time sheet record object
Rotageek.AspNetCore.PublicApi.Models.TimeSheetEntryResponseModel:
type: object
properties:
clockInException:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_TimeAndAttendanceExceptionModel'
clockOutException:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_TimeAndAttendanceExceptionModel'
comments:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_Comment'
description: List of comments for this time sheet entry
leaveData:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_TimeSheetLeaveDataResponseModel'
approved:
type: boolean
description: Flag whether this time sheet record was approved by a supervisor
clockInTime:
type:
- string
- 'null'
description: Shift clock-in time
format: date-time
clockOutTime:
type:
- string
- 'null'
description: Shift clock-out time
format: date-time
adjustmentReasons:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_TimeSheetAdjustmentReasonsModel'
scheduleRecordId:
type:
- string
- 'null'
description: ID of the associated schedule record (if any)
userId:
type:
- string
- 'null'
description: Target user id
startTime:
type: string
description: Actual shift start time
format: date-time
clockInCoordinates:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_GeoCoordinatesModel'
endTime:
type: string
description: Actual shift end time
format: date-time
clockOutCoordinates:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_GeoCoordinatesModel'
breakDuration:
type: integer
description: Actual break duration
format: int32
isLeave:
type: boolean
description: Flag which indicates whether this time sheet entry is associated with a shift or leave
employeeMissing:
type:
- boolean
- 'null'
description: Flag which indicates whether the user clocked into the shift associated with this time sheet entry
payrollCodes:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.PayrollData'
description: List of associated payroll codes
locationId:
type:
- string
- 'null'
description: ID of worked location
additionalProperties: false
Rotageek.AspNetCore.PublicApi.Models.BaseTimeSheetEntryModel_TimeAndAttendanceExceptionModel:
type: object
properties:
type:
type:
- string
- 'null'
description: Exception type - This can be Early / Late Clock In / Out.
reason:
type:
- string
- 'null'
description: Exception reason
additionalProperties: false
description: Container for time and attendance exception information
Rotageek.AspNetCore.PublicApi.Models.TimeSheetEntryAmendmentModel:
type: object
properties:
userId:
type:
- string
- 'null'
description: Target user id
locationId:
type:
- string
- 'null'
description: ID of worked location
startTime:
type: string
description: Actual shift start time
format: date-time
endTime:
type: string
description: Actual shift end time
format: date-time
breakDuration:
type: integer
description: Actual break duration
format: int32
employeeMissing:
type:
- boolean
- 'null'
description: Flag which indicates whether the user clocked into the shift associated with this time sheet entry
payrollCodes:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.PayrollData'
description: List of associated payroll codes
inactive:
type: boolean
description: If set to true, this amendment removes / deletes the original time sheet entry
standalone:
type: boolean
description: Flags whether this amendment is standalone i.e. a new, backdated time sheet entry
approved:
type: boolean
description: Flag whether this amendment record was approved by a supervisor
isLeave:
type: boolean
description: Flag which indicates whether this amendment record is associated with a shift or leave
timeSheetEntry:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.TimeSheetEntryResponseModel'
additionalProperties: false
description: Container for time sheet entry amendment record object
securitySchemes:
Bearer:
type: http
description: Paste the JWT access token returned by POST /api/v1/auth. Swagger adds the 'Bearer ' prefix automatically.
scheme: bearer
bearerFormat: JWT
oauth2:
type: oauth2
description: OAuth2 Password Grant
flows:
password:
tokenUrl: /api/v1/auth
scopes: {}