---
title: "Create Preset Scorer Version"
method: POST
path: "/scorers/{scorer_id}/version/preset"
tags: ["data", "prompts", "rows"]
---

# Create Preset Scorer Version

`POST /scorers/{scorer_id}/version/preset`

## Request

- Base URL: `https://api.galileo.ai`
- URL: `https://api.galileo.ai/scorers/{scorer_id}/version/preset`
- 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

Create a preset scorer version.

## Path parameters

- `scorer_id` string, uuid4, required

## Request body

- CreateScorerVersionRequest
  - `model_name` string, nullable
  - `num_judges` integer, nullable
  - `scoreable_node_types` string[], nullable
  - `cot_enabled` boolean, nullable
  - `output_type` 'boolean' | 'categorical' | 'count' | 'discrete' | 'freeform' | 'percentage' | 'multilabel' | 'retrieved_chunk_list_boolean' | 'boolean_multilabel' | 'boolean_probability': Enumeration of output types.
  - `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.

## Response `200`

Successful Response

- BaseScorerVersionResponse
  - `id` string, uuid4, required
  - `version` integer, required
  - `scorer_id` string, uuid4, required
  - `generated_scorer` GeneratedScorerResponse
    - `id` string, uuid4, required
    - `name` string, required
    - `instructions` string, nullable
    - `chain_poll_template` ChainPollTemplate, required: Template for a chainpoll metric prompt, containing all the info necessary to send a chainpoll prompt.
      - `metric_system_prompt` string, nullable: System prompt for the metric.
      - `metric_description` string, nullable: Description of what the metric should do.
      - `value_field_name` string: Field name to look for in the chainpoll response, for the rating.
      - `explanation_field_name` string: Field name to look for in the chainpoll response, for the explanation.
      - `template` string, required: Chainpoll prompt template.
      - `metric_few_shot_examples` FewShotExample[]: Few-shot examples for the metric.
        - `generation_prompt_and_response` string, required
        - `evaluating_response` string, required
      - `response_schema` object, nullable: Response schema for the output
    - `user_prompt` string, nullable
    - `created_by` string, uuid4, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `scoreable_node_types` NodeType[], nullable, required
    - `scorer_configuration` GeneratedScorerConfiguration, required
      - `model_alias` string
      - `num_judges` integer
      - `output_type` 'boolean' | 'categorical' | 'count' | 'discrete' | 'freeform' | 'percentage' | 'multilabel' | 'retrieved_chunk_list_boolean' | 'boolean_multilabel' | 'boolean_probability': Enumeration of output types.
      - `scoreable_node_types` string[]: Types of nodes that can be scored by this scorer.
      - `cot_enabled` boolean: Whether chain of thought is enabled for this scorer.
      - `ground_truth` boolean: Whether ground truth is enabled for this scorer.
      - `multimodal_capabilities` MultimodalCapability[], nullable: Multimodal capabilities required by this scorer.
  - `registered_scorer` CreateUpdateRegisteredScorerResponse
    - `id` string, uuid4, required
    - `name` string, required
    - `score_type` string, nullable, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `created_by` string, uuid4, required
    - `data_type` 'unknown' | 'text' | 'label' | 'floating_point' | 'integer' | 'timestamp' | 'milli_seconds' | 'boolean' | 'uuid' | 'percentage' | 'dollars' | 'array' | 'template_label' | 'thumb_rating_percentage' | 'user_id' | 'text_offsets' | 'segments' | 'hallucination_segments' | 'thumb_rating' | 'score_rating' | 'star_rating' | 'tags_rating' | 'choice_rating' | 'thumb_rating_aggregate' | 'score_rating_aggregate' | 'star_rating_aggregate' | 'tags_rating_aggregate' | 'choice_rating_aggregate', required
    - `scoreable_node_types` string[], nullable, required
  - `finetuned_scorer` FineTunedScorerResponse
    - `id` string, uuid4, required
    - `name` string, required
    - `lora_task_id` integer, required
    - `lora_weights_path` string, nullable
    - `prompt` string, required
    - `luna_input_type` 'span' | 'trace_object' | 'trace_input_output_only'
    - `luna_output_type` 'float' | 'string' | 'string_list' | 'bool_list'
    - `class_name_to_vocab_ix` union
      - object
      - object
    - `executor` 'action_completion_luna' | 'action_advancement_luna' | 'agentic_session_success' | 'agentic_session_success' | 'action_completion_vision' | 'action_completion_audio' | 'agentic_workflow_success' | 'agentic_workflow_success' | 'agent_efficiency' | 'agent_flow' | 'agent_flow_vision' | 'agent_flow_audio' | 'chunk_attribution_utilization_luna' | 'chunk_attribution_utilization' | 'chunk_relevance' | 'chunk_relevance_luna' | 'context_precision' | 'precision_at_k' | 'completeness_luna' | 'completeness' | 'context_adherence' | 'context_adherence_luna' | 'context_adherence_vision_luna' | 'context_adherence_vision' | 'context_adherence_audio' | 'context_relevance' | 'context_relevance_luna' | 'conversation_quality' | 'conversation_quality_vision' | 'conversation_quality_audio' | 'unsafe_output' | 'correctness' | 'correctness_vision' | 'correctness_audio' | 'ground_truth_adherence' | 'ground_truth_adherence_vision' | 'ground_truth_adherence_audio' | 'visual_fidelity' | 'visual_quality' | 'input_pii' | 'input_pii_vision_luna' | 'input_pii_gpt' | 'input_pii_vision' | 'input_pii_audio' | 'input_sexist' | 'input_sexist' | 'input_sexist_vision' | 'input_sexist_audio' | 'input_sexist_luna' | 'input_sexist_luna' | 'input_sexist_vision_luna' | 'input_tone' | 'input_tone_gpt' | 'input_toxicity' | 'input_toxicity_luna' | 'input_toxicity_vision_luna' | 'input_toxicity_vision' | 'input_toxicity_audio' | 'instruction_adherence' | 'instruction_adherence_vision' | 'instruction_adherence_audio' | 'output_pii' | 'output_pii_vision_luna' | 'output_pii_gpt' | 'output_pii_vision' | 'output_pii_audio' | 'output_sexist' | 'output_sexist' | 'output_sexist_vision' | 'output_sexist_audio' | 'output_sexist_luna' | 'output_sexist_luna' | 'output_sexist_vision_luna' | 'output_tone' | 'output_tone_gpt' | 'output_toxicity' | 'output_toxicity_luna' | 'output_toxicity_vision_luna' | 'output_toxicity_vision' | 'output_toxicity_audio' | 'prompt_injection' | 'prompt_injection_vision' | 'prompt_injection_audio' | 'prompt_injection_luna' | 'prompt_injection_vision_luna' | 'reasoning_coherence' | 'reasoning_coherence_vision' | 'reasoning_coherence_audio' | 'sql_efficiency' | 'sql_adherence' | 'sql_injection' | 'sql_correctness' | 'tool_error_rate' | 'tool_error_rate_luna' | 'tool_selection_quality' | 'tool_selection_quality_vision' | 'tool_selection_quality_audio' | 'tool_selection_quality_luna' | 'user_intent_change' | 'user_intent_change_vision' | 'user_intent_change_audio' | 'interruption_detection'
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `created_by` string, uuid4, required
  - `luna3_scorer` Luna3ScorerResponse
    - `instruction` string, required
    - `adapter_path` string, required
    - `class_name_to_vocab_ix` object, required
    - `threshold` number, nullable
    - `id` string, uuid4, required
    - `organization_id` string, uuid4, required
    - `created_by` string, uuid4, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `decision_scorer` DecisionScorerDB: A row of the decision_scorers table. answer_options depends on the output type of the scorer: - categorical: a list of DecisionChoice, or a list of labels (list[str]) for older versions. - discrete: a list of DecisionLevel. - boolean_probability: a DecisionBooleanCriteria, or None when the question has no criteria.
    - `id` string, uuid4, required
    - `organization_id` string, uuid4, required
    - `created_by` string, uuid4, nullable
    - `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
    - `created_at` string, date-time, required
  - `model_name` string, nullable
  - `num_judges` integer, nullable
  - `cot_enabled` boolean, nullable
  - `runtime` string, nullable: The runtime a code metric version runs on, such as python3.14. Null for a version saved before runtimes were recorded, which runs on the legacy Python 3.12 runtime.
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `chain_poll_template` ChainPollTemplate: Template for a chainpoll metric prompt, containing all the info necessary to send a chainpoll prompt.
    - `metric_system_prompt` string, nullable: System prompt for the metric.
    - `metric_description` string, nullable: Description of what the metric should do.
    - `value_field_name` string: Field name to look for in the chainpoll response, for the rating.
    - `explanation_field_name` string: Field name to look for in the chainpoll response, for the explanation.
    - `template` string, required: Chainpoll prompt template.
    - `metric_few_shot_examples` FewShotExample[]: Few-shot examples for the metric.
      - `generation_prompt_and_response` string, required
      - `evaluating_response` string, required
    - `response_schema` object, nullable: Response schema for the output
  - `scoreable_node_types` string[], nullable
  - `output_type` 'boolean' | 'categorical' | 'count' | 'discrete' | 'freeform' | 'percentage' | 'multilabel' | 'retrieved_chunk_list_boolean' | 'boolean_multilabel' | 'boolean_probability': Enumeration of output types.
  - `allowed_model` boolean, nullable
  - `created_by` string, uuid4, nullable

## Other responses

- `422`: Validation Error

## Changes

> 34 revisions in range; 2 not diffed.

- **2026-10-19** `0b20eade6391`: 1 info
  - added `#/components/schemas/DecisionBooleanCriteria, subschema #2` to the `decision_scorer/anyOf[subschema #1: DecisionScorerDB]/answer_options` response property `anyOf` list for the response status `200`
- **2026-10-09** `b58d68b6e6f7`: 8 warning, 1 info
  - added the new `context_adherence_vision_luna` enum value to the `finetuned_scorer/anyOf[subschema #1: FineTunedScorerResponse]/executor/anyOf[subschema #1: ScorerName]/` response property for the response status `200`
  - added the new `input_pii_vision_luna` enum value to the `finetuned_scorer/anyOf[subschema #1: FineTunedScorerResponse]/executor/anyOf[subschema #1: ScorerName]/` response property for the response status `200`
  - added the new `input_sexist_vision_luna` enum value to the `finetuned_scorer/anyOf[subschema #1: FineTunedScorerResponse]/executor/anyOf[subschema #1: ScorerName]/` response property for the response status `200`
  - added the new `input_toxicity_vision_luna` enum value to the `finetuned_scorer/anyOf[subschema #1: FineTunedScorerResponse]/executor/anyOf[subschema #1: ScorerName]/` response property for the response status `200`
  - …5 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/galileo/apis/galileo-api-server/changes/scorers/:scorer_id/version/preset/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)
