---
title: "Update an equipment downtime by id. This is a full replacement: the window and the whole set of departments and equipment are saved from the request, in request order, so omitting `departments` clears them. The same rules as create apply: the end cannot be earlier than the start, each department must exist and be listed once, and each piece of equipment must be in its department and be listed once for it. The server fills `departmentName` and `equipmentName` from the records."
method: PUT
path: "/api/equipment-downtimes/{id}"
tags: ["Equipment Downtime"]
---

# Update an equipment downtime by id. This is a full replacement: the window and the whole set of departments and equipment are saved from the request, in request order, so omitting \`departments\` clears them. The same rules as create apply: the end cannot be earlier than the start, each department must exist and be listed once, and each piece of equipment must be in its department and be listed once for it. The server fills \`departmentName\` and \`equipmentName\` from the records.

`PUT /api/equipment-downtimes/{id}`

## Request

- Base URL: `https://api.fulcrumpro.com`
- URL: `https://api.fulcrumpro.com/api/equipment-downtimes/{id}`
- Auth: none declared

## Path parameters

- `id` string, required

## Request body

- EquipmentDowntimeSaveDto: Details of an equipment downtime to save. An update replaces the whole downtime: its window and its whole set of departments and equipment are saved from the request, so omitted `departments` are cleared. The shape matches what `GET /equipment-downtimes/{id}` returns, so a fetched downtime can be sent back; the read-only members `id`, `deleted`, `departmentName`, `allEquipment` and `equipmentName` are ignored, and the server fills the names from the department and equipment.
  - `startDateTime` string, date-time, required: When the downtime starts, in UTC. A value with an offset is converted to UTC; a value without an offset is read as UTC.
  - `endDateTime` string, date-time, required: When the downtime ends, in UTC, read the same way as `startDateTime`. It cannot be earlier than `startDateTime`; an end equal to the start is allowed.
  - `departments` EquipmentDowntimeDepartmentSaveDto[], nullable: The departments that are down, saved in request order, at most 500. Each `departmentId` must be a department that exists and is not deleted, and it can be listed only once. Omitted, null or empty means no departments, so an update clears them.
    - `departmentId` string, required: Id of the department. It must be a department that exists and is not deleted, and it can be listed only once in the downtime. Please reference the /api/departments endpoint.
    - `equipment` EquipmentDowntimeEquipmentSaveDto[], nullable: The pieces of the department's equipment that are down, saved in request order, at most 500. Each `equipmentId` must be equipment in one of the department's work centers, and it can be listed only once for the department. Omitted, null or empty means the whole department is down.
      - `equipmentId` string, required: Id of the equipment. It must be equipment in one of the department's work centers that is not deleted. Please reference the /api/equipment endpoint.

## Response `200`

The updated equipment downtime

- EquipmentDowntimeDto: A window of time when departments, or chosen equipment within them, are unavailable for scheduling.
  - `id` string: Unique id of the downtime.
  - `startDateTime` string, date-time: When the downtime starts, in UTC.
  - `endDateTime` string, date-time: When the downtime ends, in UTC.
  - `departments` EquipmentDowntimeDepartmentDto[]: The departments that are down, in the order they were added. Empty when no department is assigned.
    - `departmentId` string, nullable: Id of the department.
    - `departmentName` string, nullable: Name of the department when it was added to the downtime.
    - `allEquipment` boolean: True when the whole department is down, which is when `equipment` is empty.
    - `equipment` EquipmentDowntimeEquipmentDto[]: The pieces of the department's equipment that are down, in the order they were added. Empty when the whole department is down.
      - `equipmentId` string, nullable: Id of the equipment.
      - `equipmentName` string, nullable: Name of the equipment when it was added to the downtime.
  - `deleted` boolean: Indicates whether this downtime has been deleted.

## Other responses

- `400`: Validation issues with input, an end earlier than the start, or a `departments` or `equipment` entry that is null, repeated, not found or not in its department
- `404`: Equipment downtime did not exist or is deleted

## Changes

- **2026-10-05** `c3bdc499d639`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/changes/api/equipment-downtimes/:id/put.md)

---

[API](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi.md) - [All operations](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/llms.txt) - [OpenAPI document](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/revisions/c9e6f41852d1?raw)
