---
title: "Update candidate custom-field values"
method: PATCH
path: "/candidates/{id}/custom-fields"
tags: ["Candidates"]
---

# Update candidate custom-field values

`PATCH /candidates/{id}/custom-fields`

## Request

- Base URL: `https://api.cavuno.com/v1`
- URL: `https://api.cavuno.com/v1/candidates/{id}/custom-fields`
- Auth: HTTP bearer

Additive update of candidate profile values. Omitted keys are preserved; null, blank strings, and empty arrays clear a value; false and 0 are preserved. Requires `candidates.manage`.

## Path parameters

- `id` string, required

## Request body

- ProfileFieldValuesBody
  - `values` object, required

## Response `200`

Profile custom-field definitions and values.

- ProfileFieldValuesResponse
  - `definitions` ProfileCustomFieldDefinition[], required
    - `key` string, required
    - `label` string, required
    - `helpText` string
    - `type` 'short_text' | 'long_text' | 'rich_text' | 'single_select' | 'multi_select' | 'boolean' | 'number' | 'date' | 'url' | 'email' | 'phone' | 'image_gallery' | 'file', required
    - `required` boolean, required
    - `visibility` 'private' | 'public', required
    - `editableByOwner` boolean, required
    - `options` object[]
      - `key` string, required
      - `label` string, required
    - `min` number
    - `max` number
  - `values` object, required

## Other responses

- `404`: Profile not found.

## Changes

- **2026-10-19** `c34152c38176`: 1 info
  - added the optional property `error/upgrade` to the response with the `404` status

[Operation history](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/changes/candidates/:id/custom-fields/patch.md)

---

[API](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api.md) · [All operations](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/revisions/d5974dabff14?raw)
