---
title: "Replace Breaks for Break Policy"
method: PUT
path: "/api/v1/time-tracking/break-policies/{id}/breaks"
tags: ["Meal & Rest Breaks", "Public API"]
---

# Replace Breaks for Break Policy

`PUT /api/v1/time-tracking/break-policies/{id}/breaks`

Replace all breaks for a break policy. Breaks with an ID will be updated, breaks without an ID will be created. Existing breaks not in the request will be soft-deleted.

OAuth Scopes: time_tracking:breaks.write

## Path parameters

- `id` string, uuid, required

## Request body

- TimeTrackingCreateOrUpdateTimeTrackingBreakWithoutPolicyV1[] — Collection of time tracking breaks to create or update without a policy
  - `id` string, uuid, nullable — The unique identifier of the break. If not included, a new break will be created.
  - `name` string — The name of the break
  - `paid` boolean — Whether the break is paid
  - `duration` integer — Duration of the break in minutes
  - `availabilityType` 'anytime' | 'hours_worked' | 'time_of_day' — When the break is available to be taken
  - `availabilityMinHoursWorked` number, float, nullable — Minimum hours that must be worked before the break can be taken
  - `availabilityMaxHoursWorked` number, float, nullable — Maximum hours that can be worked before the break must be taken
  - `availabilityStartTime` string, time, nullable — Earliest time the break can be taken (HH:MM format)
  - `availabilityEndTime` string, time, nullable — Latest time the break can be taken (HH:MM format)

## Response `200`

Successfully replaced breaks for the policy

- TimeTrackingTimeTrackingBreakV1[] — Collection of time tracking breaks
  - `id` string, uuid — The unique identifier for the time tracking break
  - `name` string — The name of the break
  - `policyId` string, uuid — The unique identifier of the break policy this break belongs to
  - `paid` boolean — Whether the break is paid
  - `duration` integer — Duration of the break in minutes
  - `availabilityType` 'anytime' | 'hours_worked' | 'time_of_day' — When the break is available to be taken
  - `availabilityMinHoursWorked` number, float, nullable — Minimum hours that must be worked before the break can be taken
  - `availabilityMaxHoursWorked` number, float, nullable — Maximum hours that can be worked before the break must be taken
  - `availabilityStartTime` string, time, nullable — Earliest time the break can be taken (HH:MM format)
  - `availabilityEndTime` string, time, nullable — Latest time the break can be taken (HH:MM format)
  - `createdAt` string, date-time — ISO 8601 timestamp when the break was created
  - `updatedAt` string, date-time, nullable — ISO 8601 timestamp when the break was last updated
  - `deletedAt` string, date-time, nullable — ISO 8601 timestamp when the break was deleted

## Other responses

- `400` — Bad request - validation errors
- `403` — Insufficient permissions
- `404` — Break policy not found
- `500` — Internal server error

---

[API](https://skmtc.net/bamboohr/apis/bamboohr-api.md) · [All operations](https://skmtc.net/bamboohr/apis/bamboohr-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bamboohr/bamboohr-api/revisions/19ebf391a399/schema)
