---
title: "Edit Custom Field"
method: PUT
path: "/api/v1/hris/custom-fields/{customFieldId}"
tags: ["Custom Fields", "Public API"]
---

# Edit Custom Field

`PUT /api/v1/hris/custom-fields/{customFieldId}`

## Request

- Base URL: `https://companySubDomain.bamboohr.com`
- URL: `https://companySubDomain.bamboohr.com/api/v1/hris/custom-fields/{customFieldId}`
- Auth: OAuth 2
  - Authorization code: `/authorize.php`
  - Token URL: `/token.php` scopes: `employee:custom_fields.write`
- TypeScript: <https://skmtc.dev/bamboohr/apis/bamboohr-api/docs/api/v1/hris/custom-fields/:customFieldId/put.ts> (a function with typed inputs; its response is checked against the schema)

Edit an existing custom field.

OAuth Scopes: employee:custom_fields.write

## Path parameters

- `customFieldId` string, required

## Request body

- CustomFieldRequest
  - `id` string: The id of the Custom Field to be edited
  - `name` string: The name of the Custom Field to be edited / created
  - `type` string: The type of the Custom Field to be edited / created
  - `tab` integer: The id of the tab where the Custom Field will be added
  - `section` integer: The id of the section where the Custom Field will be added
  - `required` boolean: Whether the Custom Field is required or not
  - `options` string[]: The options of the Custom Field to be edited / created

## Response `200`

Custom field edited.

- CustomFieldViewObject
  - `id` integer: The id of the Custom Field
  - `name` string: The name of the Custom Field
  - `type` string: The type of the Custom Field
  - `isEncrypted` boolean: Whether the Custom Field is encrypted or not
  - `isCalculated` boolean: Whether the Custom Field is calculated or not
  - `isRequired` boolean: Whether the Custom Field is required or not
  - `order` integer: The order of the Custom Field
  - `summarize` 'none' | 'total' | 'average': The aggregation applied when computing totals for this field. Only meaningful for custom table columns; always "none" for standalone custom fields and for the custom table object itself.
  - `values` string[]: The values of the Custom Field

## Other responses

- `400`: Invalid argument.
- `401`: Unauthorized.
- `403`: Forbidden.
- `404`: Not found.
- `422`: Validation failed.
- `500`: Internal server error.

## Changes

- **2026-11-03** `922fc15f43a7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bamboohr/apis/bamboohr-api/changes/api/v1/hris/custom-fields/:customFieldId/put.md)

---

[API](https://skmtc.dev/bamboohr/apis/bamboohr-api.md) - [All operations](https://skmtc.dev/bamboohr/apis/bamboohr-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bamboohr/apis/bamboohr-api/revisions/922fc15f43a7?raw)
