---
title: "Update a classifier"
method: PATCH
path: "/classifiers/{id}"
tags: ["Gateway"]
---

# Update a classifier

`PATCH /classifiers/{id}`

## Request

- Base URL: `https://api.phaseo.app/v1`
- URL: `https://api.phaseo.app/v1/classifiers/{id}`
- Auth: HTTP bearer

Updates the fields you send. Changes reach the gateway within about a minute. Labels already written to past requests are not changed.

## Request body

- ClassifierUpdateInput
  - `name` string
  - `description` string, nullable
  - `enabled` boolean
  - `model` string
  - `instructions` string
  - `dimensions` ClassifierDimension[]
    - `key` string, required
    - `name` string
    - `description` string, nullable
    - `multiple` boolean: Allow more than one value per request.
    - `allow_other` boolean: Let the model answer "other" when no listed value fits.
    - `values` ClassifierValue[], required: Between 2 and 50 values. A single value is allowed only when allow_other is true.
      - `value` string, required
      - `description` string, nullable: Tells the model when to pick this value.
  - `sample_rate` number, double
  - `sample_by` 'request' | 'session': request samples each request on its own. session keeps every request in a session in or out together.
  - `input_scope` 'prompt' | 'prompt_and_response': prompt classifies the request messages. prompt_and_response also shows the model the generated response.
  - `scope` ClassifierScope: Limits which requests are classified. Leave a list out to include everything.
    - `key_ids` string[]
    - `app_ids` string[]
    - `models` string[]
  - `monthly_budget_usd` number, double, nullable

## Response `200`

Classifier updated

- ClassifierResponse
  - `data` Classifier, required: A workspace taxonomy that a chosen model applies to requests after they finish.
    - `id` string, uuid, required
    - `workspace_id` string, uuid, required
    - `name` string, required
    - `description` string, nullable, required
    - `enabled` boolean, required
    - `model` string, required: Model that classifies requests, for example google/gemini-2.5-flash-lite.
    - `instructions` string, required: Extra guidance for the model, added to the classification prompt.
    - `dimensions` ClassifierDimension[], required
      - `key` string, required
      - `name` string
      - `description` string, nullable
      - `multiple` boolean: Allow more than one value per request.
      - `allow_other` boolean: Let the model answer "other" when no listed value fits.
      - `values` ClassifierValue[], required: Between 2 and 50 values. A single value is allowed only when allow_other is true.
        - `value` string, required
        - `description` string, nullable: Tells the model when to pick this value.
    - `sample_rate` number, double, required: Share of eligible requests to classify. 1 classifies every request.
    - `sample_by` 'request' | 'session', required: request samples each request on its own. session keeps every request in a session in or out together.
    - `input_scope` 'prompt' | 'prompt_and_response', required: prompt classifies the request messages. prompt_and_response also shows the model the generated response.
    - `scope` ClassifierScope, required: Limits which requests are classified. Leave a list out to include everything.
      - `key_ids` string[]
      - `app_ids` string[]
      - `models` string[]
    - `monthly_budget_usd` number, double, nullable, required: Most the classifier may spend in a UTC calendar month. Classification pauses for the rest of the month once it is reached. null means no cap.
    - `created_by` string, uuid, nullable, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `default`: Request failed

## Changes

- **2026-10-21** `f2a7a9f9a8e2`: 1 breaking, 2 info
  - added `#/components/schemas/ErrorObject` to the `error` response property `oneOf` list for the response status `default`
  - added the optional property `code` to the response with the `default` status
  - removed `subschema #2` from the `error` response property `oneOf` list for the response status `default`
- **2026-10-20** `1d0e000a9005`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/phaseo/apis/phaseo-gateway-api/changes/classifiers/:id/patch.md)

---

[API](https://skmtc.dev/phaseo/apis/phaseo-gateway-api.md) - [All operations](https://skmtc.dev/phaseo/apis/phaseo-gateway-api/llms.txt) - [OpenAPI document](https://skmtc.dev/phaseo/apis/phaseo-gateway-api/revisions/5ca9bb220d25?raw)
