---
title: "Update an existing field"
method: PATCH
path: "/v1/org/{orgId}/field/{fieldId}"
tags: ["field"]
---

# Update an existing field

`PATCH /v1/org/{orgId}/field/{fieldId}`

## Path parameters

- `orgId` string, required
- `fieldId` string, required

## Request body

- UpdateField
  - `name` string — short field name
  - `label` string — human-readable full name of field
  - `labelTr` Translations
    - `values` object, required
  - `description` string — description of field
  - `inUse` boolean — disallow any updates to this Field (except for field.question string)
  - `expr` string — calculated expression
  - `exprType` 'ADDRESS' | 'AUDIO' | 'BOOLEAN' | 'COMP' | 'COMPOUND' | 'COMP_BAND' | 'CONTACTS' | 'CURRENCY' | 'DATE' | 'DECIMAL' | 'ELAPSED_DAYS' | 'ELAPSED_MONTHS' | 'ELAPSED_YEARS' | 'EMAIL' | 'ENUM' | 'ENUM_EXPR' | 'ENUM_MULTI' | 'ENUM_SCALE' | 'EXPR' | 'FILE' | 'GROUP' | 'GROUPS' | 'GROUP_ASSIGNMENTS' | 'GROUP_TYPE' | 'GROUP_POSITION_ASSIGNMENTS' | 'IMAGE' | 'INTEGER' | 'JOB' | 'JOB_CODE' | 'JOBS' | 'JOB_TIER' | 'LIST' | 'MAP' | 'MONEY' | 'NAME' | 'OBJECT' | 'PAY_INTERVAL' | 'PERCENT' | 'PERSON' | 'PERSONS' | 'PHONE' | 'STOCKGRANT' | 'STRING' | 'TABLE_REF' | 'TEXT' | 'TIMEOFF' | 'TIMESTAMP' | 'TRACKED_GROUP' | 'URL' | 'USER' | 'VARIABLE_COMP' | 'VARIABLE_COMPS' — the expected type of the evaluated expression
  - `type` 'ADDRESS' | 'AUDIO' | 'BOOLEAN' | 'COMP' | 'COMPOUND' | 'COMP_BAND' | 'CONTACTS' | 'CURRENCY' | 'DATE' | 'DECIMAL' | 'ELAPSED_DAYS' | 'ELAPSED_MONTHS' | 'ELAPSED_YEARS' | 'EMAIL' | 'ENUM' | 'ENUM_EXPR' | 'ENUM_MULTI' | 'ENUM_SCALE' | 'EXPR' | 'FILE' | 'GROUP' | 'GROUPS' | 'GROUP_ASSIGNMENTS' | 'GROUP_TYPE' | 'GROUP_POSITION_ASSIGNMENTS' | 'IMAGE' | 'INTEGER' | 'JOB' | 'JOB_CODE' | 'JOBS' | 'JOB_TIER' | 'LIST' | 'MAP' | 'MONEY' | 'NAME' | 'OBJECT' | 'PAY_INTERVAL' | 'PERCENT' | 'PERSON' | 'PERSONS' | 'PHONE' | 'STOCKGRANT' | 'STRING' | 'TABLE_REF' | 'TEXT' | 'TIMEOFF' | 'TIMESTAMP' | 'TRACKED_GROUP' | 'URL' | 'USER' | 'VARIABLE_COMP' | 'VARIABLE_COMPS' — type of field
  - `plural` 'SINGLE' | 'LIST' | 'SET' — plural type of the field (either SINGLE, LIST, or SET)
  - `values` EnumValue[] — possible values (enum type only)
    - `name` string, required — enum value name
    - `label` string, required — enum value label
    - `color` string — color of property
    - `expr` string — computed expression, for ENUM_EXPR type
    - `num` number — numeric value, for ENUM_SCALE type
    - `sort` integer — sort order
    - `rank` integer — rank order, if selected in rank order
    - `id` string — unique identifier for enum
    - `labelTr` Translations
      - `values` object, required
  - `defaultValue` object — default value if field is not set
  - `options` FieldOptions
    - `min` string — minimum value, for numeric and date fields
    - `max` string — maximum value, for numeric and date fields
    - `minItems` integer
    - `maxItems` integer
    - `stackRank` boolean
    - `step` number
    - `enableEditDialog` boolean
    - `requiredJobField` boolean
    - `excludeTargetPersonId` boolean
    - `maxLength` integer
    - `readOnly` boolean
    - `includeFormer` boolean
    - `effectiveDated` boolean
    - `unique` boolean
    - `required` boolean
  - `entityType` 'JOB' | 'JOB_OPEN' | 'JOB_FILLED' | 'PERSON' | 'CHANGE' | 'TABLE' | 'ORG' | 'USER' | 'NONE' — entity type of field
  - `sensitive` 'GLOBAL' | 'ORG' | 'SENSITIVE' | 'PERSONAL' | 'MANAGER' | 'HIGH' | 'PRIVATE' — sensitivity level of data
  - `hideExpr` boolean — hide expression-derived values from non-sensitive users
  - `expireDays` integer — number of days after which the data becomes invalid
  - `status` 'ACTIVE' | 'HIDDEN' — the status of the field
  - `sort` integer — sort order within a table
  - `tableRef` TableRef
    - `tableId` string — the table id this field references
    - `tableName` string — the table name this field references
  - `isUnique` boolean — indicates that this field value is unique in conjunction with entityType PERSON or JOB
  - `isRequired` boolean — indicates that this field value is required
  - `isEffectiveDated` boolean — indicates that this field value is effective-dated
  - `dataFetchTypes` string[] — set of data fetch types
  - `aliases` string[] — set of aliases for this field
  - `calc` 'ADDRESS' | 'AGE' | 'ANNIVERSARY' | 'ANNUAL_BASE_MONEY' | 'BACKFILL' | 'BAND' | 'BAND_RANGE' | 'BASE' | 'BASE_CAL_YEAR_PRORATED' | 'BASE_CAL_YTD' | 'BASE_COMP' | 'BASE_COMP_AMOUNT' | 'BASE_COMP_ANNUALIZED' | 'BASE_COMP_ANNUALIZED_AS_ORG_CURRENCY' | 'BASE_COMP_AS_ORG_CURRENCY' | 'BASE_COMP_CHANGES' | 'BASE_COMP_CURRENCY' | 'BASE_COMP_HOURS_PER_WEEK' | 'BASE_COMP_INTERVAL' | 'BASE_COMP_LAST_RAISE_DATE' | 'BASE_COMP_LAST_RAISE_MONTHS_SINCE' | 'BASE_COMP_LAST_RAISE_PAY' | 'BASE_COMP_LAST_RAISE_PAY_AS_ORG_CURRENCY' | 'BASE_COMP_LAST_RAISE_PERCENT' | 'BASE_COMP_LAST_RAISE_TYPE' | 'BASE_COMP_PAY' | 'BASE_COMP_PAY_AS_ORG_CURRENCY' | 'BASE_COMP_WEEKS_PER_YEAR' | 'BASE_FISCAL_YEAR_PRORATED' | 'BASE_FISCAL_YTD' | 'BASE_PRIMARY' | 'BASE_RAISE_AMOUNT' | 'BASE_RAISE_DATE' | 'BASE_RAISE_PERCENT' | 'BIRTH_DATE' | 'BIRTHDAY' | 'BONUS_TARGET' | 'BUDGET_COST' | 'BUSINESS_UNITS' | 'CAL_YEAR_VEST_SHARES' | 'CAL_YEAR_VEST_VALUE' | 'CAN_APPROVE_CHANGE' | 'CAN_EDIT_JOB' | 'CASH_COMP' | 'CASH_COMP_LOCAL' | 'CHANGE' | 'CHANGE_ID' | 'COMMISSION_TARGET' | 'COMP' | 'COMP_CHANGE_PERCENT' | 'COMPA_RATIO_MID' | 'COMPA_RATIO_TARGET' | 'CONTACT' | 'CONTACTS' | 'COST' | 'CREATE_DATE' | 'CURRENCY' | 'DATA' | 'DATE' | 'DATE_OF' | 'DAYS_ACTIVE' | 'DAYS_OFF' | 'DAYS_OFF_TAKEN' | 'DAYS_OFF_UPCOMING' | 'DAYS_OPEN' | 'DB' | 'DEPART' | 'DEPARTMENT' | 'DEPARTMENT_FUNC' | 'DIRECT_JOBS' | 'DIRECT_JOB_COUNT' | 'DIRECT_PERSON_COUNT' | 'DIRECT_PERSONS' | 'EMPLOYMENT' | 'END_DATE_JOB' | 'END_DATE_ORG' | 'ETHNICITY' | 'FISCAL_YEAR_COST' | 'GENDER' | 'GEOIP' | 'GEOIP_ADDRESS' | 'GRAND_MANAGER' | 'GRANT_SHARES' | 'GRANT_TYPE' | 'GRANT_VALUE' | 'GRANTS' | 'GROUP_IDS' | 'GROUPS_BY_TYPE' | 'GROUP_GOALS' | 'HEADCOUNT' | 'HISTORIC_BACKFILL' | 'HOUR' | 'HOURLY' | 'HOURLY_PRIMARY' | 'HOURS_PER_WEEK' | 'IMAGE' | 'INDIRECT' | 'INDIRECT_JOBS' | 'JOB' | 'JOB_ID' | 'JOB_CODE' | 'JOBCOUNT' | 'LAST_GRANT' | 'LAST_GRANT_DATE' | 'LAST_GRANT_ORIGINAL_VALUE' | 'LOCATION' | 'MANAGE_JOBS' | 'MANAGE_PERSONS' | 'MANAGER' | 'MANAGER_COUNT' | 'MANAGER_FILLED' | 'MANAGER_ID' | 'MANAGERS' | 'MANAGER_PERSON' | 'MANAGER_PERSONS' | 'ME' | 'MERGE_SCENARIO_ID' | 'NAME' | 'NAME_AUDIO' | 'NAME_TITLE' | 'NEXT_DAY_OFF' | 'NEXT_TIME_OFF' | 'NEXT_YEAR_VEST_SHARES' | 'NEXT_YEAR_VEST_VALUE' | 'NOTE' | 'NOOP' | 'OPEN' | 'ORG' | 'OWNER_GOALS' | 'PERSON' | 'PERSON_ID' | 'PLACEMENT' | 'PREV_DAY_OFF' | 'PREV_TIME_OFF' | 'PROMOTION' | 'PROMOTION_DATE' | 'PROPOSED' | 'Q' | 'RAISE_AMOUNT' | 'RAISE_DATE' | 'RAISE_PERCENT' | 'RAISE_PROMOTION_DATE' | 'REASON' | 'REGRET' | 'RELATIONSHIPS' | 'REMOTE_WORK_ADDRESS' | 'SCENARIO' | 'SCENARIO_CHANGED' | 'SENSITIVE' | 'SENSITIVE_FIELDS' | 'START_DATE' | 'START_DATE_JOB' | 'START_DATE_ORG' | 'START_DATE_LIFETIME' | 'START_DATE_PLANNED' | 'STATE' | 'STRIKE_PRICE' | 'SUPPORTER_GOALS' | 'TARGET_HOURS_PER_WEEK' | 'TARGET_WEEKS_PER_YEAR' | 'TEAM' | 'TENURE_JOB' | 'TENURE_ORG' | 'TENURE_LIFETIME' | 'TIMEZONE_OFFSET' | 'TITLE' | 'TITLE_DATE' | 'TODAY' | 'TOTAL_COMP' | 'TOTAL_COMP_LOCAL' | 'TOTAL_ORG_SHARES' | 'TOTAL_SHARES' | 'TOTAL_SHARES_VALUE' | 'UNDER_JOBS' | 'UNVESTED_SHARES' | 'UNVESTED_VALUE' | 'UPDATE' | 'USER_ACTIVE_DAYS' | 'USER_ACTIVE_DAYS_CONSECUTIVE' | 'USER_CAN_EDIT_COMP_FOR_JOB' | 'USER' | 'VARIABLE' | 'VARIABLE_AMOUNT' | 'VARIABLE_INTERVAL' | 'VARIABLE_PERCENT' | 'VARIABLE_PRIMARY' | 'VARIABLE_TARGET' | 'VARIABLE_TARGET_AMOUNT' | 'VARIABLE_TARGET_ANNUALIZED' | 'VARIABLE_TARGET_CURRENCY' | 'VARIABLE_TARGET_PERCENT' | 'VARIABLE_TARGET_TYPE' | 'VARIABLE_TARGETS' | 'VARIABLE_TARGETS_LAST_RAISE_DATE' | 'VARIABLE_TARGETS_LAST_RAISE_MONTHS_SINCE' | 'VARIABLE_TARGETS_LAST_RAISE_PAY' | 'VARIABLE_TARGETS_LAST_RAISE_PERCENT' | 'VARIABLE_COMP_CHANGES' | 'VARIABLE_TYPE' | 'VESTED_DATE' | 'VESTED_SHARES' | 'VESTED_VALUE' | 'WEEKS_PER_YEAR' | 'WORK_ADDRESS' | 'UPCOMING' — unique ID for the function that runs to calculate the value of this field. For native fields only
  - `categoryId` string — ID of the category to which this field belongs, if any
  - `classification` 'COMPOUND' — indicates how this field is calculated (whether it's stored in the DB, evaluated through the expression service, or compound)
  - `places` integer — number of decimal places for numeric values
  - `isAutoIncrement` boolean — whether this field should auto-increment. For unique STRING or INT fields only
  - `autoIncConfig` AutoIncFieldConfig
    - `upperCase` boolean, required — convert any lower-case characters in the value to upper case
    - `padDigits` integer, required — length of the numeric part of the value (left-padded with zeroes)
    - `separator` 'HYPHEN' | 'UNDERSCORE' | 'SPACE' | 'NONE', required — separator character to use between parts of the value
    - `prefixParts` AutoIncFieldPart[], required
      - `type` 'LITERAL_STRING' | 'GROUP_CODE', required
      - `value` object, required
      - `defaultValue` string
  - `shouldAutoAddValue` boolean — Whether the values for ENUM or ENUM_MULTI field can be added automatically by syncs and CSV imports

## Response `204`

field updated

## Other responses

- `400` — invalid data
- `401` — not authorized
- `403` — permission denied
- `404` — not found

---

[API](https://skmtc.net/charthop/apis/charthop-api.md) · [All operations](https://skmtc.net/charthop/apis/charthop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/charthop/charthop-api/versions/50a1edd6b27e/schema)
