---
title: "Update an eval prompt set"
method: PATCH
path: "/api/v1/ai/eval/prompt-sets/{promptSetId}"
tags: ["AI Eval"]
---

# Update an eval prompt set

`PATCH /api/v1/ai/eval/prompt-sets/{promptSetId}`

Update a prompt set's name, description, and/or prompts. When `prompts` is supplied, it fully replaces the existing list — existing prompts omitted from the list are deleted, entries without an `id` are created, and entries with a matching `id` are updated in place.

## Path parameters

- `promptSetId` string, uuid, required — The unique identifier of the eval prompt set.

## Request body

- EvalPromptSetsUpdateBody
  - `description` string, nullable — New description for the prompt set. Pass `null` to clear. Max 1024 characters.
  - `name` string — New human-readable name for the prompt set. 255 characters or fewer.
  - `prompts` object[] — Full desired set of prompts after the update. Prompts omitted from this list are deleted; new prompts (no `id`) are appended in body order. Existing prompts retain their original position — reordering is not supported on this endpoint. At most 25 prompts total.
    - `expectation` string, nullable — Optional expectation the analysis judge scores the analysis against. Pass `null` to clear. Max 16000 characters.
    - `id` string, uuid — Existing prompt id. When provided, updates that prompt; when omitted, a new prompt is created. Prompts not included in this list are removed.
    - `prompt_text` string, required — Updated or new prompt text. Max 8000 characters.

## Response `200`

Prompt set updated successfully.

- EvalPromptSetsUpdateResponse
  - `prompt_set` EvalPromptSet, required
    - `created_at` string, nullable, required — ISO 8601 timestamp when the prompt set was created.
    - `description` string, nullable, required — Optional human-readable description of the prompt set.
    - `id` string, uuid, required — Unique identifier for the prompt set.
    - `is_archived` boolean, required — Whether the prompt set has been archived.
    - `model_id` string, uuid, required — The shared model this prompt set is bound to.
    - `name` string, required — Human-readable name for the prompt set.
    - `prompts` EvalPrompt[], required — Prompts that make up the set.
      - `created_at` string, nullable, required — ISO 8601 timestamp when the prompt was created.
      - `expectation` string, nullable, required — The expectation the analysis judge scores the analysis against, or null when none was set.
      - `id` string, uuid, required — Unique identifier for the prompt.
      - `prompt_text` string, required — The natural language prompt text the AI is evaluated on.
      - `updated_at` string, nullable, required — ISO 8601 timestamp when the prompt was last updated.
    - `slug` string, required — URL-safe identifier for the prompt set. Unique per `model_id`.
    - `updated_at` string, nullable, required — ISO 8601 timestamp when the prompt set was last updated.

## Other responses

- `400` — Invalid request body.
- `401` — Missing or invalid API key.
- `403` — Insufficient permissions.
- `404` — Prompt set not found.
- `422` — A `prompts[].id` in the request does not belong to this prompt set, or the prompt count exceeds the organization's per-set cap (default 25, higher for orgs with the `ai-eval-extra-prompts` flag).

---

[API](https://skmtc.net/omniapp/apis/omni-api.md) · [All operations](https://skmtc.net/omniapp/apis/omni-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/omniapp/omni-api/versions/4701f292c621/schema)
