---
title: "Update an eval"
method: POST
path: "/evals/{eval_id}"
tags: ["Evals"]
---

# Update an eval

`POST /evals/{eval_id}`

Update certain properties of an evaluation.

## Path parameters

- `eval_id` string, required

## Request body

- object
  - `name` string — Rename the evaluation.
  - `metadata` Metadata, nullable — Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.

## Response `200`

The updated evaluation

- Eval — An Eval object with a data source config and testing criteria. An Eval represents a task to be done for your LLM integration. Like: - Improve the quality of my chatbot - See how well my chatbot handles customer support - Check if o4-mini is better at my usecase than gpt-4o
  - `object` 'eval', required — The object type.
  - `id` string, required — Unique identifier for the evaluation.
  - `name` string, required — The name of the evaluation.
  - `data_source_config` union, required — Configuration of data sources used in runs of the evaluation.
    - object — A CustomDataSourceConfig which specifies the schema of your `item` and optionally `sample` namespaces. The response schema defines the shape of the data that will be: - Used to define your testing criteria and - What data is required when creating a run
      - `type` 'custom', required — The type of data source. Always `custom`.
      - `schema` object, required — The json schema for the run data source items. Learn how to build JSON schemas [here](https://json-schema.org/).
    - object — A LogsDataSourceConfig which specifies the metadata property of your logs query. This is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc. The schema returned by this data source config is used to defined what variables are available in your evals. `item` and `sample` are both defined when using this data source config.
      - `type` 'logs', required — The type of data source. Always `logs`.
      - `metadata` Metadata, nullable — Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
      - `schema` object, required — The json schema for the run data source items. Learn how to build JSON schemas [here](https://json-schema.org/).
    - object — Deprecated in favor of LogsDataSourceConfig.
      - `type` 'stored_completions', required — The type of data source. Always `stored_completions`.
      - `metadata` Metadata, nullable — Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
      - `schema` object, required — The json schema for the run data source items. Learn how to build JSON schemas [here](https://json-schema.org/).
  - `testing_criteria` union[], required — A list of testing criteria.
    - union
      - EvalGraderLabelModel — A LabelModelGrader object which uses a model to assign labels to each item in the evaluation.
        - `type` 'label_model', required — The object type, which is always `label_model`.
        - `name` string, required — The name of the grader.
        - `model` string, required — The model to use for the evaluation. Must support structured outputs.
        - `input` EvalItem[], required
          - `role` 'user' | 'assistant' | 'system' | 'developer', required — The role of the message input. One of `user`, `assistant`, `system`, or `developer`.
          - `content` union, required — Inputs to the model - can contain template strings. Supports text, output text, input images, and input audio, either as a single item or an array of items.
            - union — A single content item: input text, output text, input image, or input audio.
              - …
            - EvalItemContentItem[] — A list of inputs, each of which may be either an input text, output text, input image, or input audio object.
              - …
          - `type` 'message' — The type of the message input. Always `message`.
        - `labels` string[], required — The labels to assign to each item in the evaluation.
        - `passing_labels` string[], required — The labels that indicate a passing result. Must be a subset of labels.
      - EvalGraderStringCheck — A StringCheckGrader object that performs a string comparison between input and reference using a specified operation.
        - `type` 'string_check', required — The object type, which is always `string_check`.
        - `name` string, required — The name of the grader.
        - `input` string, required — The input text. This may include template strings.
        - `reference` string, required — The reference text. This may include template strings.
        - `operation` 'eq' | 'ne' | 'like' | 'ilike', required — The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`.
      - EvalGraderTextSimilarity — A TextSimilarityGrader object which grades text based on similarity metrics.
        - `type` 'text_similarity', required — The type of grader.
        - `name` string, required — The name of the grader.
        - `input` string, required — The text being graded.
        - `reference` string, required — The text being graded against.
        - `evaluation_metric` 'cosine' | 'fuzzy_match' | 'bleu' | 'gleu' | 'meteor' | 'rouge_1' | 'rouge_2' | 'rouge_3' | 'rouge_4' | 'rouge_5' | 'rouge_l', required — The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`.
        - `pass_threshold` number, required — The threshold for the score.
      - EvalGraderPython — A PythonGrader object that runs a python script on the input.
        - `type` 'python', required — The object type, which is always `python`.
        - `name` string, required — The name of the grader.
        - `source` string, required — The source code of the python script.
        - `image_tag` string — The image tag to use for the python script.
        - `pass_threshold` number — The threshold for the score.
      - EvalGraderScoreModel — A ScoreModelGrader object that uses a model to assign a score to the input.
        - `type` 'score_model', required — The object type, which is always `score_model`.
        - `name` string, required — The name of the grader.
        - `model` string, required — The model to use for the evaluation.
        - `sampling_params` object — The sampling parameters for the model.
          - `seed` integer, nullable — A seed value to initialize the randomness, during sampling.
          - `top_p` number, nullable — An alternative to temperature for nucleus sampling; 1.0 includes all tokens.
          - `temperature` number, nullable — A higher temperature increases randomness in the outputs.
          - `max_completions_tokens` integer, nullable — The maximum number of tokens the grader model may generate in its response.
          - `reasoning_effort` 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max', nullable — Constrains effort on reasoning for reasoning models. Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response. Not all reasoning models support every value. See the [reasoning guide](https://platform.openai.com/docs/guides/reasoning) for model-specific support.
        - `input` EvalItem[], required — The input messages evaluated by the grader. Supports text, output text, input image, and input audio content blocks, and may include template strings.
          - `role` 'user' | 'assistant' | 'system' | 'developer', required — The role of the message input. One of `user`, `assistant`, `system`, or `developer`.
          - `content` union, required — Inputs to the model - can contain template strings. Supports text, output text, input images, and input audio, either as a single item or an array of items.
            - union — A single content item: input text, output text, input image, or input audio.
              - …
            - EvalItemContentItem[] — A list of inputs, each of which may be either an input text, output text, input image, or input audio object.
              - …
          - `type` 'message' — The type of the message input. Always `message`.
        - `range` number[] — The range of the score. Defaults to `[0, 1]`.
        - `pass_threshold` number — The threshold for the score.
  - `created_at` integer, required — The Unix timestamp (in seconds) for when the eval was created.
  - `metadata` Metadata, nullable, required — Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.

---

[API](https://skmtc.net/openai/apis/openai-api.md) · [All operations](https://skmtc.net/openai/apis/openai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openai/openai-api/revisions/dcd35773a322/schema)
