---
title: "Update an annotation configuration"
method: PUT
path: "/v1/annotation_configs/{config_id}"
tags: ["annotation_configs"]
---

# Update an annotation configuration

`PUT /v1/annotation_configs/{config_id}`

## Path parameters

- `config_id` string, required — ID of the annotation configuration

## Request body

- union
  - CategoricalAnnotationConfigData
    - `name` string, required
    - `type` 'CATEGORICAL', required
    - `description` string, nullable
    - `optimization_direction` 'MINIMIZE' | 'MAXIMIZE' | 'NONE', required
    - `values` CategoricalAnnotationValue[], required
      - `label` string, required
      - `score` number, nullable
  - ContinuousAnnotationConfigData
    - `name` string, required
    - `type` 'CONTINUOUS', required
    - `description` string, nullable
    - `optimization_direction` 'MINIMIZE' | 'MAXIMIZE' | 'NONE', required
    - `lower_bound` number, nullable
    - `upper_bound` number, nullable
  - FreeformAnnotationConfigData
    - `name` string, required
    - `type` 'FREEFORM', required
    - `description` string, nullable
    - `optimization_direction` 'MINIMIZE' | 'MAXIMIZE' | 'NONE'
    - `threshold` number, nullable
    - `lower_bound` number, nullable
    - `upper_bound` number, nullable

## Response `200`

Successful Response

- UpdateAnnotationConfigResponseBody
  - `data` union, required
    - CategoricalAnnotationConfig
      - `name` string, required
      - `type` 'CATEGORICAL', required
      - `description` string, nullable
      - `optimization_direction` 'MINIMIZE' | 'MAXIMIZE' | 'NONE', required
      - `values` CategoricalAnnotationValue[], required
        - `label` string, required
        - `score` number, nullable
      - `id` string, required
    - ContinuousAnnotationConfig
      - `name` string, required
      - `type` 'CONTINUOUS', required
      - `description` string, nullable
      - `optimization_direction` 'MINIMIZE' | 'MAXIMIZE' | 'NONE', required
      - `lower_bound` number, nullable
      - `upper_bound` number, nullable
      - `id` string, required
    - FreeformAnnotationConfig
      - `name` string, required
      - `type` 'FREEFORM', required
      - `description` string, nullable
      - `optimization_direction` 'MINIMIZE' | 'MAXIMIZE' | 'NONE'
      - `threshold` number, nullable
      - `lower_bound` number, nullable
      - `upper_bound` number, nullable
      - `id` string, required

## Other responses

- `403` — Forbidden
- `422` — Validation Error

## Changes

- **2026-07-17** `5b062a93db67` — 1 info
  - api operation id `update_annotation_config_v1_annotation_configs__config_id__put` removed and replaced with `updateAnnotationConfig`
- **2026-05-21** `ea31306c1333` — 8 info
  - added the new optional request property `oneOf[subschema #3: FreeformAnnotationConfigData]/lower_bound`
  - added the new optional request property `oneOf[subschema #3: FreeformAnnotationConfigData]/optimization_direction`
  - added the new optional request property `oneOf[subschema #3: FreeformAnnotationConfigData]/threshold`
  - added the new optional request property `oneOf[subschema #3: FreeformAnnotationConfigData]/upper_bound`
  - …4 more
- **2026-04-29** `c81391216eb5` — 8 warning
  - removed the request property `oneOf[subschema #3: FreeformAnnotationConfigData]/lower_bound`
  - removed the request property `oneOf[subschema #3: FreeformAnnotationConfigData]/optimization_direction`
  - removed the request property `oneOf[subschema #3: FreeformAnnotationConfigData]/threshold`
  - removed the request property `oneOf[subschema #3: FreeformAnnotationConfigData]/upper_bound`
  - …4 more

[Change history](https://skmtc.dev/arize-ai/apis/arize-phoenix-rest-api/changes/v1/annotation_configs/:config_id/put.md)

---

[API](https://skmtc.dev/arize-ai/apis/arize-phoenix-rest-api.md) · [All operations](https://skmtc.dev/arize-ai/apis/arize-phoenix-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/arize-ai/arize-phoenix-rest-api/revisions/c2502537476f/schema)
