---
title: "Update custom field option"
method: PATCH
path: "/v3/custom_field_options/{id}"
tags: ["Custom Field Options"]
---

# Update custom field option

`PATCH /v3/custom_field_options/{id}`

## Request

- Base URL: `https://harvest.greenhouse.io`
- URL: `https://harvest.greenhouse.io/v3/custom_field_options/{id}`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://auth.greenhouse.io/authorize`
    - Client credentials
    - Token URL: `https://auth.greenhouse.io/token` scopes: `harvest:custom_field_options:update`
  - HTTP bearer

Edit the display label, sort order, or external id of an existing custom field option. The parent `custom_field_id` cannot be moved through this endpoint — options stay attached to the field they were created under. Archived options cannot be updated through this endpoint — requests for an archived id return 404; reactivate via the create endpoint instead.

## Path parameters

- `id` integer, required

## Request body

- object
  - `name` string: New display label for the option. Must be unique among active options on the same custom field.
  - `sort_order` integer: New display position within the dropdown. Lower values render first. Partners reorganizing dropdowns typically PATCH `sort_order` on every affected option in a single bulk update.
  - `external_id` string: New caller-supplied identifier from the partner's source system. Send an empty string to clear a previously stored value.

## Response `200`

Successful

- object
  - `id` integer
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `custom_field_id` integer: Id of the parent custom field this option belongs to. Only fields with `value_type` of `single_select` or `multi_select` carry options.
  - `name` string: Display label shown to recruiters and hiring managers in dropdowns (e.g. `Engineering`, `Bachelor's`, `Stanford University`). Unique among active options on the same parent custom field.
  - `external_id` string, nullable: Caller-supplied identifier from the partner's source system (typically an HRIS row id or legacy ATS id). Persisted verbatim as the column `offsite_hris_id` and not interpreted by Greenhouse.
  - `sort_order` integer: Display position within the parent custom field's dropdown. Lower values render first; ties fall back to insertion order. Alias of `priority` in V1/V2.
  - `active` boolean: `true` while the option is selectable. Set to `false` after deletion — historical selections on candidates, jobs, and offers are preserved so the value still resolves on existing records.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `422`: Unprocessable Content

---

[API](https://skmtc.dev/greenhouse/apis/harvest-api.md) - [All operations](https://skmtc.dev/greenhouse/apis/harvest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/greenhouse/apis/harvest-api/revisions/822822e3f771?raw)
