---
title: "Validate grader"
method: POST
path: "/fine_tuning/alpha/graders/validate"
tags: ["Fine-tuning"]
---

# Validate grader

`POST /fine_tuning/alpha/graders/validate`

## Request

- Base URL: `https://api.openai.com/v1`
- URL: `https://api.openai.com/v1/fine_tuning/alpha/graders/validate`
- Auth: HTTP bearer

Validate a grader.

## Request body

- ValidateGraderRequest
  - `grader` union, required: The grader used for the fine-tuning job.
    - object: 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`.
    - object: 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`.
    - object: 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.
    - object: 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://developers.openai.com/api/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.
            - string: A text input to the model.
            - InputTextContent: A text input to the model.
              - …
            - EvalItemContentOutputText: A text output from the model.
              - …
            - EvalItemInputImage: An image input block used within EvalItem content arrays.
              - …
            - InputAudio: An audio input to the model.
              - …
          - EvalItemContentItem[]: A list of inputs, each of which may be either an input text, output text, input image, or input audio object.
            - union: A single content item: input text, output text, input image, or input audio.
              - …
        - `type` 'message': The type of the message input. Always `message`.
      - `range` number[]: The service requires two numbers for the score range. Defaults to `[0, 1]`.
    - object: A MultiGrader object combines the output of multiple graders to produce a single score.
      - `type` 'multi', required: The object type, which is always `multi`.
      - `name` string, required: The name of the grader.
      - `graders` object, required
      - `calculate_output` string, required: A formula to calculate the output based on grader results.

## Response `200`

OK

- ValidateGraderResponse
  - `grader` union: The grader used for the fine-tuning job.
    - object: 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`.
    - object: 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`.
    - object: 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.
    - object: 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://developers.openai.com/api/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.
            - string: A text input to the model.
            - InputTextContent: A text input to the model.
              - …
            - EvalItemContentOutputText: A text output from the model.
              - …
            - EvalItemInputImage: An image input block used within EvalItem content arrays.
              - …
            - InputAudio: An audio input to the model.
              - …
          - EvalItemContentItem[]: A list of inputs, each of which may be either an input text, output text, input image, or input audio object.
            - union: A single content item: input text, output text, input image, or input audio.
              - …
        - `type` 'message': The type of the message input. Always `message`.
      - `range` number[]: The service requires two numbers for the score range. Defaults to `[0, 1]`.
    - object: A MultiGrader object combines the output of multiple graders to produce a single score.
      - `type` 'multi', required: The object type, which is always `multi`.
      - `name` string, required: The name of the grader.
      - `graders` object, required
      - `calculate_output` string, required: A formula to calculate the output based on grader results.

## Other responses

- `400`: The grader definition or request is invalid.
- `429`: The request rate limit has been exceeded.

## Changes

- **2026-10-26** `410e6429083a`: 12 info
  - added the new optional request property `grader/oneOf[subschema #4: ScoreModelGrader]/input/items/content/oneOf[subschema #1: Eval content item]/oneOf[subschema #2: Input text]/prompt_cache_breakpoint/ttl`
  - added the new optional request property `grader/oneOf[subschema #4: ScoreModelGrader]/input/items/content/oneOf[subschema #2: An array of Input text, Output text, Input image, and Input audio]/items/oneOf[subschema #2: Input text]/prompt_cache_breakpoint/ttl`
  - added the new optional request property `grader/oneOf[subschema #5: MultiGrader]/graders/additionalProperties/oneOf[subschema #4: ScoreModelGrader]/input/items/content/oneOf[subschema #1: Eval content item]/oneOf[subschema #2: Input text]/prompt_cache_breakpoint/ttl`
  - added the new optional request property `grader/oneOf[subschema #5: MultiGrader]/graders/additionalProperties/oneOf[subschema #4: ScoreModelGrader]/input/items/content/oneOf[subschema #2: An array of Input text, Output text, Input image, and Input audio]/items/oneOf[subschema #2: Input text]/prompt_cache_breakpoint/ttl`
  - …8 more
- **2026-10-06** `487892d3954e`: 2 info
  - added the optional property `error/misalignment/review_target` to the response with the `400` status
  - added the optional property `error/misalignment/review_target` to the response with the `429` status
- **2026-10-05** `7f654af7f94f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/omnistack-sh/apis/openai-api/changes/fine_tuning/alpha/graders/validate/post.md)

---

[API](https://skmtc.dev/omnistack-sh/apis/openai-api.md) - [All operations](https://skmtc.dev/omnistack-sh/apis/openai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/omnistack-sh/apis/openai-api/revisions/0a26f104d35f?raw)
