Update Time Off Request
Changed onUpdates an existing time off request using JSON Merge Patch semantics: only the fields present in the body are changed, and employeeNote may be set to null to clear it. Accepts both application/merge-patch+json and application/json.
Editing a request whose status is REQUESTED replaces the stored request and restarts its approval workflow, so the id in the response differs from the id in the path. That id is authoritative and should replace any id the client is holding; the id that was replaced returns 410 from then on. requestedAt is carried over from the replaced request, and editing a request whose status is APPROVED updates it in place, so id and requestedAt are both unchanged in that case.
Changing startDate or endDate requires sending dailyAmounts in the same request, so the per-day breakdown always covers the stored range. Omitting it returns 422; the server does not redistribute amounts on the caller's behalf.
OAuth Scopes: time_off:requests.write
Request
- Base URLhttps://companySubDomain.bamboohr.com
- Auth
- HTTP basic
- or OAuth 2Authorization code/authorize.phpToken URL/token.phpScopestime_off:requests.write
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
The time off request ID.
Query parameters
Set to true to include the _links block naming the state transitions available to the caller for this time off request. Also accepts 1, yes and on. Omitted from the response by default.
Request body
Example request
{
"categoryId": 22,
"startDate": "2026-01-01",
"endDate": "2026-01-03",
"employeeNote": "Family vacation.",
"dailyAmounts": [
{
"date": "2026-01-01",
"amount": 8
}
]
}Response
The updated time off request. Its id may differ from the id in the path.
Example response
{
"id": 1,
"employeeId": 43046,
"categoryId": 22,
"startDate": "2026-01-01",
"endDate": "2026-01-01",
"amount": 3.5,
"unit": "HOURS",
"status": "APPROVED",
"requestedAt": "2026-01-01T06:00:00Z",
"dailyAmounts": [
{
"date": "2026-01-01",
"amount": 8
}
],
"employeeNote": "Family trip.",
"managerNote": "Approved. Enjoy your time off!",
"statusUpdatedAt": "2026-01-02T17:00:00Z",
"statusUpdatedBy": 2274,
"_links": {
"self": {
"href": "/api/v1/time-off/requests/{id}"
},
"edit": {
"href": "/api/v1/time-off/requests/{id}",
"method": "PATCH"
},
"cancel": {
"href": "/api/v1/time-off/requests/{id}/cancellations",
"method": "POST"
}
}
}Changes
- info
endpoint added
- info