---
title: "Asynchronously applies the same set of field changes to multiple boreholes.
Only the properties named in BDMS.Models.BoreholeBulkUpdateRequest.FieldsToUpdate are written.
The whole batch is rejected (nothing is saved) if the current user cannot edit any selected borehole.
Resets the workflow tab status of any tab whose fields were changed."
method: POST
path: "/api/v{version}/borehole/bulkedit"
tags: ["Borehole"]
---

# Asynchronously applies the same set of field changes to multiple boreholes.
Only the properties named in BDMS.Models.BoreholeBulkUpdateRequest.FieldsToUpdate are written.
The whole batch is rejected (nothing is saved) if the current user cannot edit any selected borehole.
Resets the workflow tab status of any tab whose fields were changed.

`POST /api/v{version}/borehole/bulkedit`

## Path parameters

- `version` string, required

## Request body

- BoreholeBulkUpdateRequest — Request payload for bulk editing boreholes. Applies BDMS.Models.BoreholeBulkUpdateRequest.Update to every borehole in BDMS.Models.BoreholeBulkUpdateRequest.BoreholeIds, writing only the properties named in BDMS.Models.BoreholeBulkUpdateRequest.FieldsToUpdate (matched case-insensitively against BDMS.Models.BoreholeBulkUpdate property names).
  - `boreholeIds` integer[], required
  - `update` BoreholeBulkUpdate, required — The typed set of borehole fields that can be changed through bulk edit. Each property is nullable to mirror the corresponding borehole column; which of them are actually written is controlled by BDMS.Models.BoreholeBulkUpdateRequest.FieldsToUpdate. A masked field must carry a value; a null value is rejected (clearing is not supported), except nullable booleans where null is the deliberate "not specified" state.
    - `workgroupId` integer, nullable
    - `restrictionId` integer, nullable
    - `restrictionUntil` string, date, nullable
    - `nationalInterest` boolean, nullable
    - `projectName` string, nullable
    - `typeId` integer, nullable
    - `purposeId` integer, nullable
    - `statusId` integer, nullable
    - `locationPrecisionId` integer, nullable
    - `elevationPrecisionId` integer, nullable
    - `referenceElevationPrecisionId` integer, nullable
    - `referenceElevationTypeId` integer, nullable
    - `depthPrecisionId` integer, nullable
    - `totalDepth` number, double, nullable
    - `topBedrockFreshMd` number, double, nullable
    - `topBedrockWeatheredMd` number, double, nullable
    - `hasGroundwater` boolean, nullable
    - `lithologyTopBedrockId` integer, nullable
    - `lithostratigraphyTopBedrockId` integer, nullable
    - `chronostratigraphyTopBedrockId` integer, nullable
  - `fieldsToUpdate` string[], required

## Response `200`

OK

---

[API](https://skmtc.net/geoadmin/apis/boreholes-rest-api-v2.md) · [All operations](https://skmtc.net/geoadmin/apis/boreholes-rest-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/geoadmin/boreholes-rest-api-v2/revisions/e6d0b4ee0f52/schema)
