Remote Time & Attendance API

The Time & Attendance API from Remote — 21 operation(s) for time & attendance.

Operations 26

GET /v1/timesheets/{id} Show timesheet #
POST /v1/timeoff/{timeoff_id}/cancel Cancel Time Off #
PATCH /v1/employee/timeoff/{id} Update Time Off as Employee #
PUT /v1/employee/timeoff/{id} Update Time Off as Employee #
POST /v1/contractors/employments/{employment_id}/timesheets Create a contractor timesheet #
GET /v1/employee/leave-policies List Employee Leave Policies #
GET /v1/employee/leave-policies/summary List Employee Leave Policies Summary #
GET /v1/timeoff-balances/{employment_id} Show Time Off Balance #
POST /v1/employee/timeoff/{id}/cancel Cancel Time Off as Employee #
POST /v1/timesheets/{timesheet_id}/approve Approve timesheet #
GET /v1/leave-policies/summary/{employment_id} List Leave Policies Summary #
POST /v1/timeoff/{timeoff_id}/cancel-request/decline Decline a time off cancellation request #
GET /v1/timesheets List timesheets #
GET /v1/leave-policies/details/{employment_id} List Leave Policies Details #
GET /v1/timeoff/types List Time Off Types #
GET /v1/timeoff/{id} Show Time Off #
PATCH /v1/timeoff/{id} Update Time Off #
PUT /v1/timeoff/{id} Update Time Off #
POST /v1/timeoff/{timeoff_id}/decline Decline Time Off #
POST /v1/timeoff/{timeoff_id}/approve Approve Time Off #
GET /v1/employee/timeoff List employee time offs #
POST /v1/employee/timeoff Create a Pending Time Off #
GET /v1/timeoff List Time Off #
POST /v1/timeoff Create Time Off #
POST /v1/timesheets/{timesheet_id}/send-back Send back a timesheet for review or modification #
POST /v1/timeoff/{timeoff_id}/cancel-request/approve Approve a time off cancellation request #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/remote-time-attendance-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

remote-time-attendance-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Remote Time & Attendance API
  version: 0.1.0
servers:
- url: https://gateway.remote.com/
  variables: {}
- url: https://gateway.remote-sandbox.com/
  variables: {}
security:
- OAuth2: []
tags:
- name: Time & Attendance
paths:
  /v1/timesheets/{id}:
    get:
      callbacks: {}
      deprecated: false
      description: 'Shows a timesheet by its ID.


        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | View timesheets (`timesheet:read`) | Manage timesheets (`timesheet:write`) |

        '
      operationId: get_v1_timesheets_id
      parameters:
      - description: Timesheet ID
        example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimesheetResponse'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Unprocessable Entity
      security:
      - CustomerAPIToken:
        - https://gateway.remote.com/company.manage
        - timesheet:read
        - timesheet:write
        - time_and_attendance
        - all:write
        - all:read
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - timesheet:read
        - timesheet:write
        - time_and_attendance
        - all:write
        - all:read
      summary: Show timesheet
      tags:
      - Time & Attendance
  /v1/timeoff/{timeoff_id}/cancel:
    post:
      callbacks: {}
      deprecated: false
      description: 'Cancel a time off request that was already approved.


        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | - | Manage timeoffs (`timeoff:write`) |

        '
      operationId: post_v1_timeoff_timeoff_id_cancel
      parameters:
      - description: Time Off ID
        example: 93t3j-timeoff-id-9suej43
        in: path
        name: timeoff_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelTimeoffParams'
        description: CancelTimeoff
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeoffResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsResponse'
          description: Unprocessable Entity
      security:
      - CustomerAPIToken:
        - https://gateway.remote.com/company.manage
        - timeoff:write
        - time_and_attendance
        - all:write
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - timeoff:write
        - time_and_attendance
        - all:write
      summary: Cancel Time Off
      tags:
      - Time & Attendance
  /v1/employee/timeoff/{id}:
    patch:
      callbacks: {}
      deprecated: false
      description: 'Updates a Time Off record as Employee


        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | - | Manage timeoffs (`timeoff:write`) |

        '
      operationId: patch_v1_employee_timeoff_id (2)
      parameters:
      - description: Timeoff ID
        example: 93t3j-timeoff-id-9suej43
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEmployeeTimeoffParams'
        description: UpdateTimeoff
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeoffResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsResponse'
          description: Unprocessable Entity
      security:
      - OAuth2Assertion:
        - https://gateway.remote.com/employment.manage
        - timeoff:write
        - time_and_attendance
        - all:write
      summary: Update Time Off as Employee
      tags:
      - Time & Attendance
    put:
      callbacks: {}
      deprecated: false
      description: 'Updates a Time Off record as Employee


        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | - | Manage timeoffs (`timeoff:write`) |

        '
      operationId: patch_v1_employee_timeoff_id
      parameters:
      - description: Timeoff ID
        example: 93t3j-timeoff-id-9suej43
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEmployeeTimeoffParams'
        description: UpdateTimeoff
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeoffResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsResponse'
          description: Unprocessable Entity
      security:
      - OAuth2Assertion:
        - https://gateway.remote.com/employment.manage
        - timeoff:write
        - time_and_attendance
        - all:write
      summary: Update Time Off as Employee
      tags:
      - Time & Attendance
  /v1/contractors/employments/{employment_id}/timesheets:
    post:
      callbacks: {}
      deprecated: false
      description: 'Creates a timesheet on behalf of a contractor employment.


        The submitted hours are immediately available to the contractor in the Remote UI for

        self-serve invoice creation (Invoices → Create invoice → "Use Time Tracking").


        This endpoint is restricted to contractor employments. Calls against EOR or Global Payroll

        employments are rejected with `422`.



        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | - | Manage timesheets (`timesheet:write`) |

        '
      operationId: post_v1_contractors_employments_employment_id_timesheets
      parameters:
      - description: Contractor employment ID
        example: c0a167b8-459d-4e96-9766-7a04c160892e
        in: path
        name: employment_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractorCreateTimesheetParams'
        description: ContractorCreateTimesheetParams
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractorTimesheetResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractorCreateTimesheetUnprocessableEntityResponse'
          description: Unprocessable Entity
      security:
      - CustomerAPIToken:
        - https://gateway.remote.com/company.manage
        - timesheet:write
        - time_and_attendance
        - all:write
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - timesheet:write
        - time_and_attendance
        - all:write
      summary: Create a contractor timesheet
      tags:
      - Time & Attendance
  /v1/employee/leave-policies:
    get:
      callbacks: {}
      deprecated: false
      description: 'List the leave policies for the current employee


        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | View timeoffs (`timeoff:read`) | Manage timeoffs (`timeoff:write`) |

        '
      operationId: get_v1_employee_leave-policies
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListLeavePoliciesDetailsResponse'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
      security:
      - OAuth2Assertion:
        - https://gateway.remote.com/employment.manage
        - timeoff:read
        - timeoff:write
        - time_and_attendance
        - all:write
        - all:read
      summary: List Employee Leave Policies
      tags:
      - Time & Attendance
  /v1/employee/leave-policies/summary:
    get:
      callbacks: {}
      deprecated: false
      description: 'List the leave policies summary (balances and entitlements) for the current employee


        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | View timeoffs (`timeoff:read`) | Manage timeoffs (`timeoff:write`) |

        '
      operationId: get_v1_employee_leave-policies_summary
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListLeavePoliciesSummaryResponse'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
      security:
      - OAuth2Assertion:
        - https://gateway.remote.com/employment.manage
        - timeoff:read
        - timeoff:write
        - time_and_attendance
        - all:write
        - all:read
      summary: List Employee Leave Policies Summary
      tags:
      - Time & Attendance
  /v1/timeoff-balances/{employment_id}:
    get:
      callbacks: {}
      deprecated: true
      description: 'Shows the time off balance for the given employment_id.


        Deprecated since February 2025 in favour of **[List Leave Policies Summary](#tag/Leave-Policies/operation/get_index_leave_policies_summary)** endpoint.



        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | View timeoffs (`timeoff:read`) | Manage timeoffs (`timeoff:write`) |

        '
      operationId: get_v1_timeoff-balances_employment_id
      parameters:
      - description: 'Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow.


          The refresh token needs to have been obtained through the Authorization Code flow.

          '
        example: Bearer <COMPANY-SCOPED ACCESS TOKEN>
        in: header
        name: Authorization
        required: true
        schema:
          type: string
      - description: Employment ID for which to show the time off balance
        example: 03675381-50c9-492d-b8ed-e84e99046091
        in: path
        name: employment_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeoffBalanceResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeoffBalanceNotFoundResponse'
          description: TimeoffBalanceNotFoundResponse
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsResponse'
          description: Too many requests
      security:
      - CustomerAPIToken:
        - https://gateway.remote.com/company.manage
        - timeoff:read
        - timeoff:write
        - time_and_attendance
        - all:write
        - all:read
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - timeoff:read
        - timeoff:write
        - time_and_attendance
        - all:write
        - all:read
      summary: Show Time Off Balance
      tags:
      - Time & Attendance
  /v1/employee/timeoff/{id}/cancel:
    post:
      callbacks: {}
      deprecated: false
      description: 'Cancels a Time Off record as Employee


        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | - | Manage timeoffs (`timeoff:write`) |

        '
      operationId: post_v1_employee_timeoff_id_cancel
      parameters:
      - description: Timeoff ID
        example: 93t3j-timeoff-id-9suej43
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelTimeoffParams'
        description: CancelTimeoff
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeoffResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsResponse'
          description: Unprocessable Entity
      security:
      - OAuth2Assertion:
        - https://gateway.remote.com/employment.manage
        - timeoff:write
        - time_and_attendance
        - all:write
      summary: Cancel Time Off as Employee
      tags:
      - Time & Attendance
  /v1/timesheets/{timesheet_id}/approve:
    post:
      callbacks: {}
      deprecated: false
      description: 'Approves the given timesheet.


        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | - | Manage timesheets (`timesheet:write`) |

        '
      operationId: post_v1_timesheets_timesheet_id_approve
      parameters:
      - description: Timesheet ID
        example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9
        in: path
        name: timesheet_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MinimalTimesheetResponse'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Unprocessable Entity
      security:
      - CustomerAPIToken:
        - https://gateway.remote.com/company.manage
        - timesheet:write
        - time_and_attendance
        - all:write
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - timesheet:write
        - time_and_attendance
        - all:write
      summary: Approve timesheet
      tags:
      - Time & Attendance
  /v1/leave-policies/summary/{employment_id}:
    get:
      callbacks: {}
      deprecated: false
      description: 'List all the data related to time off for a given employment


        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | View timeoffs (`timeoff:read`) | Manage timeoffs (`timeoff:write`) |

        '
      operationId: get_v1_leave-policies_summary_employment_id
      parameters:
      - description: Employment ID
        example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9
        in: path
        name: employment_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListLeavePoliciesSummaryResponse'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Unprocessable Entity
      security:
      - CustomerAPIToken:
        - https://gateway.remote.com/company.manage
        - timeoff:read
        - timeoff:write
        - time_and_attendance
        - all:write
        - all:read
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - timeoff:read
        - timeoff:write
        - time_and_attendance
        - all:write
        - all:read
      summary: List Leave Policies Summary
      tags:
      - Time & Attendance
  /v1/timeoff/{timeoff_id}/cancel-request/decline:
    post:
      callbacks: {}
      deprecated: false
      description: 'Decline a time off cancellation request.



        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | - | Manage timeoffs (`timeoff:write`) |

        '
      operationId: post_v1_timeoff_timeoff_id_cancel-request_decline
      parameters:
      - description: Time Off ID
        example: 93t3j-timeoff-id-9suej43
        in: path
        name: timeoff_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeclineTimeoffParams'
        description: Timeoff
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictResponse'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsResponse'
          description: Unprocessable Entity
      security:
      - CustomerAPIToken:
        - https://gateway.remote.com/company.manage
        - timeoff:write
        - time_and_attendance
        - all:write
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - timeoff:write
        - time_and_attendance
        - all:write
      summary: Decline a time off cancellation request
      tags:
      - Time & Attendance
  /v1/timesheets:
    get:
      callbacks: {}
      deprecated: false
      description: 'Lists all timesheets.


        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | View timesheets (`timesheet:read`) | Manage timesheets (`timesheet:write`) |

        '
      operationId: get_v1_timesheets
      parameters:
      - description: Filter timesheets by their status
        in: query
        name: status
        required: false
        schema:
          $ref: '#/components/schemas/TimesheetStatus'
      - description: Sort order
        example: asc
        in: query
        name: order
        required: false
        schema:
          enum:
          - asc
          - desc
          type: string
      - description: Field to sort by
        example: submitted_at
        in: query
        name: sort_by
        required: false
        schema:
          enum:
          - submitted_at
          type: string
      - description: Starts fetching records after the given page
        example: 1
        in: query
        name: page
        required: false
        schema:
          default: 1
          minimum: 1
          type: integer
      - description: Number of items per page
        example: 20
        in: query
        name: page_size
        required: false
        schema:
          default: 20
          maximum: 100
          minimum: 1
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTimesheetsResponse'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Unprocessable Entity
      security:
      - CustomerAPIToken:
        - https://gateway.remote.com/company.manage
        - timesheet:read
        - timesheet:write
        - time_and_attendance
        - all:write
        - all:read
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - timesheet:read
        - timesheet:write
        - time_and_attendance
        - all:write
        - all:read
      summary: List timesheets
      tags:
      - Time & Attendance
  /v1/leave-policies/details/{employment_id}:
    get:
      callbacks: {}
      deprecated: false
      description: 'Describe the leave policies (custom or not) for a given employment


        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | View timeoffs (`timeoff:read`) | Manage timeoffs (`timeoff:write`) |

        '
      operationId: get_v1_leave-policies_details_employment_id
      parameters:
      - description: Employment ID
        example: ec23ebda-4b7a-4dbd-9d79-bd1eec3f83c9
        in: path
        name: employment_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListLeavePoliciesDetailsResponse'
          description: Success
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Unprocessable Entity
      security:
      - CustomerAPIToken:
        - https://gateway.remote.com/company.manage
        - timeoff:read
        - timeoff:write
        - time_and_attendance
        - all:write
        - all:read
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - timeoff:read
        - timeoff:write
        - time_and_attendance
        - all:write
        - all:read
      summary: List Leave Policies Details
      tags:
      - Time & Attendance
  /v1/timeoff/types:
    get:
      callbacks: {}
      deprecated: false
      description: 'Lists all time off types that can be used for the `timeoff_type` parameter.


        **Backward compatibility:** Calling this endpoint without the `type` query parameter returns the same response as before (time off types for full-time employments). Existing integrations do not need to change.


        Optionally, pass `type=contractor` to get time off types for contractor employments, or `type=full_time` for full-time employments (same as omitting the parameter).



        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage timeoffs (`time_and_attendance`) | View timeoffs (`timeoff:read`) | Manage timeoffs (`timeoff:write`) |

        '
      operationId: get_v1_timeoff_types
      parameters:
      - description: 'Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow.


          The refresh token needs to have been obtained through the Authorization Code flow.

          '
        example: Bearer <COMPANY-SCOPED ACCESS TOKEN>
        in: header
        name: Authorization
        required: true
        schema:
          type: string
      - description: 'Optional. Employment type to list time off types for: `contractor` or `full_time`. Omit for backward-compatible behavior (full-time types).'
        example: full_time
        in: query
        name: type
        required: false
        schema:
          $ref: '#/components/schemas/TimeoffTypesEmploymentType'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTimeoffTypesResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $

# --- truncated at 32 KB (167 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/remote/refs/heads/main/openapi/remote-time-attendance-api-openapi.yml