---
title: "Get time off requests changes"
method: GET
path: "/timeoff/requests/changes"
tags: ["Time off requests"]
---

# Get time off requests changes

`GET /timeoff/requests/changes`

Returns an array of all changes made to time off requests within a specified date range. Each item in the array includes: the time off request details at the time of the change, and the type of change, such as `created` or `deleted`. Optionally, requests that were changed to status `pending` can also be included.  <br /><br /> **Notes:**  <p> <ul> <li>The results are filtered by **the date the change has occurred** (when the request was created or updated), not the start/end date of the time off request itself. </li>         <li>Each change reflects a snapshot of the time off request's status **at the time of the change**, and may not reflect the current status. </li> </ul></p> <p><strong>Durations and cost:</strong></p> <ul>
  <li>
    This endpoint returns daily durations only for requests that use day-by-day duration configurations, including:
    <code>DifferentDayDurations</code>, <code>specificHoursDayDurations</code>, <code>differentSpecificHoursDayDurations</code>.
  </li>
  <li>These durations do not include a daily cost breakdown.</li>
  <li>
    All requests return <code>totalCost</code>, which represents the amount deducted from the balance for the whole request.
  </li>
  <li>
    To retrieve the cost per day, use <strong><a href="https://apidocs.hibob.com/reference/get_timeoff-employees-id-requests-requestid">Get the details of an existing time off request.</a></strong> with
    <code>includeDailyDurations=true</code>.
  </li>
</ul> <p><strong>Permissions required</strong>: Please refer to the main <a href="https://apidocs.hibob.com/reference/time-off#required-permissions">Time off API Required Permissions</a> page.</p>

## Query parameters

- `since` string, date-time, required
- `to` string, date-time
- `includePending` boolean

## Response `200`

Array of time off requests and their change type

- TimeOffChangesResponse
  - `changes` TimeOffChange[], required
    - union
      - TimeOffChangesDays
        - `employeeId` string, uuid — Employee ID
        - `employeeDisplayName` string — Employee display name.
        - `employeeEmail` string — Employee email address.
        - `policyTypeDisplayName` string — Display name of the policy type.
        - `changeType` 'Created' | 'Canceled' | 'Deleted' | 'Pending' — Change type - created, canceled or deleted.
        - `requestId` integer — The backend-id of the current time-off request, representing the latest version of the request.
        - `originalRequestId` integer, nullable — The backend-id of the very first time-off request. It remains unchanged regardless of updates that create new time off request records.
        - `previousRequestId` integer, nullable — The backend-id of the previous request that was replaced when this new request was created.
        - `createdOn` string, date-time — The date and time the time off request was created.
        - `durationUnit` 'days' | 'hours' — The unit used for the totalDuration and totalCost - either 'days' or 'hours'
        - `totalDuration` number — The total amount of time the request covers, including regular days off such as weekends
        - `totalCost` number — The amount that will be deducted from the balance
        - `changeReason` string — Request change reason
        - `visibility` Visibility — unresolved $ref
        - `startDate` string, date — Date of the first day of the time off.
        - `endDate` string, date — Date of the last day of the time off.
        - `startPortion` string — What portion of the first day is included - all_day, morning or afternoon (relevant for the Days type).
        - `endPortion` string — What portion of the last day is included - all_day, morning or afternoon (relevant for the Days type).
        - `type` 'days' — The type of request duration.
      - TimeOffChangesHours
        - `employeeId` string, uuid — Employee ID
        - `employeeDisplayName` string — Employee display name.
        - `employeeEmail` string — Employee email address.
        - `policyTypeDisplayName` string — Display name of the policy type.
        - `changeType` 'Created' | 'Canceled' | 'Deleted' | 'Pending' — Change type - created, canceled or deleted.
        - `requestId` integer — The backend-id of the current time-off request, representing the latest version of the request.
        - `originalRequestId` integer, nullable — The backend-id of the very first time-off request. It remains unchanged regardless of updates that create new time off request records.
        - `previousRequestId` integer, nullable — The backend-id of the previous request that was replaced when this new request was created.
        - `createdOn` string, date-time — The date and time the time off request was created.
        - `durationUnit` 'days' | 'hours' — The unit used for the totalDuration and totalCost - either 'days' or 'hours'
        - `totalDuration` number — The total amount of time the request covers, including regular days off such as weekends
        - `totalCost` number — The amount that will be deducted from the balance
        - `changeReason` string — Request change reason
        - `visibility` Visibility — unresolved $ref
        - `date` string, date — Date of the time off (relevant for requests using the Hours type)
        - `hoursOnDate` number — The time off duration in hours for the date (relevant for requests using the Hours type).
        - `type` 'hours' — The type of request duration.
      - TimeOffChangesPortionOnRange
        - `employeeId` string, uuid — Employee ID
        - `employeeDisplayName` string — Employee display name.
        - `employeeEmail` string — Employee email address.
        - `policyTypeDisplayName` string — Display name of the policy type.
        - `changeType` 'Created' | 'Canceled' | 'Deleted' | 'Pending' — Change type - created, canceled or deleted.
        - `requestId` integer — The backend-id of the current time-off request, representing the latest version of the request.
        - `originalRequestId` integer, nullable — The backend-id of the very first time-off request. It remains unchanged regardless of updates that create new time off request records.
        - `previousRequestId` integer, nullable — The backend-id of the previous request that was replaced when this new request was created.
        - `createdOn` string, date-time — The date and time the time off request was created.
        - `durationUnit` 'days' | 'hours' — The unit used for the totalDuration and totalCost - either 'days' or 'hours'
        - `totalDuration` number — The total amount of time the request covers, including regular days off such as weekends
        - `totalCost` number — The amount that will be deducted from the balance
        - `changeReason` string — Request change reason
        - `visibility` Visibility — unresolved $ref
        - `startDate` string, date — Date of the first day of the time off.
        - `endDate` string, date — Date of the last day of the time off.
        - `dayPortion` string — What portion of the request's days is included - morning or afternoon (portionOnRange type).
        - `type` 'portionOnRange' — The type of request duration.
      - TimeOffChangesHoursOnRange
        - `employeeId` string, uuid — Employee ID
        - `employeeDisplayName` string — Employee display name.
        - `employeeEmail` string — Employee email address.
        - `policyTypeDisplayName` string — Display name of the policy type.
        - `changeType` 'Created' | 'Canceled' | 'Deleted' | 'Pending' — Change type - created, canceled or deleted.
        - `requestId` integer — The backend-id of the current time-off request, representing the latest version of the request.
        - `originalRequestId` integer, nullable — The backend-id of the very first time-off request. It remains unchanged regardless of updates that create new time off request records.
        - `previousRequestId` integer, nullable — The backend-id of the previous request that was replaced when this new request was created.
        - `createdOn` string, date-time — The date and time the time off request was created.
        - `durationUnit` 'days' | 'hours' — The unit used for the totalDuration and totalCost - either 'days' or 'hours'
        - `totalDuration` number — The total amount of time the request covers, including regular days off such as weekends
        - `totalCost` number — The amount that will be deducted from the balance
        - `changeReason` string — Request change reason
        - `visibility` Visibility — unresolved $ref
        - `startDate` string, date — Date of the first day of the time off.
        - `endDate` string, date — Date of the last day of the time off.
        - `dailyHours` number — The time off duration in hours for every day in the request (hoursOnRange type)
        - `type` 'hoursOnRange' — The type of request duration.
      - TimeOffChangesDifferentDayDurations
        - `employeeId` string, uuid — Employee ID
        - `employeeDisplayName` string — Employee display name.
        - `employeeEmail` string — Employee email address.
        - `policyTypeDisplayName` string — Display name of the policy type.
        - `changeType` 'Created' | 'Canceled' | 'Deleted' | 'Pending' — Change type - created, canceled or deleted.
        - `requestId` integer — The backend-id of the current time-off request, representing the latest version of the request.
        - `originalRequestId` integer, nullable — The backend-id of the very first time-off request. It remains unchanged regardless of updates that create new time off request records.
        - `previousRequestId` integer, nullable — The backend-id of the previous request that was replaced when this new request was created.
        - `createdOn` string, date-time — The date and time the time off request was created.
        - `durationUnit` 'days' | 'hours' — The unit used for the totalDuration and totalCost - either 'days' or 'hours'
        - `totalDuration` number — The total amount of time the request covers, including regular days off such as weekends
        - `totalCost` number — The amount that will be deducted from the balance
        - `changeReason` string — Request change reason
        - `visibility` Visibility — unresolved $ref
        - `startDate` string, date — Date of the first day of the time off.
        - `endDate` string, date — Date of the last day of the time off.
        - `durations` object[] — Array of durations for each day in the request.
          - `date` string, date
          - `dayDuration` HoursAndMinutesDayDuration — Duration in hours and minutes for a day (relevant for `differentDayDurations` type)
            - `hours` integer, required — Number of hours
            - `minutes` integer, required — Number of minutes (must match the minimal amount of minutes in the time off policy)
            - `dayDurationType` 'hoursAndMinutesDayDuration', required — Type of day duration
        - `type` 'differentDayDurations' — The type of request duration.
      - TimeOffChangesSpecificHoursDayDurations
        - `employeeId` string, uuid — Employee ID
        - `employeeDisplayName` string — Employee display name.
        - `employeeEmail` string — Employee email address.
        - `policyTypeDisplayName` string — Display name of the policy type.
        - `changeType` 'Created' | 'Canceled' | 'Deleted' | 'Pending' — Change type - created, canceled or deleted.
        - `requestId` integer — The backend-id of the current time-off request, representing the latest version of the request.
        - `originalRequestId` integer, nullable — The backend-id of the very first time-off request. It remains unchanged regardless of updates that create new time off request records.
        - `previousRequestId` integer, nullable — The backend-id of the previous request that was replaced when this new request was created.
        - `createdOn` string, date-time — The date and time the time off request was created.
        - `durationUnit` 'days' | 'hours' — The unit used for the totalDuration and totalCost - either 'days' or 'hours'
        - `totalDuration` number — The total amount of time the request covers, including regular days off such as weekends
        - `totalCost` number — The amount that will be deducted from the balance
        - `changeReason` string — Request change reason
        - `visibility` Visibility — unresolved $ref
        - `startDate` string, date — Date of the first day of the time off.
        - `endDate` string, date — Date of the last day of the time off.
        - `timeZone` string, nullable — The calculated time zone name. The value for this field is automatically determined based on the time zone of the employee’s assigned site.
        - `durations` object[] — Array of durations for each day in the request.
          - `date` string, date
          - `dayDuration` object
            - `localStartTime` string
            - `localEndTime` string
            - `dayDurationType` 'specificHoursDayDuration'
        - `type` 'specificHoursDayDurations' — The type of request duration.
      - TimeOffChangesDifferentSpecificHoursDayDurations
        - `employeeId` string, uuid — Employee ID
        - `employeeDisplayName` string — Employee display name.
        - `employeeEmail` string — Employee email address.
        - `policyTypeDisplayName` string — Display name of the policy type.
        - `changeType` 'Created' | 'Canceled' | 'Deleted' | 'Pending' — Change type - created, canceled or deleted.
        - `requestId` integer — The backend-id of the current time-off request, representing the latest version of the request.
        - `originalRequestId` integer, nullable — The backend-id of the very first time-off request. It remains unchanged regardless of updates that create new time off request records.
        - `previousRequestId` integer, nullable — The backend-id of the previous request that was replaced when this new request was created.
        - `createdOn` string, date-time — The date and time the time off request was created.
        - `durationUnit` 'days' | 'hours' — The unit used for the totalDuration and totalCost - either 'days' or 'hours'
        - `totalDuration` number — The total amount of time the request covers, including regular days off such as weekends
        - `totalCost` number — The amount that will be deducted from the balance
        - `changeReason` string — Request change reason
        - `visibility` Visibility — unresolved $ref
        - `startDate` string, date — Date of the first day of the time off
        - `endDate` string, date — Date of the last day of the time off.
        - `timeZone` string — The time zone for the time off request
        - `durations` object[] — Array of day durations for the time off request
          - `date` string, date, required — The date for this duration entry
          - `dayDuration` union, required — The duration for this specific date. Each date must include exactly one of the following types: <ul> <li>SpecificHoursDayDuration</li> <li>PortionDayDuration</li> </ul>
            - SpecificHoursDayDuration — Defines the request by exact working hours (for example, 10:00-12:00).
              - …
            - DiffSpecHoursPortionDayDuration — Defines the request as either the entire day (all_day) or no hours at all (vacant).
              - …
        - `type` 'differentSpecificHoursDayDurations' — The type of request duration.
      - TimeOffChangesPercentageOnRange
        - `employeeId` string, uuid — Employee ID
        - `employeeDisplayName` string — Employee display name.
        - `employeeEmail` string — Employee email address.
        - `policyTypeDisplayName` string — Display name of the policy type.
        - `changeType` 'Created' | 'Canceled' | 'Deleted' | 'Pending' — Change type - created, canceled or deleted.
        - `requestId` integer — The backend-id of the current time-off request, representing the latest version of the request.
        - `originalRequestId` integer, nullable — The backend-id of the very first time-off request. It remains unchanged regardless of updates that create new time off request records.
        - `previousRequestId` integer, nullable — The backend-id of the previous request that was replaced when this new request was created.
        - `createdOn` string, date-time — The date and time the time off request was created.
        - `durationUnit` 'days' | 'hours' — The unit used for the totalDuration and totalCost - either 'days' or 'hours'
        - `totalDuration` number — The total amount of time the request covers, including regular days off such as weekends
        - `totalCost` number — The amount that will be deducted from the balance
        - `changeReason` string — Request change reason
        - `visibility` Visibility — unresolved $ref
        - `startDate` string, date — Date of the first day of the time off.
        - `endDate` string, date — Date of the last day of the time off.
        - `percentageOfDay` integer — The percentage of day requested
        - `type` 'percentageOnRange' — The type of request duration.
      - TimeOffChangesOpenEnded
        - `employeeId` string, uuid — Employee ID
        - `employeeDisplayName` string — Employee display name.
        - `employeeEmail` string — Employee email address.
        - `policyTypeDisplayName` string — Display name of the policy type.
        - `changeType` 'Created' | 'Canceled' | 'Deleted' | 'Pending' — Change type - created, canceled or deleted.
        - `requestId` integer — The backend-id of the current time-off request, representing the latest version of the request.
        - `originalRequestId` integer, nullable — The backend-id of the very first time-off request. It remains unchanged regardless of updates that create new time off request records.
        - `previousRequestId` integer, nullable — The backend-id of the previous request that was replaced when this new request was created.
        - `createdOn` string, date-time — The date and time the time off request was created.
        - `durationUnit` 'days' | 'hours' — The unit used for the totalDuration and totalCost - either 'days' or 'hours'
        - `totalDuration` number — The total amount of time the request covers, including regular days off such as weekends
        - `totalCost` number — The amount that will be deducted from the balance
        - `changeReason` string — Request change reason
        - `visibility` Visibility — unresolved $ref
        - `startDate` string, date — Date of the first day of the time off.
        - `endDate` string, date, nullable — Date of the last day of the time off.
        - `startPortion` string — What portion of the first day is included - all_day, morning or afternoon.
        - `endPortion` string, nullable — What portion of the last day is included - all_day, morning or afternoon (may be null while open).
        - `timeZone` string — The calculated time zone name. The value for this field is automatically determined based on the time zone of the employee’s assigned site.
        - `type` 'openEnded' — The type of request duration.

---

[API](https://skmtc.dev/hibob/apis/employee-data-api.md) · [All operations](https://skmtc.dev/hibob/apis/employee-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hibob/employee-data-api/revisions/0781ebbdda91/schema)
