# Search Runs

Launch stage: GA

`POST /api/2.0/mlflow/runs/search`

Searches for runs that satisfy expressions.

 Search expressions can use `mlflowMetric` and `mlflowParam` keys.

API scopes: mlflow

## Request body

- `experiment_ids` (array of string, optional)
  List of experiment IDs to search over.
- `filter` (string, optional)
  A filter expression over params, metrics, and tags, that allows returning a subset of
   runs. The syntax is a subset of SQL that supports ANDing together binary operations
   between a param, metric, or tag and a constant.
  
   Example: `metrics.rmse < 1 and params.model_class = 'LogisticRegression'`
  
   You can select columns with special characters (hyphen, space, period, etc.) by using double quotes:
   `metrics."model class" = 'LinearRegression' and tags."user-name" = 'Tomas'`
  
   Supported operators are `=`, `!=`, `>`, `>=`, `<`, and `<=`.
- `run_view_type` (string, optional)
  Whether to display only active, only deleted, or all runs.
   Defaults to only active runs.
  Possible values: `ACTIVE_ONLY`, `DELETED_ONLY`, `ALL`
  Default: `ACTIVE_ONLY`
- `max_results` (int32, optional)
  Maximum number of runs desired. Max threshold is 50000
  Default: `1000`
- `order_by` (array of string, optional)
  List of columns to be ordered by, including attributes, params, metrics, and tags with an
   optional `"DESC"` or `"ASC"` annotation, where `"ASC"` is the default.
   Example: `["params.input DESC", "metrics.alpha ASC", "metrics.rmse"]`.
   Tiebreaks are done by start_time `DESC` followed by `run_id` for runs with the same start time
   (and this is the default ordering criterion if order_by is not provided).
- `page_token` (string, optional)
  Token for the current page of runs.

## Returns

Returns a list of Run objects.

## Response

```json
{
  "runs": [
    {
      "info": {},
      "data": {},
      "inputs": {}
    }
  ],
  "next_page_token": "string"
}
```

