---
title: "Update a custom field"
method: PATCH
path: "/inboxes/{inbox_id}/custom-fields/{field_id}"
tags: ["Inboxes"]
---

# Update a custom field

`PATCH /inboxes/{inbox_id}/custom-fields/{field_id}`

## Request

- Base URL: `https://api.thrivedesk.com/v1`
- URL: `https://api.thrivedesk.com/v1/inboxes/{inbox_id}/custom-fields/{field_id}`
- Auth: HTTP bearer

Update a custom field.

Personal access token only. The API supports a second, partner-issued token class that is not part of the public surface. This endpoint does not accept that class.

## Path parameters

- `inbox_id` string, required
- `field_id` string, required

## Request body

- CustomFieldUpdate: `name` and `type` are immutable. Sending a changed value for either is rejected with 422.
  - `description` string, nullable
  - `is_required` boolean
  - `is_active` boolean
  - `default_value` unknown
  - `options` object[]: Only for dropdown fields. Objects with `id: null` create new options, and existing IDs update them.
    - `id` string, nullable
    - `value` string, required
  - `conditions` object[], nullable
    - `expected_value` string, required
    - `dependent_field_ids` string[], required

## Response `200`

Success.

- CustomFieldResponse
  - `message` string, required
  - `data` CustomField, required
    - `id` string
    - `inbox_id` string
    - `name` string
    - `key` string
    - `description` string, nullable
    - `type` 'text' | 'textarea' | 'dropdown' | 'toggle' | 'number'
    - `default_value` unknown
    - `is_required` boolean
    - `is_active` boolean
    - `order` integer
    - `extra` object, nullable
    - `options` object[]: Present for dropdown fields.
      - `id` string
      - `value` string
    - `conditions` object[]
    - `created_at` string, date-time
    - `readable_created_at` string, nullable

## Other responses

- `401`: Missing or invalid bearer token.
- `403`: Token is valid but does not include a required scope, or the user does not have access to the resource.
- `404`: Resource not found.
- `422`: Request body failed validation.
- `429`: Rate limit exceeded. The `Retry-After` header indicates how long to wait before retrying. See [Pagination and rate limits](/get-started/pagination) for the full rate-limit policy.
- `500`: Unexpected server error.

---

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