---
title: "Set Custom Field Archived"
method: PUT
path: "/custom_fields/by-id/{custom_field_id}/archive"
tags: ["custom_fields"]
---

# Set Custom Field Archived

`PUT /custom_fields/by-id/{custom_field_id}/archive`

## Request

- Base URL: `https://api.kobaltlabs.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kobaltlabs.com/custom_fields/by-id/{custom_field_id}/archive`
- Auth: none declared

Retire a custom field, or bring a retired one back.

Deleting a field in use means clearing it off every record first, which
throws the data away. Archiving keeps the definition and every value it
holds — the field just stops being offered anywhere (editors, filters,
exports, the trigger builder) until it's restored.

## Path parameters

- `custom_field_id` string, uuid, required

## Request body

- CustomFieldArchiveRequest
  - `archived` boolean, required

## 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
    - `archived_at` string, date-time, 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
    - `archived_at` string, date-time, 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
    - `archived_at` string, date-time, 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
    - `archived_at` string, date-time, 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
    - `archived_at` string, date-time, 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
    - `archived_at` string, date-time, 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
    - `archived_at` string, date-time, 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
    - `archived_at` string, date-time, nullable
    - `custom_field_definition_type` 'MULTI_USER'

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-08** `9fe2fb8a3631`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/kobaltlabs/apis/fastapi/changes/custom_fields/by-id/:custom_field_id/archive/put.md)

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) - [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) - [OpenAPI document](https://skmtc.dev/kobaltlabs/apis/fastapi/revisions/8587332d5e43?raw)
