---
title: "Create Custom Field"
method: POST
path: "/custom_fields"
tags: ["custom_fields"]
---

# Create Custom Field

`POST /custom_fields`

## Request body

- union
  - CustomFieldDropdownDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'DROPDOWN'
    - `options` CustomFieldOptionDefinition[]
      - `option_id` string, uuid, nullable
      - `label` string, nullable
      - `hex_color` string, nullable
      - `order_index` integer, nullable
  - CustomFieldFreeTextDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'FREE_TEXT'
  - CustomFieldNumberDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'NUMBER'
  - CustomFieldDateDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'DATE'
  - CustomFieldBooleanDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'BOOLEAN'
  - CustomFieldMultiselectDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'MULTISELECT'
    - `options` CustomFieldOptionDefinition[]
      - `option_id` string, uuid, nullable
      - `label` string, nullable
      - `hex_color` string, nullable
      - `order_index` integer, nullable
  - CustomFieldUserDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'USER'
  - CustomFieldMultiUserDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'MULTI_USER'

## Response `200`

Successful Response

- union
  - CustomFieldDropdownDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'DROPDOWN'
    - `options` CustomFieldOptionDefinition[]
      - `option_id` string, uuid, nullable
      - `label` string, nullable
      - `hex_color` string, nullable
      - `order_index` integer, nullable
  - CustomFieldFreeTextDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'FREE_TEXT'
  - CustomFieldNumberDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'NUMBER'
  - CustomFieldDateDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'DATE'
  - CustomFieldBooleanDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'BOOLEAN'
  - CustomFieldMultiselectDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'MULTISELECT'
    - `options` CustomFieldOptionDefinition[]
      - `option_id` string, uuid, nullable
      - `label` string, nullable
      - `hex_color` string, nullable
      - `order_index` integer, nullable
  - CustomFieldUserDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'USER'
  - CustomFieldMultiUserDefinition
    - `custom_field_id` string, uuid, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
    - `entity_type` 'VENDOR' | 'CANONICAL' | 'SERVICE' | 'ISSUE' | 'DISCLOSURE' | 'CONTRACT' | 'CONTACT'
    - `order_index` integer, nullable
    - `custom_field_definition_type` 'MULTI_USER'

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) · [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kobaltlabs/fastapi/revisions/3ff4c0bd276b/schema)
