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

# Annotation Configs

> Create custom labels for human feedback and data curation. Manage categorical, continuous, and freeform annotation configs programmatically.

<Note>
  The `annotation_configs` client methods are currently in **BETA**. The API may change without notice. A one-time warning is emitted on first use.
</Note>

Create custom labels that can be added to represent this human feedback. Annotation configs allow teams and subject matter experts to label data and curate high-quality datasets.

## Key Capabilities

* Create and manage annotation configs within spaces
* List annotation configs with pagination support
* Retrieve annotation configs by name or ID
* Delete annotation configs when no longer needed

## List Annotation Configs

List all annotation configs you have access to, with optional filtering by space or name.

```python theme={null}
resp = client.annotation_configs.list(
    space="your-space-name-or-id",  # optional
    name="accuracy",                # optional substring filter
    limit=50,
)

print(resp)
```

For details on pagination, field introspection, and data conversion (to dict/JSON/DataFrame), see [**Response Objects**](https://arize.com/docs/api-clients/python/version-8/overview#response-objects).

## Create an Annotation Config

Create a new annotation config within a space. Annotation config names must be unique within the target space.

Three types are supported: `categorical`, `continuous`, and `freeform`.

### Categorical

A categorical annotation config with discrete labeled values and optional scores.

```python theme={null}
from arize.annotation_configs.types import AnnotationConfigType
from arize.annotation_configs.types import CategoricalAnnotationValue

resp = client.annotation_configs.create(
    name="accuracy",
    space="your-space-name-or-id",
    config_type=AnnotationConfigType.CATEGORICAL,
    values=[
        CategoricalAnnotationValue(label="accurate", score=1),
        CategoricalAnnotationValue(label="inaccurate", score=0),
    ],
    optimization_direction="maximize",
)

print(resp)
```

### Continuous

A continuous annotation config with a numeric score range.

```python theme={null}
from arize.annotation_configs.types import AnnotationConfigType

resp = client.annotation_configs.create(
    name="relevance",
    space="your-space-name-or-id",
    config_type=AnnotationConfigType.CONTINUOUS,
    minimum_score=0.0,
    maximum_score=1.0,
    optimization_direction="maximize",
)

print(resp)
```

### Freeform

A freeform annotation config for free-text feedback with no structured scoring.

```python theme={null}
from arize.annotation_configs.types import AnnotationConfigType

resp = client.annotation_configs.create(
    name="reviewer-notes",
    space="your-space-name-or-id",
    config_type=AnnotationConfigType.FREEFORM,
)

print(resp)
```

## Get an Annotation Config

Retrieve a specific annotation config by name or ID. When using a name, provide `space` to disambiguate.

```python theme={null}
resp = client.annotation_configs.get(
    annotation_config="annotation-config-name-or-id",
    space="your-space-name-or-id",  # required when using a name
)

print(resp)
```

## Delete an Annotation Config

Delete an annotation config by name or ID. This operation is irreversible. There is no response from this call.

```python theme={null}
client.annotation_configs.delete(
    annotation_config="annotation-config-name-or-id",
    space="your-space-name-or-id",  # required when using a name
)

print("Annotation config deleted successfully")
```
