---
title: "Update evaluator"
method: PATCH
path: "/v2/evaluators/{evaluator_id}"
tags: ["Evaluators"]
---

# Update evaluator

`PATCH /v2/evaluators/{evaluator_id}`

Update an evaluator's metadata. At least one field must be provided.
Omitted fields are left unchanged.

**Payload Requirements**
- At least one of `name` or `description` must be provided.
- `name`, if provided, must be unique within the space.
- System-managed fields (`id`, `type`, `space_id`, `created_at`, `updated_at`, `created_by_user_id`) cannot be modified.

**Valid example**
```json
{
  "name": "Hallucination Detector v2",
  "description": "Updated evaluator for production hallucination checks"
}
```

**Invalid example** (no updatable fields provided)
```json
{}
```

<Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>

## Path parameters

- `evaluator_id` string, required — A universally unique identifier (base64-encoded opaque string).

## Request body

- UpdateEvaluatorRequest — Body containing evaluator update parameters
  - `name` string — New evaluator name
  - `description` string, nullable — New description

## Response `200`

An evaluator object

- Evaluator — An evaluator defines reusable evaluation logic that can be attached to evaluation tasks. The type field determines the kind of evaluation: TEMPLATE (LLM-based template evaluation) or CODE (custom code evaluation).
  - `id` string, required — The unique identifier for the evaluator
  - `name` string, required — The name of the evaluator
  - `description` string, nullable — The description of the evaluator
  - `type` 'TEMPLATE' | 'CODE' | 'HARNESS' | 'REMOTE', required — The evaluator type: - `TEMPLATE` — LLM-based evaluator. - `CODE` — managed built-in evaluators or custom Python code (both are subtypes of `CODE`, discriminated by the nested `CodeConfig.type` = `MANAGED` | `CUSTOM`). - `HARNESS` — test harness evaluator. - `REMOTE` — remote evaluator. Applies to both the parent `Evaluator.type` field and every version's `type` discriminator — a version's `type` must always match its parent evaluator's `type`.
  - `space_id` string, required — The unique identifier for the space the evaluator belongs to
  - `created_at` string, date-time, required — When the evaluator was created
  - `updated_at` string, date-time, required — When the evaluator was last updated
  - `created_by_user_id` string, nullable, required — The unique identifier for the user who created the evaluator

## Other responses

- `400` — Invalid request
- `401` — Authentication is required
- `403` — Insufficient permissions to access this resource
- `404` — Not found
- `409` — Resource conflict
- `422` — Unprocessable entity
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/arize-ai/apis/arize-rest-api.md) · [All operations](https://skmtc.net/arize-ai/apis/arize-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/arize-ai/arize-rest-api/versions/2ce448f1de13/schema)
