---
title: "List agent scorers"
method: GET
path: "/factory/{uid}/scorers"
tags: ["Factories", "Scorers"]
---

# List agent scorers

`GET /factory/{uid}/scorers`

## Request

- Base URL: `https://app.warp.dev/api/v1`
- URL: `https://app.warp.dev/api/v1/factory/{uid}/scorers`
- Auth: HTTP bearer

List the scorers in the factory named in the path, including scope agents
and aggregate scoring stats.

## Query parameters

- `start_date` string, date-time
- `end_date` string, date-time

## Headers

- `X-Warp-Team-Uid` string

## Response `200`

Scorers for the factory

- ListScorersResponse
  - `scorers` ScorerListItem[], required
    - `scorer_uid` string, uuid, required: Stable scorer UUID; new scorers use UUIDv4. Nil UUIDs are invalid.
    - `id` integer, required: Scorer identifier
    - `factory_uid` string, required: Public UID of the factory that owns the scorer
    - `name` string, required: Display name for the scorer
    - `description` string, required: Description of the scorer
    - `scoring_prompt` string, required: Instructions used to score the agent's runs
    - `allowed_classifications` ScorerClassification[], required
      - `value` string, required: Classification value returned by the scorer
      - `description` string, nullable: Optional free-text meaning of this classification, surfaced to the judge alongside the value. Omit or leave blank for a score-only label.
      - `score` number, double, required: Score this classification carries, from 0 to 1. A run passes when its scored label's score is greater than or equal to the scorer's threshold. A score of exactly 0 is valid, so this is not enforced with a "required" binding (which would reject the zero value); handlers validate its range explicitly instead.
    - `threshold` number, double, required: Score a run's classified label must meet or exceed to pass, from 0 to 1
    - `scope_mode` 'all_agents' | 'selected_agents' | 'selected_stages', required: Whether the scorer applies to every factory agent, selected agents, or selected blueprint stages
    - `stages` string[], required: Blueprint stage names the scorer applies to; empty unless scope_mode is selected_stages
    - `agents` ScorerScopeAgent[], required: Named agents in scope; empty unless scope_mode is selected_agents
      - `uid` string, required: Unique identifier of the agent
      - `name` string, required: Display name of the agent
      - `include_descendants` boolean, required: Whether scoring this agent's run includes its descendant subtree
    - `scorer_kind` 'user' | 'benchmark_task_correctness', required: Whether the scorer is user-defined or a platform-owned managed scorer. Read-only on responses; create input does not accept scorer_kind.
    - `sampling_rate` number, double, required: Percentage of the scorer's eligible runs that periodic scoring scores, to two decimal places. 0 stops automatic scoring.
    - `agent_config` ScorerAgentConfig, required: Scorer-specific execution overrides for its hidden judge agent. An omitted or null field inherits the corresponding Factory agent default. A non-empty value replaces that default. Empty secrets and mcp_servers collections explicitly clear the optional Factory defaults.
      - `default_runner_uid` string, nullable: Runner used by scorer judge runs. Omit or set null to inherit the Factory agent default.
      - `secrets` SecretRef[], nullable: Managed secrets attached to scorer judge runs. Omit or set null to inherit the Factory agent defaults; an empty array attaches none.
        - `name` string, required: Name of the managed secret.
      - `mcp_servers` object, nullable: MCP servers attached to scorer judge runs. Omit or set null to inherit the Factory agent defaults; an empty object attaches none.
    - `created_at` string, date-time, required: When the scorer was created
    - `updated_at` string, date-time, required: When the scorer was last updated
    - `result_count` integer, required: Number of live scores recorded for the scorer
    - `last_scored_at` string, date-time, nullable: When the scorer last recorded a score
    - `model_id` string, required: LLM model dispatched judge runs use to evaluate this scorer's rubric.
    - `self_improvement_enabled` boolean, required: Whether self-improvement is enabled for this scorer

## Other responses

- `400`: Invalid recent_outcomes_limit (not an integer in 1-100), or an invalid start_date/end_date pair: one given without the other, an unparseable RFC3339 timestamp, or start_date not strictly before end_date.
- `401`: Authentication required
- `404`: Factory not found or inaccessible
- `500`: Internal server error

## Changes

- **2026-11-04** `4b5d145669be`: 1 warning, 1 info
  - added the new `selected_stages` enum value to the `scorers/items/scope_mode` response property for the response status `200`
  - added the required property `scorers/items/stages` to the response with the `200` status
- **2026-10-21** `7ee3ba55debc`: 2 info
  - api tag `factory-scorers` added
  - api tag `agent` removed
- **2026-10-15** `f4630aae17ba`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/warp/apis/oz-agent-api/changes/factory/:uid/scorers/get.md)

---

[API](https://skmtc.dev/warp/apis/oz-agent-api.md) - [All operations](https://skmtc.dev/warp/apis/oz-agent-api/llms.txt) - [OpenAPI document](https://skmtc.dev/warp/apis/oz-agent-api/revisions/4b5d145669be?raw)
