---
title: "Update Custom Field"
description: "Updates a custom field definition. All fields are optional."
---

`PATCH /api/custom-fields/:id`

## Request Body (all optional)

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Display name |
| `fieldType` | string | `text`, `select`, or `multiselect` |
| `isRequired` | boolean | Whether the field is required |
| `displayOrder` | number | Sort order |
| `options` | array | Options for select/multiselect |
| `placeholder` | string\|null | Placeholder text |
| `helpText` | string\|null | Help text |
| `showInTable` | boolean | Show in table views |
| `isActive` | boolean | Soft delete (set to false) |

## Example (cURL)

```bash
curl -X PATCH "$BASE_URL/api/custom-fields/1" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Environment", "options": ["production", "staging", "development", "qa"] }'
```

## Response

Returns the updated custom field object. See [Error Codes](/api/error-codes-and-known-pitfalls) for error responses.
