Requests

Change a request

Change the reason or the period of a request on behalf of the user who created the API token.

Pending requests can change dates and reason. Approved requests can only change the reason. A new period on a pending request restarts the approval; a reason change never does. The leave type must allow changes (allow_request_changes); if it does not, the call is rejected with 403, like a request that has already started or that the caller may not change. A non-admin passing admin_approval_option: approve_request_immediately gets 403 too.

Send start and end together to change the period. Send reason to change the reason, or null to clear it. The response is the recorded change with its status.

post/requests/{id}/changes

Path parameters

idstring uuid required

Request body

reasonstring nullable
startstring

Start/end of the request in ISO 8601. For day-based leave types (leave_unit: days) send the date at midnight UTC (e.g. 2026-06-01T00:00:00Z) and use start_at / end_at to set half-days. For hour-based leave types include the exact time of day (e.g. 2026-06-01T09:00:00Z); start_at / end_at are then ignored.

endstring

Start/end of the request in ISO 8601. For day-based leave types (leave_unit: days) send the date at midnight UTC (e.g. 2026-06-01T00:00:00Z) and use start_at / end_at to set half-days. For hour-based leave types include the exact time of day (e.g. 2026-06-01T09:00:00Z); start_at / end_at are then ignored.

start_at'morning' | 'afternoon'

For day-based leave types: whether the absence starts in the morning (the whole first day counts) or afternoon (only the second half of the first day). Ignored for hour-based leave types.

end_at'lunchtime' | 'end_of_day'

For day-based leave types: whether the absence ends at lunchtime (only the first half of the last day) or end_of_day (the whole last day counts). Ignored for hour-based leave types.

admin_approval_option'approve_request_immediately' | 'go_through_the_normal_approval_process'

Response

Successful response

idinteger required
revisioninteger required
kind'reason' | 'shortened' | 'extended' | 'moved' | 'leave_type' required
status'pending' | 'approved' | 'declined' | 'withdrawn' | 'applied' required
created_atstring required
decided_atstring nullable required
decision_reasonstring nullable required

Changes

Changed in 1 of the 15 revisions of this API.1