> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mangrovesystems.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a custom field definition

> Updates a custom field definition. `key`, `value_type`, and `object_type` are immutable. For enum definitions, `enumeration_options` replaces the full list — include existing options you want to keep. A project-scoped definition can be widened to account-wide by clearing `project_id`; narrowing is not supported.



## OpenAPI

````yaml PATCH /custom_field_definitions/{id}
openapi: 3.1.0
info:
  title: Mangrove - API
  version: 1.1.0
servers:
  - url: https://app.gomangrove.com/api/v1
security:
  - sec0: []
paths:
  /custom_field_definitions/{id}:
    patch:
      summary: Update a custom field definition
      description: >-
        Updates a custom field definition. `key`, `value_type`, and
        `object_type` are immutable. For enum definitions, `enumeration_options`
        replaces the full list — include existing options you want to keep. A
        project-scoped definition can be widened to account-wide by clearing
        `project_id`; narrowing is not supported.
      operationId: update-custom-field-definition
      parameters:
        - name: id
          in: path
          required: true
          description: Custom field definition friendly ID (e.g., cfd_abc123def456)
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                custom_field_definition:
                  type: object
                  properties:
                    label:
                      type: string
                    order:
                      type: integer
                    is_required:
                      type: boolean
                    enumeration_options:
                      type: array
                      items:
                        type: string
                      description: >-
                        Full replacement of the allowed values list (enum
                        definitions only)
                    project_id:
                      type: string
                      nullable: true
                      description: >-
                        Set to null to widen a project-scoped definition to
                        account-wide. Reassigning to a different project is not
                        supported and is ignored.
            examples:
              Request Example:
                value:
                  custom_field_definition:
                    label: Lifecycle Status
                    enumeration_options:
                      - Unregistered
                      - Pending
                      - Registered
                      - Inactive
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    id: 43
                    friendly_id: cfd_def456abc123
                    key: status
                    label: Lifecycle Status
                    object_type: asset
                    value_type: enum
                    enumeration_options:
                      - Unregistered
                      - Pending
                      - Registered
                      - Inactive
                    order: 2
                    is_required: false
                    project_id: null
                    created_at: '2026-01-15T10:00:00.000Z'
                    updated_at: '2026-01-16T09:00:00.000Z'
        '422':
          description: '422'
          content:
            application/json:
              examples:
                Result:
                  value:
                    status: error
                    statusCode: 422
                    errors:
                      - message: Enumeration options must be unique
      deprecated: false
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: ''

````