---
title: "Search evaluation runs with filters"
method: POST
path: "/v1/observability/evaluations_v2/{evaluation_slug}/runs/search"
tags: ["beta.observability.evaluations.runs"]
---

# Search evaluation runs with filters

`POST /v1/observability/evaluations_v2/{evaluation_slug}/runs/search`

## Request

- Base URL: `https://api.mistral.ai`
- URL: `https://api.mistral.ai/v1/observability/evaluations_v2/{evaluation_slug}/runs/search`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/mistral/apis/mistral-ai-api/docs/v1/observability/evaluations_v2/:evaluation_slug/runs/search/post.ts> (a function with typed inputs; its response is checked against the schema)

Search evaluation runs with filters

## Path parameters

- `evaluation_slug` string, required

## Query parameters

- `page_size` integer
- `page` integer

## Request body

- EvaluationRunFilterInput
  - `run_ids` string[], nullable
  - `evaluation_ids` string[], nullable
  - `creator_ids` string[], nullable
  - `project_ids` string[], nullable
  - `ownership` RunOwnershipFilter: OR-able group isolating the "runs I care about" default (created by me OR in my starred projects). Kept separate from the plain generic filters so it can OR internally while still AND-ing with everything else. The UI drives it via two sugar chips: "Created by me" writes `creator_ids`, and "Starred projects" sets `starred_by_me`. Dropping a chip clears its term and the OR collapses to the remaining one; dropping both leaves the group empty (no ownership scoping). `starred_by_me` is resolved server-side against the caller's favorites, so the client never has to page through projects to collect starred ids — and a caller with zero starred projects correctly matches no runs (rather than falling through to the whole workspace). `project_ids` remains for explicit, caller-supplied project scoping.
    - `combinator` 'and' | 'or'
    - `creator_ids` string[]
    - `project_ids` string[]
    - `starred_by_me` boolean
  - `tags` TagFilter
    - `combinator` 'and' | 'or'
    - `values` string[]
  - `score_filters` ScoreFilterGroup
    - `combinator` 'and' | 'or'
    - `filters` ScoreFilter[]
      - `evaluator_name` string, required
      - `metric` string, required
      - `operator` 'gt' | 'gte' | 'lt' | 'lte' | 'eq', required
      - `value` union, required
        - number
        - string
  - `goal_filters` GoalStatusFilterGroup
    - `combinator` 'and' | 'or'
    - `filters` GoalStatusFilter[]
      - `evaluator_name` string, nullable
      - `values` GoalStatus[], required
  - `system` SystemFilter
    - `name` SystemNameFilterGroup
      - `combinator` 'and' | 'or'
      - `filters` SystemNameFilter[]
        - `value` string, required
        - `operator` 'contains' | 'equals'
    - `params` SystemParamFilterGroup
      - `combinator` 'and' | 'or'
      - `filters` SystemParamFilter[]
        - `key` string, required
        - `operator` 'eq' | 'contains' | 'gt' | 'gte' | 'lt' | 'lte', required
        - `value` union, required
          - number
          - string
          - boolean
  - `metadata` MetadataFilterGroup
    - `combinator` 'and' | 'or'
    - `filters` MetadataFilter[]
      - `key` string, required
      - `operator` 'eq' | 'contains' | 'gt' | 'gte' | 'lt' | 'lte', required
      - `value` union, required
        - number
        - string
        - boolean

## Response `200`

Successful Response

- ListEvaluationRunsResponse
  - `runs` PaginatedResultEvaluationRunV2Response, required
    - `results` EvaluationRunV2Response[]
      - `id` string, uuid, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `deleted_at` string, date-time, nullable, required
      - `creator_id` string, uuid, required
      - `evaluation_id` string, uuid, required
      - `name` string, required
      - `description` string, nullable, required
      - `tags` string[], required
      - `metadata_` object, required
      - `num_generations` integer, required
      - `run_info` object, nullable
      - `status` string
      - `dataset_id` string, uuid, nullable
      - `evaluators` EvaluatorV2[], required
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time, required
        - `deleted_at` string, date-time, nullable, required
        - `name` string, required
        - `description` string, nullable, required
        - `tags` string[], required
        - `num_scores` integer, required
        - `goal` GoalSpec
          - `operator` string, nullable
          - `value` unknown
          - `min` number, nullable
          - `max` number, nullable
          - `values` JsonValue[], nullable
            - unknown
          - `metric` string, nullable
        - `aggregate_goal` GoalSpec
          - `operator` string, nullable
          - `value` unknown
          - `min` number, nullable
          - `max` number, nullable
          - `values` JsonValue[], nullable
            - unknown
          - `metric` string, nullable
        - `statistics` union[], nullable
          - union
            - SimpleNumericStatisticSpec: A scalar numeric reduction with no parameters (``avg``/``sum``/``min``/``max``/``std``/``count``).
              - …
            - PercentileStatisticSpec: The ``p``-th percentile (``0 <= p <= 100``), computed with the type-7 algorithm.
              - …
            - ClassificationStatisticSpec: A classification metric (``precision``/``recall``/``f1``) over ``(expected, predicted)`` pairs. The predicted label is the score ``value``; the expected label is read from the score ``metadata`` under ``expected_key`` (default ``"expected"``). Provide **exactly one** of ``positive_label`` (a binary metric scored against that one class) or ``average`` (a multi-class averaging scheme). ``labels`` pins the class universe so filtered views keep a stable, comparable denominator.
              - …
        - `weight` number
        - `direction` 'maximize' | 'minimize', nullable
        - `min_value` number, nullable
        - `max_value` number, nullable
      - `run_evaluators` EvaluatorV2[]
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time, required
        - `deleted_at` string, date-time, nullable, required
        - `name` string, required
        - `description` string, nullable, required
        - `tags` string[], required
        - `num_scores` integer, required
        - `goal` GoalSpec
          - `operator` string, nullable
          - `value` unknown
          - `min` number, nullable
          - `max` number, nullable
          - `values` JsonValue[], nullable
            - unknown
          - `metric` string, nullable
        - `aggregate_goal` GoalSpec
          - `operator` string, nullable
          - `value` unknown
          - `min` number, nullable
          - `max` number, nullable
          - `values` JsonValue[], nullable
            - unknown
          - `metric` string, nullable
        - `statistics` union[], nullable
          - union
            - SimpleNumericStatisticSpec: A scalar numeric reduction with no parameters (``avg``/``sum``/``min``/``max``/``std``/``count``).
              - …
            - PercentileStatisticSpec: The ``p``-th percentile (``0 <= p <= 100``), computed with the type-7 algorithm.
              - …
            - ClassificationStatisticSpec: A classification metric (``precision``/``recall``/``f1``) over ``(expected, predicted)`` pairs. The predicted label is the score ``value``; the expected label is read from the score ``metadata`` under ``expected_key`` (default ``"expected"``). Provide **exactly one** of ``positive_label`` (a binary metric scored against that one class) or ``average`` (a multi-class averaging scheme). ``labels`` pins the class universe so filtered views keep a stable, comparable denominator.
              - …
        - `weight` number
        - `direction` 'maximize' | 'minimize', nullable
        - `min_value` number, nullable
        - `max_value` number, nullable
      - `system` SystemV2
        - `id` string, uuid, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time, required
        - `deleted_at` string, date-time, nullable, required
        - `name` string, required
        - `params` object, required
      - `statistics` object
      - `goal_results` object
      - `passed` boolean, nullable
      - `run_scores` object
      - `optimization` RunOptimizationRef: Typed run→optimization back-ref, derived at read from the optimization_run link. Not stored on the run (single source of truth = optimization_run); lets a run row show its optimization (id + name) without an extra request per run.
        - `optimization_id` string, uuid, required
        - `name` string, required
    - `count` integer, required
    - `next` string, nullable
    - `previous` string, nullable

## Other responses

- `400`: Bad Request - Invalid request parameters or data
- `404`: Not Found - Resource does not exist
- `408`: Request Timeout - Operation timed out
- `409`: Conflict - Resource conflict
- `422`: Unprocessable Entity - Validation error

## Changes

- **2026-10-12** `6c349f3bdef6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/mistral/apis/mistral-ai-api/changes/v1/observability/evaluations_v2/:evaluation_slug/runs/search/post.md)

---

[API](https://skmtc.dev/mistral/apis/mistral-ai-api.md) - [All operations](https://skmtc.dev/mistral/apis/mistral-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mistral/apis/mistral-ai-api/revisions/08a585fb75bc?raw)
