---
title: "Validate Decision Scorer Dataset"
method: POST
path: "/scorers/decision/validate/dataset"
tags: ["data", "prompts", "rows"]
---

# Validate Decision Scorer Dataset

`POST /scorers/decision/validate/dataset`

## Request

- Base URL: `https://api.galileo.ai`
- URL: `https://api.galileo.ai/scorers/decision/validate/dataset`
- Auth: one of:
  - API key in header `Splunk-AO-API-Key`
  - API key in header `Galileo-API-Key`
  - OAuth 2
    - Password
    - Token URL: `https://api.galileo.ai/login`
  - HTTP basic

Test a decision evaluator on dataset rows. The results go to a new metrics_testing run.

The evaluator fields have the shape of the log record request. dataset_id, dataset_version_index,
limit and starting_token select the rows, as in the LLM dataset request. scoreable_node_types
holds one node type, trace or llm. Read the results with metric_key=decision_scorer_validation.

## Request body

- ValidateDecisionScorerDatasetRequest: Test a decision evaluator on dataset rows. The dataset fields select the rows. dataset_id, dataset_version_index, limit and starting_token have the same meaning and defaults as in the LLM dataset request. scoreable_node_types must be trace or llm.
  - `dataset_id` string, uuid4, required
  - `dataset_version_index` integer, nullable
  - `limit` integer: Maximum number of dataset rows to process.
  - `starting_token` integer, nullable: Pagination offset into dataset rows.
  - `model_name` string, required
  - `question` string, required
  - `answer_options` union
    - string[]
    - DecisionChoice[]
      - `label` string, required
      - `description` string, nullable
    - DecisionLevel[]
      - `level` integer, required
      - `label` string, required
      - `description` string, nullable
    - DecisionBooleanCriteria: What a true answer and a false answer mean, for a yes/no question. The two are set together.
      - `true` string, required
      - `false` string, required
  - `scorer_configuration` DecisionScorerTestConfiguration, required: The evaluator settings of a decision Test request, the same place as the LLM scorer_configuration. scoreable_node_types holds exactly one node type. input_type defaults to the decision default for it (get_decision_input_type).
    - `output_type` 'boolean' | 'categorical' | 'count' | 'discrete' | 'freeform' | 'percentage' | 'multilabel' | 'retrieved_chunk_list_boolean' | 'boolean_multilabel' | 'boolean_probability', required: Enumeration of output types.
    - `scoreable_node_types` StepType[], required
    - `input_type` 'basic' | 'llm_spans' | 'retriever_spans' | 'sessions_normalized' | 'sessions_trace_io_only' | 'tool_spans' | 'trace_input_only' | 'trace_io_only' | 'trace_normalized' | 'trace_output_only' | 'agent_spans' | 'workflow_spans': Enumeration of input types.
    - `ground_truth` boolean

## Response `200`

Successful Response

- ValidateScorerLogRecordResponse: Response model for validating a scorer based on log records. Returns the uuid of the experiment created with the copied log records to store the metric testing results. Also returns the project_id so callers can poll /projects/{project_id}/traces/search.
  - `metrics_experiment_id` string, uuid4, required
  - `project_id` string, uuid4, required

## Other responses

- `422`: Validation Error

## Changes

> 34 revisions in range; 2 not diffed.

- **2026-10-19** `0b20eade6391`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/galileo/apis/galileo-api-server/changes/scorers/decision/validate/dataset/post.md)

---

[API](https://skmtc.dev/galileo/apis/galileo-api-server.md) - [All operations](https://skmtc.dev/galileo/apis/galileo-api-server/llms.txt) - [OpenAPI document](https://skmtc.dev/galileo/apis/galileo-api-server/revisions/a289cea1b504?raw)
