---
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`

## Request

- Base URL: `https://api.hibob.com/v1`
- URL: `https://api.hibob.com/v1/timeoff/requests/changes`
- Auth: one of:
  - HTTP basic
  - HTTP bearer

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/time-off-api.md) - [All operations](https://skmtc.dev/hibob/apis/time-off-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hibob/apis/time-off-api/revisions/879ed4afa950?raw)
