# Saved view service

Saved Views allow users to store and reuse filter and table display configurations across assets, runs, checklists, and more. They can be favorited, archived, and shared across a workspace.

OpenAPI file: [`SavedViewService.json`](https://dev.nominal.io/api/_downloads/f93b9f4bab31eeff6cd6585924eb18ef/SavedViewService.json)

## Endpoints

### Create saved view

POST `/scout/saved-views/v1`

Creates a new saved view in the given workspace. If no workspace is specified, it is created in the user’s default workspace.

Body

`title` string required
:   ​

`symbol` [`Symbol`](https://dev.nominal.io/api/rest/saved-view-service.md#symbol)
:   ​

    **icon**

    Set `type` to `"icon"`.

    `icon` string
    :   Icon name (e.g. castle)

    **emoji**

    Set `type` to `"emoji"`.

    `emoji` string
    :   Emoji name (e.g. :castle:)

    **image**

    Set `type` to `"image"`.

    `image` string
    :   Image url (e.g. https://example.com/image.png)

`color` [`Color`](https://dev.nominal.io/api/rest/saved-view-service.md#color)
:   ​

    **hexCode**

    Set `type` to `"hexCode"`.

    `hexCode` string
    :   ​

`searchState` [`SearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#searchstate) required
:   ​

    **asset**

    Set `type` to `"asset"`.

    `asset` [`AssetSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsearchstate)
    :   ​

        Fields of `AssetSearchState`

        `sort` [`AssetSortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsortoptions)
        :   ​

        `groupBy` array of string
        :   ​

        `query` [`SearchAssetsQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchassetsquery) required
        :   ​

    **run**

    Set `type` to `"run"`.

    `run` [`RunSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#runsearchstate)
    :   ​

        Fields of `RunSearchState`

        `sort` [`run.api.SortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#run-api-sortoptions)
        :   ​

        `groupBy` array of string
        :   ​

        `query` [`api.SearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#api-searchquery) required
        :   ​

    **checklist**

    Set `type` to `"checklist"`.

    `checklist` [`ChecklistSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchstate)
    :   ​

        Fields of `ChecklistSearchState`

        `sort` [`checks.api.SortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#checks-api-sortoptions)
        :   ​

        `query` [`ChecklistSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchquery) required
        :   ​

    **workbook**

    Set `type` to `"workbook"`.

    `workbook` [`WorkbookSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#workbooksearchstate)
    :   ​

        Fields of `WorkbookSearchState`

        `sort` [`notebook.api.SortBy`](https://dev.nominal.io/api/rest/saved-view-service.md#notebook-api-sortby)
        :   ​

        `query` [`SearchNotebooksQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchnotebooksquery) required
        :   ​

    **template**

    Set `type` to `"template"`.

    `template` [`TemplateSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#templatesearchstate)
    :   ​

        Fields of `TemplateSearchState`

        `sort` [`template.api.SortBy`](https://dev.nominal.io/api/rest/saved-view-service.md#template-api-sortby)
        :   Sort for templates view. Uses BE-supplied default if empty.

        `query` [`SearchTemplatesQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchtemplatesquery) required
        :   ​

    **procedure**

    Set `type` to `"procedure"`.

    `procedure` [`ProcedureSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchstate)
    :   ​

        Fields of `ProcedureSearchState`

        `sort` [`ProcedureSortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresortoptions)
        :   ​

        `query` [`ProcedureSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchquery) required
        :   ​

    **procedureExecution**

    Set `type` to `"procedureExecution"`.

    `procedureExecution` [`ProcedureExecutionSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchstate)
    :   ​

        Fields of `ProcedureExecutionSearchState`

        `sort` [`ProcedureExecutionSortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsortoptions)
        :   ​

        `query` [`ProcedureExecutionSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchquery) required
        :   ​

`displayState` [`DisplayState`](https://dev.nominal.io/api/rest/saved-view-service.md#displaystate) required
:   ​

    **displayStateV1**

    Set `type` to `"displayStateV1"`.

    `displayStateV1` [`TableState`](https://dev.nominal.io/api/rest/saved-view-service.md#tablestate)
    :   ​

        Fields of `TableState`

        `columnVisibility` map of `ColumnId` to boolean
        :   ​

        `columnSizing` map of `ColumnId` to integer
        :   ​

        `columnOrder` array of string
        :   ​

        `columnPinning` [`ColumnPinningState`](https://dev.nominal.io/api/rest/saved-view-service.md#columnpinningstate)
        :   ​

        `metricColumns` [`MetricColumns`](https://dev.nominal.io/api/rest/saved-view-service.md#metriccolumns)
        :   ​

`workspaceRid` string (RID)
:   ​

Response

`savedView` [`SavedView`](https://dev.nominal.io/api/rest/saved-view-service.md#savedview)
:   ​

    Fields of `SavedView`

    `metadata` [`SavedViewMetadata`](https://dev.nominal.io/api/rest/saved-view-service.md#savedviewmetadata)
    :   ​

        Fields of `SavedViewMetadata`

        `rid` string (RID)
        :   ​

        `resourceType` [`ResourceType`](https://dev.nominal.io/api/rest/saved-view-service.md#resourcetype)
        :   ​

        `title` string
        :   ​

        `symbol` [`Symbol`](https://dev.nominal.io/api/rest/saved-view-service.md#symbol)
        :   ​

        `color` [`Color`](https://dev.nominal.io/api/rest/saved-view-service.md#color)
        :   ​

        `isArchived` boolean
        :   ​

        `createdAt` string (date-time)
        :   ​

        `createdBy` string (RID)
        :   ​

        `updatedAt` string (date-time)
        :   ​

    `searchState` [`SearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#searchstate)
    :   ​

        **asset**

        Set `type` to `"asset"`.

        `asset` [`AssetSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsearchstate)
        :   ​

        **run**

        Set `type` to `"run"`.

        `run` [`RunSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#runsearchstate)
        :   ​

        **checklist**

        Set `type` to `"checklist"`.

        `checklist` [`ChecklistSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchstate)
        :   ​

        **workbook**

        Set `type` to `"workbook"`.

        `workbook` [`WorkbookSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#workbooksearchstate)
        :   ​

        **template**

        Set `type` to `"template"`.

        `template` [`TemplateSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#templatesearchstate)
        :   ​

        **procedure**

        Set `type` to `"procedure"`.

        `procedure` [`ProcedureSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchstate)
        :   ​

        **procedureExecution**

        Set `type` to `"procedureExecution"`.

        `procedureExecution` [`ProcedureExecutionSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchstate)
        :   ​

    `displayState` [`DisplayState`](https://dev.nominal.io/api/rest/saved-view-service.md#displaystate)
    :   ​

        **displayStateV1**

        Set `type` to `"displayStateV1"`.

        `displayStateV1` [`TableState`](https://dev.nominal.io/api/rest/saved-view-service.md#tablestate)
        :   ​

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/saved-views/v1" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "title": "<title>",
  "searchState": {
    "type": "asset",
    "asset": {
      "query": {
        "type": "searchText",
        "searchText": "<search text>"
      }
    }
  },
  "displayState": {
    "type": "displayStateV1",
    "displayStateV1": {
      "columnVisibility": {
        "<key>": true
      },
      "columnSizing": {
        "<key>": 1
      },
      "columnOrder": [
        "<column id>"
      ],
      "columnPinning": {
        "left": [
          "<column id>"
        ],
        "right": [
          "<column id>"
        ]
      },
      "metricColumns": {
        "type": "asset",
        "asset": {
          "metricColumns": {
            "<key>": {
              "metadata": {
                "title": "<title>"
              },
              "timeRange": {
                "type": "mostRecentRun",
                "mostRecentRun": {}
              },
              "aggregation": "TOTAL_COUNT",
              "data": {
                "type": "event",
                "event": {
                  "type": "archived",
                  "archived": true
                }
              }
            }
          }
        }
      }
    }
  }
}'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/saved-views/v1",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "title": "<title>",
        "searchState": {
            "type": "asset",
            "asset": {"query": {"type": "searchText", "searchText": "<search text>"}},
        },
        "displayState": {
            "type": "displayStateV1",
            "displayStateV1": {
                "columnVisibility": {"<key>": True},
                "columnSizing": {"<key>": 1},
                "columnOrder": ["<column id>"],
                "columnPinning": {"left": ["<column id>"], "right": ["<column id>"]},
                "metricColumns": {
                    "type": "asset",
                    "asset": {
                        "metricColumns": {
                            "<key>": {
                                "metadata": {"title": "<title>"},
                                "timeRange": {
                                    "type": "mostRecentRun",
                                    "mostRecentRun": {},
                                },
                                "aggregation": "TOTAL_COUNT",
                                "data": {
                                    "type": "event",
                                    "event": {"type": "archived", "archived": True},
                                },
                            },
                        },
                    },
                },
            },
        },
    },
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/saved-views/v1",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "title": "<title>",
        "searchState": {
            "type": "asset",
            "asset": {"query": {"type": "searchText", "searchText": "<search text>"}},
        },
        "displayState": {
            "type": "displayStateV1",
            "displayStateV1": {
                "columnVisibility": {"<key>": True},
                "columnSizing": {"<key>": 1},
                "columnOrder": ["<column id>"],
                "columnPinning": {"left": ["<column id>"], "right": ["<column id>"]},
                "metricColumns": {
                    "type": "asset",
                    "asset": {
                        "metricColumns": {
                            "<key>": {
                                "metadata": {"title": "<title>"},
                                "timeRange": {
                                    "type": "mostRecentRun",
                                    "mostRecentRun": {},
                                },
                                "aggregation": "TOTAL_COUNT",
                                "data": {
                                    "type": "event",
                                    "event": {"type": "archived", "archived": True},
                                },
                            },
                        },
                    },
                },
            },
        },
    },
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/saved-views/v1",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "title": "<title>",
                "searchState": {
                    "type": "asset",
                    "asset": {
                        "query": {"type": "searchText", "searchText": "<search text>"},
                    },
                },
                "displayState": {
                    "type": "displayStateV1",
                    "displayStateV1": {
                        "columnVisibility": {"<key>": True},
                        "columnSizing": {"<key>": 1},
                        "columnOrder": ["<column id>"],
                        "columnPinning": {
                            "left": ["<column id>"],
                            "right": ["<column id>"],
                        },
                        "metricColumns": {
                            "type": "asset",
                            "asset": {
                                "metricColumns": {
                                    "<key>": {
                                        "metadata": {"title": "<title>"},
                                        "timeRange": {
                                            "type": "mostRecentRun",
                                            "mostRecentRun": {},
                                        },
                                        "aggregation": "TOTAL_COUNT",
                                        "data": {
                                            "type": "event",
                                            "event": {
                                                "type": "archived",
                                                "archived": True,
                                            },
                                        },
                                    },
                                },
                            },
                        },
                    },
                },
            },
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "savedView": {
    "metadata": {
      "rid": "<saved view rid>",
      "resourceType": "ASSET",
      "title": "<title>",
      "symbol": {
        "type": "icon",
        "icon": "<icon>"
      },
      "color": {
        "type": "hexCode",
        "hexCode": "<hex code>"
      },
      "isArchived": true,
      "createdAt": "2026-01-01T00:00:00Z",
      "createdBy": "<user rid>",
      "updatedAt": "2026-01-01T00:00:00Z"
    },
    "searchState": {
      "type": "asset",
      "asset": {
        "sort": {
          "isDescending": true,
          "field": "NAME",
          "sortKey": {
            "type": "field",
            "field": "NAME"
          }
        },
        "groupBy": [
          "<column id>"
        ],
        "query": {
          "type": "searchText",
          "searchText": "<search text>"
        }
      }
    },
    "displayState": {
      "type": "displayStateV1",
      "displayStateV1": {
        "columnVisibility": {
          "<key>": true
        },
        "columnSizing": {
          "<key>": 1
        },
        "columnOrder": [
          "<column id>"
        ],
        "columnPinning": {
          "left": [
            "<column id>"
          ],
          "right": [
            "<column id>"
          ]
        },
        "metricColumns": {
          "type": "asset",
          "asset": {
            "metricColumns": {
              "<key>": {
                "metadata": {
                  "title": "<title>",
                  "description": "<description>",
                  "symbol": {
                    "type": "icon",
                    "icon": "<icon>"
                  }
                },
                "timeRange": {
                  "type": "mostRecentRun",
                  "mostRecentRun": {}
                },
                "aggregation": "TOTAL_COUNT",
                "data": {
                  "type": "event",
                  "event": {
                    "type": "archived",
                    "archived": true
                  }
                },
                "style": {
                  "type": "RAW",
                  "value": [
                    {
                      "value": 1,
                      "color": "<color>",
                      "label": "<label>"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    }
  }
}
```

### Get saved view

GET `/scout/saved-views/v1/{savedViewRid}`

Fetches a saved view by RID. Throws NOT_FOUND if it does not exist.

Path parameters

`savedViewRid` string (RID) required
:   ​

Response

`savedView` [`SavedView`](https://dev.nominal.io/api/rest/saved-view-service.md#savedview)
:   ​

    Fields of `SavedView`

    `metadata` [`SavedViewMetadata`](https://dev.nominal.io/api/rest/saved-view-service.md#savedviewmetadata)
    :   ​

        Fields of `SavedViewMetadata`

        `rid` string (RID)
        :   ​

        `resourceType` [`ResourceType`](https://dev.nominal.io/api/rest/saved-view-service.md#resourcetype)
        :   ​

        `title` string
        :   ​

        `symbol` [`Symbol`](https://dev.nominal.io/api/rest/saved-view-service.md#symbol)
        :   ​

        `color` [`Color`](https://dev.nominal.io/api/rest/saved-view-service.md#color)
        :   ​

        `isArchived` boolean
        :   ​

        `createdAt` string (date-time)
        :   ​

        `createdBy` string (RID)
        :   ​

        `updatedAt` string (date-time)
        :   ​

    `searchState` [`SearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#searchstate)
    :   ​

        **asset**

        Set `type` to `"asset"`.

        `asset` [`AssetSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsearchstate)
        :   ​

        **run**

        Set `type` to `"run"`.

        `run` [`RunSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#runsearchstate)
        :   ​

        **checklist**

        Set `type` to `"checklist"`.

        `checklist` [`ChecklistSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchstate)
        :   ​

        **workbook**

        Set `type` to `"workbook"`.

        `workbook` [`WorkbookSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#workbooksearchstate)
        :   ​

        **template**

        Set `type` to `"template"`.

        `template` [`TemplateSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#templatesearchstate)
        :   ​

        **procedure**

        Set `type` to `"procedure"`.

        `procedure` [`ProcedureSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchstate)
        :   ​

        **procedureExecution**

        Set `type` to `"procedureExecution"`.

        `procedureExecution` [`ProcedureExecutionSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchstate)
        :   ​

    `displayState` [`DisplayState`](https://dev.nominal.io/api/rest/saved-view-service.md#displaystate)
    :   ​

        **displayStateV1**

        Set `type` to `"displayStateV1"`.

        `displayStateV1` [`TableState`](https://dev.nominal.io/api/rest/saved-view-service.md#tablestate)
        :   ​

Request

**curl**

```shell
curl "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>" \
  -H "Authorization: Bearer <api key>"
```

**requests**

```python
import requests

response = requests.get(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.get(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.get(
            "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>",
            headers={"Authorization": "Bearer <api key>"},
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "savedView": {
    "metadata": {
      "rid": "<saved view rid>",
      "resourceType": "ASSET",
      "title": "<title>",
      "symbol": {
        "type": "icon",
        "icon": "<icon>"
      },
      "color": {
        "type": "hexCode",
        "hexCode": "<hex code>"
      },
      "isArchived": true,
      "createdAt": "2026-01-01T00:00:00Z",
      "createdBy": "<user rid>",
      "updatedAt": "2026-01-01T00:00:00Z"
    },
    "searchState": {
      "type": "asset",
      "asset": {
        "sort": {
          "isDescending": true,
          "field": "NAME",
          "sortKey": {
            "type": "field",
            "field": "NAME"
          }
        },
        "groupBy": [
          "<column id>"
        ],
        "query": {
          "type": "searchText",
          "searchText": "<search text>"
        }
      }
    },
    "displayState": {
      "type": "displayStateV1",
      "displayStateV1": {
        "columnVisibility": {
          "<key>": true
        },
        "columnSizing": {
          "<key>": 1
        },
        "columnOrder": [
          "<column id>"
        ],
        "columnPinning": {
          "left": [
            "<column id>"
          ],
          "right": [
            "<column id>"
          ]
        },
        "metricColumns": {
          "type": "asset",
          "asset": {
            "metricColumns": {
              "<key>": {
                "metadata": {
                  "title": "<title>",
                  "description": "<description>",
                  "symbol": {
                    "type": "icon",
                    "icon": "<icon>"
                  }
                },
                "timeRange": {
                  "type": "mostRecentRun",
                  "mostRecentRun": {}
                },
                "aggregation": "TOTAL_COUNT",
                "data": {
                  "type": "event",
                  "event": {
                    "type": "archived",
                    "archived": true
                  }
                },
                "style": {
                  "type": "RAW",
                  "value": [
                    {
                      "value": 1,
                      "color": "<color>",
                      "label": "<label>"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    }
  }
}
```

### Update saved view

PUT `/scout/saved-views/v1/{savedViewRid}`

Updates metadata, search filters, or display settings for an existing saved view. Throws NOT_FOUND if the view doesn’t exist and INVALID_ARGUMENT if it is archived.

Path parameters

`savedViewRid` string (RID) required
:   ​

Body

`title` string
:   ​

`symbol` [`UpdateSymbol`](https://dev.nominal.io/api/rest/saved-view-service.md#updatesymbol)
:   ​

    **symbol**

    Set `type` to `"symbol"`.

    `symbol` [`Symbol`](https://dev.nominal.io/api/rest/saved-view-service.md#symbol)
    :   ​

        **icon**

        Set `type` to `"icon"`.

        `icon` string
        :   Icon name (e.g. castle)

        **emoji**

        Set `type` to `"emoji"`.

        `emoji` string
        :   Emoji name (e.g. :castle:)

        **image**

        Set `type` to `"image"`.

        `image` string
        :   Image url (e.g. https://example.com/image.png)

    **clearSymbol**

    Set `type` to `"clearSymbol"`.

    `clearSymbol` [`Empty`](https://dev.nominal.io/api/rest/saved-view-service.md#empty)
    :   ​

`color` [`UpdateColor`](https://dev.nominal.io/api/rest/saved-view-service.md#updatecolor)
:   ​

    **color**

    Set `type` to `"color"`.

    `color` [`Color`](https://dev.nominal.io/api/rest/saved-view-service.md#color)
    :   ​

        **hexCode**

        Set `type` to `"hexCode"`.

        `hexCode` string
        :   ​

    **clearColor**

    Set `type` to `"clearColor"`.

    `clearColor` [`Empty`](https://dev.nominal.io/api/rest/saved-view-service.md#empty)
    :   ​

`searchState` [`SearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#searchstate)
:   ​

    **asset**

    Set `type` to `"asset"`.

    `asset` [`AssetSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsearchstate)
    :   ​

        Fields of `AssetSearchState`

        `sort` [`AssetSortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsortoptions)
        :   ​

        `groupBy` array of string
        :   ​

        `query` [`SearchAssetsQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchassetsquery) required
        :   ​

    **run**

    Set `type` to `"run"`.

    `run` [`RunSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#runsearchstate)
    :   ​

        Fields of `RunSearchState`

        `sort` [`run.api.SortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#run-api-sortoptions)
        :   ​

        `groupBy` array of string
        :   ​

        `query` [`api.SearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#api-searchquery) required
        :   ​

    **checklist**

    Set `type` to `"checklist"`.

    `checklist` [`ChecklistSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchstate)
    :   ​

        Fields of `ChecklistSearchState`

        `sort` [`checks.api.SortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#checks-api-sortoptions)
        :   ​

        `query` [`ChecklistSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchquery) required
        :   ​

    **workbook**

    Set `type` to `"workbook"`.

    `workbook` [`WorkbookSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#workbooksearchstate)
    :   ​

        Fields of `WorkbookSearchState`

        `sort` [`notebook.api.SortBy`](https://dev.nominal.io/api/rest/saved-view-service.md#notebook-api-sortby)
        :   ​

        `query` [`SearchNotebooksQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchnotebooksquery) required
        :   ​

    **template**

    Set `type` to `"template"`.

    `template` [`TemplateSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#templatesearchstate)
    :   ​

        Fields of `TemplateSearchState`

        `sort` [`template.api.SortBy`](https://dev.nominal.io/api/rest/saved-view-service.md#template-api-sortby)
        :   Sort for templates view. Uses BE-supplied default if empty.

        `query` [`SearchTemplatesQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchtemplatesquery) required
        :   ​

    **procedure**

    Set `type` to `"procedure"`.

    `procedure` [`ProcedureSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchstate)
    :   ​

        Fields of `ProcedureSearchState`

        `sort` [`ProcedureSortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresortoptions)
        :   ​

        `query` [`ProcedureSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchquery) required
        :   ​

    **procedureExecution**

    Set `type` to `"procedureExecution"`.

    `procedureExecution` [`ProcedureExecutionSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchstate)
    :   ​

        Fields of `ProcedureExecutionSearchState`

        `sort` [`ProcedureExecutionSortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsortoptions)
        :   ​

        `query` [`ProcedureExecutionSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchquery) required
        :   ​

`displayState` [`DisplayState`](https://dev.nominal.io/api/rest/saved-view-service.md#displaystate)
:   ​

    **displayStateV1**

    Set `type` to `"displayStateV1"`.

    `displayStateV1` [`TableState`](https://dev.nominal.io/api/rest/saved-view-service.md#tablestate)
    :   ​

        Fields of `TableState`

        `columnVisibility` map of `ColumnId` to boolean
        :   ​

        `columnSizing` map of `ColumnId` to integer
        :   ​

        `columnOrder` array of string
        :   ​

        `columnPinning` [`ColumnPinningState`](https://dev.nominal.io/api/rest/saved-view-service.md#columnpinningstate)
        :   ​

        `metricColumns` [`MetricColumns`](https://dev.nominal.io/api/rest/saved-view-service.md#metriccolumns)
        :   ​

`index` integer
:   ​

Response

`savedView` [`SavedView`](https://dev.nominal.io/api/rest/saved-view-service.md#savedview)
:   ​

    Fields of `SavedView`

    `metadata` [`SavedViewMetadata`](https://dev.nominal.io/api/rest/saved-view-service.md#savedviewmetadata)
    :   ​

        Fields of `SavedViewMetadata`

        `rid` string (RID)
        :   ​

        `resourceType` [`ResourceType`](https://dev.nominal.io/api/rest/saved-view-service.md#resourcetype)
        :   ​

        `title` string
        :   ​

        `symbol` [`Symbol`](https://dev.nominal.io/api/rest/saved-view-service.md#symbol)
        :   ​

        `color` [`Color`](https://dev.nominal.io/api/rest/saved-view-service.md#color)
        :   ​

        `isArchived` boolean
        :   ​

        `createdAt` string (date-time)
        :   ​

        `createdBy` string (RID)
        :   ​

        `updatedAt` string (date-time)
        :   ​

    `searchState` [`SearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#searchstate)
    :   ​

        **asset**

        Set `type` to `"asset"`.

        `asset` [`AssetSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsearchstate)
        :   ​

        **run**

        Set `type` to `"run"`.

        `run` [`RunSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#runsearchstate)
        :   ​

        **checklist**

        Set `type` to `"checklist"`.

        `checklist` [`ChecklistSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchstate)
        :   ​

        **workbook**

        Set `type` to `"workbook"`.

        `workbook` [`WorkbookSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#workbooksearchstate)
        :   ​

        **template**

        Set `type` to `"template"`.

        `template` [`TemplateSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#templatesearchstate)
        :   ​

        **procedure**

        Set `type` to `"procedure"`.

        `procedure` [`ProcedureSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchstate)
        :   ​

        **procedureExecution**

        Set `type` to `"procedureExecution"`.

        `procedureExecution` [`ProcedureExecutionSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchstate)
        :   ​

    `displayState` [`DisplayState`](https://dev.nominal.io/api/rest/saved-view-service.md#displaystate)
    :   ​

        **displayStateV1**

        Set `type` to `"displayStateV1"`.

        `displayStateV1` [`TableState`](https://dev.nominal.io/api/rest/saved-view-service.md#tablestate)
        :   ​

Request

**curl**

```shell
curl -X PUT "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "title": "<title>",
  "symbol": {
    "type": "symbol",
    "symbol": {
      "type": "icon",
      "icon": "<icon>"
    }
  },
  "color": {
    "type": "color",
    "color": {
      "type": "hexCode",
      "hexCode": "<hex code>"
    }
  },
  "searchState": {
    "type": "asset",
    "asset": {
      "query": {
        "type": "searchText",
        "searchText": "<search text>"
      }
    }
  },
  "displayState": {
    "type": "displayStateV1",
    "displayStateV1": {
      "columnVisibility": {
        "<key>": true
      },
      "columnSizing": {
        "<key>": 1
      },
      "columnOrder": [
        "<column id>"
      ],
      "columnPinning": {
        "left": [
          "<column id>"
        ],
        "right": [
          "<column id>"
        ]
      },
      "metricColumns": {
        "type": "asset",
        "asset": {
          "metricColumns": {
            "<key>": {
              "metadata": {
                "title": "<title>"
              },
              "timeRange": {
                "type": "mostRecentRun",
                "mostRecentRun": {}
              },
              "aggregation": "TOTAL_COUNT",
              "data": {
                "type": "event",
                "event": {
                  "type": "archived",
                  "archived": true
                }
              }
            }
          }
        }
      }
    }
  },
  "index": 1
}'
```

**requests**

```python
import requests

response = requests.put(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "title": "<title>",
        "symbol": {"type": "symbol", "symbol": {"type": "icon", "icon": "<icon>"}},
        "color": {
            "type": "color",
            "color": {"type": "hexCode", "hexCode": "<hex code>"},
        },
        "searchState": {
            "type": "asset",
            "asset": {"query": {"type": "searchText", "searchText": "<search text>"}},
        },
        "displayState": {
            "type": "displayStateV1",
            "displayStateV1": {
                "columnVisibility": {"<key>": True},
                "columnSizing": {"<key>": 1},
                "columnOrder": ["<column id>"],
                "columnPinning": {"left": ["<column id>"], "right": ["<column id>"]},
                "metricColumns": {
                    "type": "asset",
                    "asset": {
                        "metricColumns": {
                            "<key>": {
                                "metadata": {"title": "<title>"},
                                "timeRange": {
                                    "type": "mostRecentRun",
                                    "mostRecentRun": {},
                                },
                                "aggregation": "TOTAL_COUNT",
                                "data": {
                                    "type": "event",
                                    "event": {"type": "archived", "archived": True},
                                },
                            },
                        },
                    },
                },
            },
        },
        "index": 1,
    },
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.put(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "title": "<title>",
        "symbol": {"type": "symbol", "symbol": {"type": "icon", "icon": "<icon>"}},
        "color": {
            "type": "color",
            "color": {"type": "hexCode", "hexCode": "<hex code>"},
        },
        "searchState": {
            "type": "asset",
            "asset": {"query": {"type": "searchText", "searchText": "<search text>"}},
        },
        "displayState": {
            "type": "displayStateV1",
            "displayStateV1": {
                "columnVisibility": {"<key>": True},
                "columnSizing": {"<key>": 1},
                "columnOrder": ["<column id>"],
                "columnPinning": {"left": ["<column id>"], "right": ["<column id>"]},
                "metricColumns": {
                    "type": "asset",
                    "asset": {
                        "metricColumns": {
                            "<key>": {
                                "metadata": {"title": "<title>"},
                                "timeRange": {
                                    "type": "mostRecentRun",
                                    "mostRecentRun": {},
                                },
                                "aggregation": "TOTAL_COUNT",
                                "data": {
                                    "type": "event",
                                    "event": {"type": "archived", "archived": True},
                                },
                            },
                        },
                    },
                },
            },
        },
        "index": 1,
    },
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.put(
            "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "title": "<title>",
                "symbol": {
                    "type": "symbol",
                    "symbol": {"type": "icon", "icon": "<icon>"},
                },
                "color": {
                    "type": "color",
                    "color": {"type": "hexCode", "hexCode": "<hex code>"},
                },
                "searchState": {
                    "type": "asset",
                    "asset": {
                        "query": {"type": "searchText", "searchText": "<search text>"},
                    },
                },
                "displayState": {
                    "type": "displayStateV1",
                    "displayStateV1": {
                        "columnVisibility": {"<key>": True},
                        "columnSizing": {"<key>": 1},
                        "columnOrder": ["<column id>"],
                        "columnPinning": {
                            "left": ["<column id>"],
                            "right": ["<column id>"],
                        },
                        "metricColumns": {
                            "type": "asset",
                            "asset": {
                                "metricColumns": {
                                    "<key>": {
                                        "metadata": {"title": "<title>"},
                                        "timeRange": {
                                            "type": "mostRecentRun",
                                            "mostRecentRun": {},
                                        },
                                        "aggregation": "TOTAL_COUNT",
                                        "data": {
                                            "type": "event",
                                            "event": {
                                                "type": "archived",
                                                "archived": True,
                                            },
                                        },
                                    },
                                },
                            },
                        },
                    },
                },
                "index": 1,
            },
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "savedView": {
    "metadata": {
      "rid": "<saved view rid>",
      "resourceType": "ASSET",
      "title": "<title>",
      "symbol": {
        "type": "icon",
        "icon": "<icon>"
      },
      "color": {
        "type": "hexCode",
        "hexCode": "<hex code>"
      },
      "isArchived": true,
      "createdAt": "2026-01-01T00:00:00Z",
      "createdBy": "<user rid>",
      "updatedAt": "2026-01-01T00:00:00Z"
    },
    "searchState": {
      "type": "asset",
      "asset": {
        "sort": {
          "isDescending": true,
          "field": "NAME",
          "sortKey": {
            "type": "field",
            "field": "NAME"
          }
        },
        "groupBy": [
          "<column id>"
        ],
        "query": {
          "type": "searchText",
          "searchText": "<search text>"
        }
      }
    },
    "displayState": {
      "type": "displayStateV1",
      "displayStateV1": {
        "columnVisibility": {
          "<key>": true
        },
        "columnSizing": {
          "<key>": 1
        },
        "columnOrder": [
          "<column id>"
        ],
        "columnPinning": {
          "left": [
            "<column id>"
          ],
          "right": [
            "<column id>"
          ]
        },
        "metricColumns": {
          "type": "asset",
          "asset": {
            "metricColumns": {
              "<key>": {
                "metadata": {
                  "title": "<title>",
                  "description": "<description>",
                  "symbol": {
                    "type": "icon",
                    "icon": "<icon>"
                  }
                },
                "timeRange": {
                  "type": "mostRecentRun",
                  "mostRecentRun": {}
                },
                "aggregation": "TOTAL_COUNT",
                "data": {
                  "type": "event",
                  "event": {
                    "type": "archived",
                    "archived": true
                  }
                },
                "style": {
                  "type": "RAW",
                  "value": [
                    {
                      "value": 1,
                      "color": "<color>",
                      "label": "<label>"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    }
  }
}
```

### Batch get saved views

POST `/scout/saved-views/v1/batch-get`

Retrieves multiple saved views. Any invalid or unknown RIDs are omitted from the response.

Body

The body is an array of string (RID).

Response

`savedViews` array of [`SavedView`](https://dev.nominal.io/api/rest/saved-view-service.md#savedview)
:   ​

    Fields of `SavedView`

    `metadata` [`SavedViewMetadata`](https://dev.nominal.io/api/rest/saved-view-service.md#savedviewmetadata)
    :   ​

        Fields of `SavedViewMetadata`

        `rid` string (RID)
        :   ​

        `resourceType` [`ResourceType`](https://dev.nominal.io/api/rest/saved-view-service.md#resourcetype)
        :   ​

        `title` string
        :   ​

        `symbol` [`Symbol`](https://dev.nominal.io/api/rest/saved-view-service.md#symbol)
        :   ​

        `color` [`Color`](https://dev.nominal.io/api/rest/saved-view-service.md#color)
        :   ​

        `isArchived` boolean
        :   ​

        `createdAt` string (date-time)
        :   ​

        `createdBy` string (RID)
        :   ​

        `updatedAt` string (date-time)
        :   ​

    `searchState` [`SearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#searchstate)
    :   ​

        **asset**

        Set `type` to `"asset"`.

        `asset` [`AssetSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsearchstate)
        :   ​

        **run**

        Set `type` to `"run"`.

        `run` [`RunSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#runsearchstate)
        :   ​

        **checklist**

        Set `type` to `"checklist"`.

        `checklist` [`ChecklistSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchstate)
        :   ​

        **workbook**

        Set `type` to `"workbook"`.

        `workbook` [`WorkbookSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#workbooksearchstate)
        :   ​

        **template**

        Set `type` to `"template"`.

        `template` [`TemplateSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#templatesearchstate)
        :   ​

        **procedure**

        Set `type` to `"procedure"`.

        `procedure` [`ProcedureSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchstate)
        :   ​

        **procedureExecution**

        Set `type` to `"procedureExecution"`.

        `procedureExecution` [`ProcedureExecutionSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchstate)
        :   ​

    `displayState` [`DisplayState`](https://dev.nominal.io/api/rest/saved-view-service.md#displaystate)
    :   ​

        **displayStateV1**

        Set `type` to `"displayStateV1"`.

        `displayStateV1` [`TableState`](https://dev.nominal.io/api/rest/saved-view-service.md#tablestate)
        :   ​

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/saved-views/v1/batch-get" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '[
  "<saved view rid>"
]'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/batch-get",
    headers={"Authorization": "Bearer <api key>"},
    json=["<saved view rid>"],
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/batch-get",
    headers={"Authorization": "Bearer <api key>"},
    json=["<saved view rid>"],
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/saved-views/v1/batch-get",
            headers={"Authorization": "Bearer <api key>"},
            json=["<saved view rid>"],
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "savedViews": [
    {
      "metadata": {
        "rid": "<saved view rid>",
        "resourceType": "ASSET",
        "title": "<title>",
        "symbol": {
          "type": "icon",
          "icon": "<icon>"
        },
        "color": {
          "type": "hexCode",
          "hexCode": "<hex code>"
        },
        "isArchived": true,
        "createdAt": "2026-01-01T00:00:00Z",
        "createdBy": "<user rid>",
        "updatedAt": "2026-01-01T00:00:00Z"
      },
      "searchState": {
        "type": "asset",
        "asset": {
          "sort": {
            "isDescending": true,
            "field": "NAME",
            "sortKey": {
              "type": "field",
              "field": "NAME"
            }
          },
          "groupBy": [
            "<column id>"
          ],
          "query": {
            "type": "searchText",
            "searchText": "<search text>"
          }
        }
      },
      "displayState": {
        "type": "displayStateV1",
        "displayStateV1": {
          "columnVisibility": {
            "<key>": true
          },
          "columnSizing": {
            "<key>": 1
          },
          "columnOrder": [
            "<column id>"
          ],
          "columnPinning": {
            "left": [
              "<column id>"
            ],
            "right": [
              "<column id>"
            ]
          },
          "metricColumns": {
            "type": "asset",
            "asset": {
              "metricColumns": {
                "<key>": {
                  "metadata": {
                    "title": "<title>",
                    "description": "<description>",
                    "symbol": {
                      "type": "icon",
                      "icon": "<icon>"
                    }
                  },
                  "timeRange": {
                    "type": "mostRecentRun",
                    "mostRecentRun": {}
                  },
                  "aggregation": "TOTAL_COUNT",
                  "data": {
                    "type": "event",
                    "event": {
                      "type": "archived",
                      "archived": true
                    }
                  },
                  "style": {
                    "type": "RAW",
                    "value": [
                      {
                        "value": 1,
                        "color": "<color>",
                        "label": "<label>"
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    }
  ]
}
```

### Search saved views

POST `/scout/saved-views/v1/search`

Searches for saved views using a nested query expression. Supports pagination.

Body

`sort` [`SavedViewSortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#savedviewsortoptions) required
:   ​

    Fields of `SavedViewSortOptions`

    `isDescending` boolean required
    :   ​

    `sortKey` [`savedviews.api.SortKey`](https://dev.nominal.io/api/rest/saved-view-service.md#savedviews-api-sortkey) required
    :   Field to sort by.

        **field**

        Set `type` to `"field"`.

        `field` [`savedviews.api.SortField`](https://dev.nominal.io/api/rest/saved-view-service.md#savedviews-api-sortfield)
        :   ​

            Values of `savedviews.api.SortField`

            `TITLE`
            :   ​

            `CREATED_AT`
            :   ​

            `USER_DEFINED`
            :   ​

`pageSize` integer
:   Defaults to 100. Will throw if larger than 1_000.

`nextPageToken` string
:   ​

`query` [`SearchSavedViewsQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchsavedviewsquery) required
:   ​

    **and**

    Set `type` to `"and"`.

    `and` [`SearchSavedViewsQueryList`](https://dev.nominal.io/api/rest/saved-view-service.md#searchsavedviewsquerylist)
    :   ​

        Fields of `SearchSavedViewsQueryList`

        `queries` array of [`SearchSavedViewsQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchsavedviewsquery)
        :   ​

    **or**

    Set `type` to `"or"`.

    `or` [`SearchSavedViewsQueryList`](https://dev.nominal.io/api/rest/saved-view-service.md#searchsavedviewsquerylist)
    :   ​

    **not**

    Set `type` to `"not"`.

    `not` [`SearchSavedViewsQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchsavedviewsquery)
    :   ​

    **titleExactSubstringSearch**

    Set `type` to `"titleExactSubstringSearch"`.

    `titleExactSubstringSearch` string
    :   ​

    **resourceType**

    Set `type` to `"resourceType"`.

    `resourceType` [`ResourceType`](https://dev.nominal.io/api/rest/saved-view-service.md#resourcetype)
    :   ​

        Values of `ResourceType`

        `ASSET`
        :   ​

        `RUN`
        :   ​

        `WORKBOOK`
        :   ​

        `CHECKLIST`
        :   ​

        `TEMPLATE`
        :   ​

        `PROCEDURE`
        :   ​

        `PROCEDURE_EXECUTION`
        :   ​

    **workspace**

    Set `type` to `"workspace"`.

    `workspace` string (RID)
    :   ​

`archivedStatuses` array of [`ArchivedStatus`](https://dev.nominal.io/api/rest/saved-view-service.md#archivedstatus)
:   Default search status is NOT_ARCHIVED if none are provided. Allows for including archived assets in search.

    Values of `ArchivedStatus`

    `NOT_ARCHIVED`
    :   ​

    `ARCHIVED`
    :   ​

Response

`savedViews` array of [`SavedViewMetadata`](https://dev.nominal.io/api/rest/saved-view-service.md#savedviewmetadata)
:   ​

    Fields of `SavedViewMetadata`

    `rid` string (RID)
    :   ​

    `resourceType` [`ResourceType`](https://dev.nominal.io/api/rest/saved-view-service.md#resourcetype)
    :   ​

        Values of `ResourceType`

        `ASSET`
        :   ​

        `RUN`
        :   ​

        `WORKBOOK`
        :   ​

        `CHECKLIST`
        :   ​

        `TEMPLATE`
        :   ​

        `PROCEDURE`
        :   ​

        `PROCEDURE_EXECUTION`
        :   ​

    `title` string
    :   ​

    `symbol` [`Symbol`](https://dev.nominal.io/api/rest/saved-view-service.md#symbol)
    :   ​

        **icon**

        Set `type` to `"icon"`.

        `icon` string
        :   Icon name (e.g. castle)

        **emoji**

        Set `type` to `"emoji"`.

        `emoji` string
        :   Emoji name (e.g. :castle:)

        **image**

        Set `type` to `"image"`.

        `image` string
        :   Image url (e.g. https://example.com/image.png)

    `color` [`Color`](https://dev.nominal.io/api/rest/saved-view-service.md#color)
    :   ​

        **hexCode**

        Set `type` to `"hexCode"`.

        `hexCode` string
        :   ​

    `isArchived` boolean
    :   ​

    `createdAt` string (date-time)
    :   ​

    `createdBy` string (RID)
    :   ​

    `updatedAt` string (date-time)
    :   ​

`nextPageToken` string
:   ​

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/saved-views/v1/search" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "sort": {
    "isDescending": true,
    "sortKey": {
      "type": "field",
      "field": "TITLE"
    }
  },
  "query": {
    "type": "and",
    "and": {
      "queries": []
    }
  }
}'
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/search",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "sort": {"isDescending": True, "sortKey": {"type": "field", "field": "TITLE"}},
        "query": {"type": "and", "and": {"queries": []}},
    },
)
response.raise_for_status()
print(response.json())
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/search",
    headers={"Authorization": "Bearer <api key>"},
    json={
        "sort": {"isDescending": True, "sortKey": {"type": "field", "field": "TITLE"}},
        "query": {"type": "and", "and": {"queries": []}},
    },
)
response.raise_for_status()
print(response.json())
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/saved-views/v1/search",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "sort": {
                    "isDescending": True,
                    "sortKey": {"type": "field", "field": "TITLE"},
                },
                "query": {"type": "and", "and": {"queries": []}},
            },
        ) as response:
            response.raise_for_status()
            print(await response.json())

asyncio.run(main())
```

Response: `200`

```json
{
  "savedViews": [
    {
      "rid": "<saved view rid>",
      "resourceType": "ASSET",
      "title": "<title>",
      "symbol": {
        "type": "icon",
        "icon": "<icon>"
      },
      "color": {
        "type": "hexCode",
        "hexCode": "<hex code>"
      },
      "isArchived": true,
      "createdAt": "2026-01-01T00:00:00Z",
      "createdBy": "<user rid>",
      "updatedAt": "2026-01-01T00:00:00Z"
    }
  ],
  "nextPageToken": "<token>"
}
```

### Archive saved view

POST `/scout/saved-views/v1/{savedViewRid}/archive`

Archives the specified saved view. Archived views are hidden from search.

Path parameters

`savedViewRid` string (RID) required
:   ​

Response

No content (HTTP 204).

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>/archive" \
  -H "Authorization: Bearer <api key>"
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>/archive",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>/archive",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>/archive",
            headers={"Authorization": "Bearer <api key>"},
        ) as response:
            response.raise_for_status()

asyncio.run(main())
```

Response: `204`

No content.

### Unarchive saved view

POST `/scout/saved-views/v1/{savedViewRid}/unarchive`

Restores archived saved view, making them discoverable in search again.

Path parameters

`savedViewRid` string (RID) required
:   ​

Response

No content (HTTP 204).

Request

**curl**

```shell
curl -X POST "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>/unarchive" \
  -H "Authorization: Bearer <api key>"
```

**requests**

```python
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>/unarchive",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
```

**httpx**

```python
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>/unarchive",
    headers={"Authorization": "Bearer <api key>"},
)
response.raise_for_status()
```

**aiohttp**

```python
import asyncio

import aiohttp

async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/scout/saved-views/v1/<saved view rid>/unarchive",
            headers={"Authorization": "Bearer <api key>"},
        ) as response:
            response.raise_for_status()

asyncio.run(main())
```

Response: `204`

No content.

## Errors

[Errors](https://dev.nominal.io/api/legacy.md#errors) shows how these errors are sent.

Each error’s `errorName` is `SavedView:` followed by its name below.

| Status | Name | Notes |
| --- | --- | --- |
| 400 | `CannotChangeSavedViewResourceType` |  |
| 400 | `CannotUpdateArchivedSavedView` |  |
| 400 | `InvalidIndex` |  |
| 400 | `TooManyActiveSavedViews` |  |
| 404 | `SavedViewNotFoundError` |  |
| 404 | `SavedViewsNotFoundError` |  |
| 500 | `ResourceTypeAndSearchStateMismatch` |  |

## Types

### api.SearchQuery

Set `type` to the name of one of the other fields, and set only that field.

`startTimeInclusive` [`UtcTimestamp`](https://dev.nominal.io/api/rest/saved-view-service.md#utctimestamp) deprecated
:   **Deprecated:** Use startTime instead

`startTime` [`TimeframeFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#timeframefilter)
:   ​

`endTimeInclusive` [`UtcTimestamp`](https://dev.nominal.io/api/rest/saved-view-service.md#utctimestamp) deprecated
:   **Deprecated:** Use endTime instead

`endTime` [`TimeframeFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#timeframefilter)
:   ​

`timeRange` [`TimeRangeFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#timerangefilter)
:   ​

`createdAt` [`TimeframeFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#timeframefilter)
:   ​

`exactMatch` string
:   Performs case insensitive exact substring match search on the title.

`searchText` string
:   ​

`asset` string (RID) deprecated
:   **Deprecated:** Use getRunsByAsset rather than text-based search

`assets` [`run.api.AssetsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#run-api-assetsfilter)
:   ​

`isSingleAsset` boolean
:   Search for either only single-asset runs (true), or only multi-asset runs (false).

`label` string deprecated
:   **Deprecated:** use labels instead

`labels` [`LabelsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#labelsfilter)
:   ​

`property` [`Property`](https://dev.nominal.io/api/rest/saved-view-service.md#property) deprecated
:   **Deprecated:** use properties

`propertyKey` string
:   Matches runs that have a property with this key, regardless of value.

`properties` [`PropertiesFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#propertiesfilter)
:   ​

`numericProperty` [`NumericPropertyPredicate`](https://dev.nominal.io/api/rest/saved-view-service.md#numericpropertypredicate)
:   Matches runs using a numeric property comparison.

`numericPropertyRange` [`NumericPropertyRangePredicate`](https://dev.nominal.io/api/rest/saved-view-service.md#numericpropertyrangepredicate)
:   Matches runs using an inclusive numeric property range.

`dataSourceSeriesTag` [`DataSourceSeriesTag`](https://dev.nominal.io/api/rest/saved-view-service.md#datasourceseriestag)
:   ​

`dataSourceRefName` string
:   ​

`dataSource` [`DataSource`](https://dev.nominal.io/api/rest/saved-view-service.md#datasource) deprecated
:   **Deprecated:** Use dataSourceRefName, rather than searching directly by DataSource.

`runNumber` integer (int64)
:   ​

`runPrefix` string
:   ​

`checkAlertStatesFilter` [`CheckAlertStatesFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#checkalertstatesfilter)
:   Search for runs where its aggregated check alert satisfy a given operator and threshold.

`archived` boolean
:   ​

`and` array of [`api.SearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#api-searchquery)
:   ​

`or` array of [`api.SearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#api-searchquery)
:   ​

`not` [`api.SearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#api-searchquery)
:   ​

`workspace` string (RID)
:   ​

`lockStatus` [`LockStatus`](https://dev.nominal.io/api/rest/saved-view-service.md#lockstatus)
:   ​

`datasetRids` array of string (RID)
:   Applied as a post-filter to the page returned by unified search. A run matches when any requested dataset is in its data scopes. At most 10 dataset RIDs may be provided.

### ArchivedStatus

`NOT_ARCHIVED`
:   ​

`ARCHIVED`
:   ​

### asset.api.SortKey

Set `type` to the name of one of the other fields, and set only that field.

`field` [`AssetSortField`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsortfield)
:   ​

`property` [`asset.api.SortProperty`](https://dev.nominal.io/api/rest/saved-view-service.md#asset-api-sortproperty)
:   ​

`numericProperty` [`asset.api.SortProperty`](https://dev.nominal.io/api/rest/saved-view-service.md#asset-api-sortproperty)
:   Sort by a numeric property value. String-valued and missing properties are null and always sort last.

### asset.api.SortProperty

`name` string required
:   ​

### AssetMetricColumn

`metadata` [`MetricColumnMetadata`](https://dev.nominal.io/api/rest/saved-view-service.md#metriccolumnmetadata) required
:   ​

`timeRange` [`AssetMetricColumnTimeRange`](https://dev.nominal.io/api/rest/saved-view-service.md#assetmetriccolumntimerange) required
:   ​

`aggregation` [`MetricColumnAggregation`](https://dev.nominal.io/api/rest/saved-view-service.md#metriccolumnaggregation) required
:   ​

`data` [`MetricColumnData`](https://dev.nominal.io/api/rest/saved-view-service.md#metriccolumndata) required
:   ​

`style` [`MetricColumnStyle`](https://dev.nominal.io/api/rest/saved-view-service.md#metriccolumnstyle)
:   ​

### AssetMetricColumns

`metricColumns` map of `ColumnId` to [`AssetMetricColumn`](https://dev.nominal.io/api/rest/saved-view-service.md#assetmetriccolumn)
:   ​

### AssetMetricColumnTimeRange

Set `type` to the name of one of the other fields, and set only that field.

`mostRecentRun` [`MostRecentRun`](https://dev.nominal.io/api/rest/saved-view-service.md#mostrecentrun)
:   ​

`custom` [`CustomTimeframeFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#customtimeframefilter)
:   ​

`preset` [`PresetTimeframeFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#presettimeframefilter)
:   ​

### AssetSearchState

`sort` [`AssetSortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsortoptions)
:   ​

`groupBy` array of string
:   ​

`query` [`SearchAssetsQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchassetsquery) required
:   ​

### AssetsFilterOperator

`OR`
:   ​

`AND`
:   ​

### AssetSortField

`NAME`
:   ​

`CREATED_AT`
:   ​

`MOST_RECENT_RUN_START`
:   ​

### AssetSortOptions

`isDescending` boolean required
:   ​

`field` [`AssetSortField`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsortfield) deprecated
:   **Deprecated:** use SortKey with SortField union type instead

`sortKey` [`asset.api.SortKey`](https://dev.nominal.io/api/rest/saved-view-service.md#asset-api-sortkey)
:   Field to sort by. Includes both field and property-based sorting. Must be supplied if field is not provided separately.

### AssetTypesFilter

Matches an asset when any of its types is in assetTypes.

`assetTypes` array of string (RID)
:   ​

### AssigneesFilter

`operator` [`SetOperator`](https://dev.nominal.io/api/rest/saved-view-service.md#setoperator) required
:   ​

`assignees` array of string (RID)
:   ​

### CheckAlertState

Set `type` to the name of one of the other fields, and set only that field.

`pendingReview` [`PendingReviewAlertState`](https://dev.nominal.io/api/rest/saved-view-service.md#pendingreviewalertstate)
:   ​

`closedWithFurtherAction` [`ClosedWithFurtherActionAlertState`](https://dev.nominal.io/api/rest/saved-view-service.md#closedwithfurtheractionalertstate)
:   ​

`closedWithIgnore` [`ClosedWithIgnoreAlertState`](https://dev.nominal.io/api/rest/saved-view-service.md#closedwithignorealertstate)
:   ​

### CheckAlertStatesFilter

`checkAlertState` [`CheckAlertState`](https://dev.nominal.io/api/rest/saved-view-service.md#checkalertstate) required
:   ​

`operator` [`Operator`](https://dev.nominal.io/api/rest/saved-view-service.md#operator) required
:   ​

`threshold` integer (int64) required
:   ​

### ChecklistSearchQuery

Set `type` to the name of one of the other fields, and set only that field.

`and` array of [`ChecklistSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchquery)
:   ​

`or` array of [`ChecklistSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchquery)
:   ​

`searchText` string
:   ​

`label` string deprecated
:   **Deprecated:** use labels instead

`labels` [`LabelsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#labelsfilter)
:   ​

`property` [`Property`](https://dev.nominal.io/api/rest/saved-view-service.md#property) deprecated
:   **Deprecated:** use properties

`properties` [`PropertiesFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#propertiesfilter)
:   ​

`authorRid` string (RID)
:   ​

`assigneeRid` string (RID)
:   ​

`isPublished` boolean
:   ​

`not` [`ChecklistSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchquery)
:   ​

`workspace` string (RID)
:   ​

`authorIsCurrentUser` boolean
:   ​

`authorRids` array of string (RID)
:   ​

`isArchived` boolean
:   ​

### ChecklistSearchState

`sort` [`checks.api.SortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#checks-api-sortoptions)
:   ​

`query` [`ChecklistSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchquery) required
:   ​

### checks.api.SortField

`CREATED_AT`
:   ​

`LAST_USED`
:   ​

`UPDATED_AT`
:   ​

### checks.api.SortOptions

`isDescending` boolean required
:   ​

`field` [`checks.api.SortField`](https://dev.nominal.io/api/rest/saved-view-service.md#checks-api-sortfield) required
:   ​

### ClosedWithFurtherActionAlertState

`comment` string required
:   ​

`closedBy` string (RID) required
:   ​

### ClosedWithIgnoreAlertState

`comment` string required
:   ​

`closedBy` string (RID) required
:   ​

### Color

Set `type` to the name of one of the other fields, and set only that field.

`hexCode` string
:   ​

### ColumnPinningState

`left` array of string
:   ​

`right` array of string
:   ​

### CustomTimeframeFilter

`startTime` [`UtcTimestamp`](https://dev.nominal.io/api/rest/saved-view-service.md#utctimestamp)
:   ​

`endTime` [`UtcTimestamp`](https://dev.nominal.io/api/rest/saved-view-service.md#utctimestamp)
:   ​

### DataReviewChecksFilter

`dataReviewChecks` array of string (RID)
:   ​

### DataReviewsFilter

`dataReviews` array of string (RID)
:   ​

### DataSource

Set `type` to the name of one of the other fields, and set only that field.

`dataset` string (RID)
:   ​

`connection` string (RID)
:   ​

`logSet` string (RID)
:   ​

`video` string (RID)
:   ​

`spatial` string (RID)
:   ​

### DataSourceSeriesTag

`name` string required
:   ​

`value` string required
:   ​

### DisplayState

Set `type` to the name of one of the other fields, and set only that field.

`displayStateV1` [`TableState`](https://dev.nominal.io/api/rest/saved-view-service.md#tablestate)
:   ​

### Empty

An empty JSON object, `{}`.

### event.AssetsFilter

`operator` [`SetOperator`](https://dev.nominal.io/api/rest/saved-view-service.md#setoperator) required
:   ​

`assets` array of string (RID)
:   ​

### event.SearchQuery

Set `type` to the name of one of the other fields, and set only that field.

`archived` boolean
:   ​

`searchText` string
:   Search text to perform fuzzy searching against.

`exactMatch` string
:   Search text to perform exact matching against on the event name and description.

`after` [`Timestamp`](https://dev.nominal.io/api/rest/saved-view-service.md#timestamp)
:   Filters to events after this timestamp, exclusive. This includes events that start before, but end after this time.

`before` [`Timestamp`](https://dev.nominal.io/api/rest/saved-view-service.md#timestamp)
:   Filters to events before this timestamp, exclusive. This includes events that start before, but end after this time.

`advancedTimeFilter` [`EventTimeFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#eventtimefilter)
:   ​

`asset` string (RID) deprecated
:   **Deprecated:** use assetRids

`assets` [`event.AssetsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#event-assetsfilter)
:   ​

`template` string (RID)
:   ​

`workbook` string (RID)
:   ​

`dataReview` string (RID) deprecated
:   **Deprecated:** use dataReviews instead

`dataReviews` [`DataReviewsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#datareviewsfilter)
:   ​

`originType` [`SearchEventOriginType`](https://dev.nominal.io/api/rest/saved-view-service.md#searcheventorigintype) deprecated
:   **Deprecated:** use originTypes instead

`originTypes` [`OriginTypesFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#origintypesfilter)
:   ​

`dataReviewCheck` string (RID) deprecated
:   **Deprecated:** use dataReviewChecks instead

`dataReviewChecks` [`DataReviewChecksFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#datareviewchecksfilter)
:   ​

`dispositionStatus` [`EventDispositionStatus`](https://dev.nominal.io/api/rest/saved-view-service.md#eventdispositionstatus) deprecated
:   **Deprecated:** use dispositionStatuses instead

`dispositionStatuses` array of [`EventDispositionStatus`](https://dev.nominal.io/api/rest/saved-view-service.md#eventdispositionstatus)
:   ​

`priority` [`Priority`](https://dev.nominal.io/api/rest/saved-view-service.md#priority) deprecated
:   **Deprecated:** use priorities instead

`priorities` array of [`Priority`](https://dev.nominal.io/api/rest/saved-view-service.md#priority)
:   ​

`assignee` string (RID) deprecated
:   **Deprecated:** use assignees instead

`assignees` [`AssigneesFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#assigneesfilter)
:   ​

`eventType` [`EventType`](https://dev.nominal.io/api/rest/saved-view-service.md#eventtype) deprecated
:   **Deprecated:** use eventTypes instead

`eventTypes` array of [`EventType`](https://dev.nominal.io/api/rest/saved-view-service.md#eventtype)
:   ​

`createdBy` string (RID)
:   ​

`createdByAnyOf` array of string (RID)
:   ​

`label` string deprecated
:   **Deprecated:** use labels instead

`labels` [`LabelsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#labelsfilter)
:   ​

`property` [`Property`](https://dev.nominal.io/api/rest/saved-view-service.md#property) deprecated
:   **Deprecated:** use properties instead

`properties` [`PropertiesFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#propertiesfilter)
:   ​

`and` array of [`event.SearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#event-searchquery)
:   ​

`or` array of [`event.SearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#event-searchquery)
:   ​

`not` [`event.SearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#event-searchquery)
:   ​

`workspace` string (RID)
:   ​

`procedure` string (RID)
:   ​

`procedureExecution` string (RID)
:   ​

`stepId` string
:   ​

`streamingChecklist` string (RID)
:   Filters to events created from a checklist executing in streaming. Use `assets` to further filter to a specific streaming checklist instance.

`streamingCheck` string (RID)
:   Filters to events created from the check of a checklist executing in streaming. Use `assets` to further filter to a specific streaming checklist instance.

`numericProperty` [`NumericPropertyPredicate`](https://dev.nominal.io/api/rest/saved-view-service.md#numericpropertypredicate)
:   Matches events using a numeric property comparison.

`numericPropertyRange` [`NumericPropertyRangePredicate`](https://dev.nominal.io/api/rest/saved-view-service.md#numericpropertyrangepredicate)
:   Matches events using an inclusive numeric property range.

### EventDispositionStatus

`PENDING_REVIEW`
:   ​

`CLOSED_IGNORED`
:   ​

`CLOSED_REQUIRES_FURTHER_ACTION`
:   ​

`NO_DISPOSITION`
:   ​

### EventTimeFilter

`timestamp` [`Timestamp`](https://dev.nominal.io/api/rest/saved-view-service.md#timestamp) required
:   ​

`timestampCondition` [`EventTimeFilterCondition`](https://dev.nominal.io/api/rest/saved-view-service.md#eventtimefiltercondition) required
:   ​

### EventTimeFilterCondition

`START_TIME_BEFORE_INCLUSIVE`
:   ​

`START_TIME_BEFORE_EXCLUSIVE`
:   ​

`START_TIME_AFTER_INCLUSIVE`
:   ​

`START_TIME_AFTER_EXCLUSIVE`
:   ​

`END_TIME_BEFORE_INCLUSIVE`
:   ​

`END_TIME_BEFORE_EXCLUSIVE`
:   ​

`END_TIME_AFTER_INCLUSIVE`
:   ​

`END_TIME_AFTER_EXCLUSIVE`
:   ​

### EventType

`INFO`
:   ​

`FLAG`
:   ​

`ERROR`
:   ​

`SUCCESS`
:   ​

### LabelsFilter

`operator` [`SetOperator`](https://dev.nominal.io/api/rest/saved-view-service.md#setoperator) required
:   ​

`labels` array of string
:   ​

### LockStatus

Whether the run is locked, preventing any changes from being made.

`LOCKED`
:   ​

`UNLOCKED`
:   ​

### MetricColumnAggregation

`TOTAL_COUNT`
:   ​

`TOTAL_DURATION`
:   ​

### MetricColumnData

Set `type` to the name of one of the other fields, and set only that field.

`event` [`event.SearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#event-searchquery)
:   ​

### MetricColumnMetadata

`title` string required
:   ​

`description` string
:   ​

`symbol` [`Symbol`](https://dev.nominal.io/api/rest/saved-view-service.md#symbol)
:   ​

### MetricColumns

Set `type` to the name of one of the other fields, and set only that field.

`asset` [`AssetMetricColumns`](https://dev.nominal.io/api/rest/saved-view-service.md#assetmetriccolumns)
:   ​

### MetricColumnStyle

`type` [`MetricColumnThresholdType`](https://dev.nominal.io/api/rest/saved-view-service.md#metriccolumnthresholdtype) required
:   ​

`value` array of [`MetricColumnThreshold`](https://dev.nominal.io/api/rest/saved-view-service.md#metriccolumnthreshold)
:   ​

### MetricColumnThreshold

`value` number required
:   ​

`color` string required
:   ​

`label` string
:   ​

### MetricColumnThresholdType

`RAW`
:   ​

`BAR`
:   ​

### MostRecentRun

An empty JSON object, `{}`.

### notebook.api.AssetsFilter

for an exact match, use the exactAssetRids filter

`operator` [`SetOperator`](https://dev.nominal.io/api/rest/saved-view-service.md#setoperator) required
:   ​

`assets` array of string (RID)
:   ​

### notebook.api.SortBy

`isDescending` boolean required
:   ​

`field` [`notebook.api.SortByField`](https://dev.nominal.io/api/rest/saved-view-service.md#notebook-api-sortbyfield) required
:   ​

### notebook.api.SortByField

`NAME`
:   ​

`CREATED_AT`
:   ​

`UPDATED_AT`
:   ​

### NotebookType

The kind of workbook. Persisted on metadata, so it is readable without loading content and filterable through `notebookTypes`.

`WORKBOOK`
:   ​

`COMPARISON_WORKBOOK`
:   ​

`ANALYST_EPHEMERAL_WORKBOOK`
:   ​

`REPORT`
:   ​

### NotebookTypesFilter

returns notebooks that match any of the provided notebook types

`types` array of [`NotebookType`](https://dev.nominal.io/api/rest/saved-view-service.md#notebooktype)
:   ​

### NumericPropertyPredicate

Matches resources that have a numeric value for the named property and whose value satisfies the operator. NEQ excludes resources that lack the property or store a string value under the same name.

`name` string required
:   ​

`value` number required
:   ​

`operator` [`PropertyComparisonOperator`](https://dev.nominal.io/api/rest/saved-view-service.md#propertycomparisonoperator) required
:   ​

### NumericPropertyRangeOperator

`BETWEEN`
:   ​

`NOT_BETWEEN`
:   ​

### NumericPropertyRangePredicate

Inclusive range on a numeric property. At least one bound is required. BETWEEN: min <= x <= max. An absent bound is unbounded on that side. NOT_BETWEEN: x < min OR x > max. An absent bound drops that side. Both operators require a numeric value for `name`. Missing properties and string values never match. Bounds are closed [min, max] to match the number chip (is between / is not between), not half-open.

`name` string required
:   ​

`min` number
:   ​

`max` number
:   ​

`operator` [`NumericPropertyRangeOperator`](https://dev.nominal.io/api/rest/saved-view-service.md#numericpropertyrangeoperator) required
:   ​

### Operator

`LEQ`
:   ​

`LT`
:   ​

`GEQ`
:   ​

`GT`
:   ​

`EQ`
:   ​

### OriginTypesFilter

`operator` [`SetOperator`](https://dev.nominal.io/api/rest/saved-view-service.md#setoperator) required
:   ​

`originTypes` array of [`SearchEventOriginType`](https://dev.nominal.io/api/rest/saved-view-service.md#searcheventorigintype)
:   ​

### PendingReviewAlertState

An empty JSON object, `{}`.

### PresetTimeframeDuration

`ALL_TIME`
:   ​

`LAST_DAY`
:   ​

`LAST_WEEK`
:   ​

`LAST_MONTH`
:   ​

`LAST_YEAR`
:   ​

### PresetTimeframeFilter

`duration` [`PresetTimeframeDuration`](https://dev.nominal.io/api/rest/saved-view-service.md#presettimeframeduration) required
:   ​

### Priority

`P0`
:   ​

`P1`
:   ​

`P2`
:   ​

`P3`
:   ​

`P4`
:   ​

### ProcedureExecutionAssetsFilter

`assetRids` array of string (RID)
:   ​

`operator` [`AssetsFilterOperator`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsfilteroperator) required
:   ​

### ProcedureExecutionProgressStatus

`NOT_STARTED`
:   ​

`IN_PROGRESS`
:   ​

`FINISHED`
:   ​

`ABORTED`
:   ​

### ProcedureExecutionSearchQuery

Set `type` to the name of one of the other fields, and set only that field.

`searchText` string
:   ​

`label` string
:   ​

`property` [`Property`](https://dev.nominal.io/api/rest/saved-view-service.md#property)
:   ​

`and` array of [`ProcedureExecutionSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchquery)
:   ​

`or` array of [`ProcedureExecutionSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchquery)
:   ​

`workspace` string (RID)
:   ​

`procedureRid` string (RID)
:   ​

`commitId` string
:   ​

`createdBy` string (RID)
:   ​

`progressStatus` [`ProcedureExecutionProgressStatus`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionprogressstatus)
:   ​

`assetsFilter` [`ProcedureExecutionAssetsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionassetsfilter)
:   ​

`isArchived` boolean
:   ​

### ProcedureExecutionSearchState

`sort` [`ProcedureExecutionSortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsortoptions)
:   ​

`query` [`ProcedureExecutionSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchquery) required
:   ​

### ProcedureExecutionSortField

`CREATED_AT`
:   ​

`STARTED_AT`
:   ​

`FINISHED_AT`
:   ​

`UPDATED_AT`
:   ​

### ProcedureExecutionSortOptions

`isDescending` boolean
:   ​

`sortField` [`ProcedureExecutionSortField`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsortfield) required
:   ​

### ProcedureSearchQuery

Set `type` to the name of one of the other fields, and set only that field.

`searchText` string
:   ​

`label` string
:   ​

`property` [`Property`](https://dev.nominal.io/api/rest/saved-view-service.md#property)
:   ​

`and` array of [`ProcedureSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchquery)
:   ​

`or` array of [`ProcedureSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchquery)
:   ​

`workspace` string (RID)
:   ​

`createdBy` string (RID)
:   ​

`isArchived` boolean
:   ​

### ProcedureSearchState

`sort` [`ProcedureSortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresortoptions)
:   ​

`query` [`ProcedureSearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchquery) required
:   ​

### ProcedureSortField

`NAME`
:   ​

`CREATED_AT`
:   ​

`UPDATED_AT`
:   ​

### ProcedureSortOptions

`isDescending` boolean
:   ​

`sortField` [`ProcedureSortField`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresortfield)
:   ​

### PropertiesFilter

`name` string required
:   ​

`values` array of string
:   ​

### Property

`name` string required
:   ​

`value` string required
:   ​

### PropertyComparisonOperator

`EQ`
:   ​

`NEQ`
:   ​

`GT`
:   ​

`GTE`
:   ​

`LT`
:   ​

`LTE`
:   ​

### ResourceType

`ASSET`
:   ​

`RUN`
:   ​

`WORKBOOK`
:   ​

`CHECKLIST`
:   ​

`TEMPLATE`
:   ​

`PROCEDURE`
:   ​

`PROCEDURE_EXECUTION`
:   ​

### run.api.AssetsFilter

returns runs that match any of the provided assets.

`assets` array of string (RID)
:   ​

### run.api.SortField

`NAME`
:   ​

`ID`
:   ​

`CREATED_AT`
:   ​

`START_TIME`
:   ​

`END_TIME`
:   ​

`PENDING_CHECK_ALERTS`
:   ​

### run.api.SortKey

Set `type` to the name of one of the other fields, and set only that field.

`field` [`run.api.SortField`](https://dev.nominal.io/api/rest/saved-view-service.md#run-api-sortfield)
:   ​

`property` [`run.api.SortProperty`](https://dev.nominal.io/api/rest/saved-view-service.md#run-api-sortproperty)
:   Sort by a property value. Requires a property name, and will always sort null values last.

`numericProperty` [`run.api.SortProperty`](https://dev.nominal.io/api/rest/saved-view-service.md#run-api-sortproperty)
:   Sort by a numeric property value. String-valued and missing properties are null and always sort last.

### run.api.SortOptions

`isDescending` boolean required
:   ​

`field` [`run.api.SortField`](https://dev.nominal.io/api/rest/saved-view-service.md#run-api-sortfield) deprecated
:   **Deprecated:** use SortKey with SortField union type instead

`sortKey` [`run.api.SortKey`](https://dev.nominal.io/api/rest/saved-view-service.md#run-api-sortkey)
:   Field to sort by. Includes both field and property-based sorting.

`additionalSortKeys` array of [`SortKeyWithDirection`](https://dev.nominal.io/api/rest/saved-view-service.md#sortkeywithdirection)
:   Optional secondary sort keys for tiebreaking. Applied in order after the primary sortKey. Each entry specifies its own sort key and direction. If empty or absent, ties are broken by UUID only.

### run.api.SortProperty

`name` string required
:   ​

### RunSearchState

`sort` [`run.api.SortOptions`](https://dev.nominal.io/api/rest/saved-view-service.md#run-api-sortoptions)
:   ​

`groupBy` array of string
:   ​

`query` [`api.SearchQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#api-searchquery) required
:   ​

### RunsFilter

`operator` [`SetOperator`](https://dev.nominal.io/api/rest/saved-view-service.md#setoperator) required
:   ​

`runs` array of string (RID)
:   ​

### SavedView

`metadata` [`SavedViewMetadata`](https://dev.nominal.io/api/rest/saved-view-service.md#savedviewmetadata) required
:   ​

`searchState` [`SearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#searchstate) required
:   ​

`displayState` [`DisplayState`](https://dev.nominal.io/api/rest/saved-view-service.md#displaystate) required
:   ​

### SavedViewMetadata

`rid` string (RID) required
:   ​

`resourceType` [`ResourceType`](https://dev.nominal.io/api/rest/saved-view-service.md#resourcetype) required
:   ​

`title` string required
:   ​

`symbol` [`Symbol`](https://dev.nominal.io/api/rest/saved-view-service.md#symbol)
:   ​

`color` [`Color`](https://dev.nominal.io/api/rest/saved-view-service.md#color)
:   ​

`isArchived` boolean required
:   ​

`createdAt` string (date-time) required
:   ​

`createdBy` string (RID) required
:   ​

`updatedAt` string (date-time) required
:   ​

### savedviews.api.SortField

`TITLE`
:   ​

`CREATED_AT`
:   ​

`USER_DEFINED`
:   ​

### savedviews.api.SortKey

Set `type` to the name of one of the other fields, and set only that field.

`field` [`savedviews.api.SortField`](https://dev.nominal.io/api/rest/saved-view-service.md#savedviews-api-sortfield)
:   ​

### SavedViewSortOptions

`isDescending` boolean required
:   ​

`sortKey` [`savedviews.api.SortKey`](https://dev.nominal.io/api/rest/saved-view-service.md#savedviews-api-sortkey) required
:   Field to sort by.

### SearchAssetsQuery

Set `type` to the name of one of the other fields, and set only that field.

`searchText` string
:   ​

`exactSubstring` string
:   An case-insensitive substring match of the title or description of the asset.

`label` string deprecated
:   **Deprecated:** use labels instead

`labels` [`LabelsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#labelsfilter)
:   ​

`property` [`Property`](https://dev.nominal.io/api/rest/saved-view-service.md#property) deprecated
:   **Deprecated:** use properties

`propertyKey` string
:   Matches assets that have a property with this key, regardless of value.

`properties` [`PropertiesFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#propertiesfilter)
:   ​

`numericProperty` [`NumericPropertyPredicate`](https://dev.nominal.io/api/rest/saved-view-service.md#numericpropertypredicate)
:   Matches assets using a numeric property comparison.

`numericPropertyRange` [`NumericPropertyRangePredicate`](https://dev.nominal.io/api/rest/saved-view-service.md#numericpropertyrangepredicate)
:   Matches assets using an inclusive numeric property range.

`typeRid` string (RID) deprecated
:   **Deprecated:** use assetTypes

`assetTypes` [`AssetTypesFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#assettypesfilter)
:   ​

`isStaged` boolean deprecated
:   **Deprecated:** staged assets are no longer returned in the search endpoint

`archived` boolean
:   ​

`and` array of [`SearchAssetsQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchassetsquery)
:   ​

`or` array of [`SearchAssetsQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchassetsquery)
:   ​

`not` [`SearchAssetsQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchassetsquery)
:   ​

`workspace` string (RID)
:   ​

### SearchEventOriginType

`WORKBOOK`
:   ​

`TEMPLATE`
:   ​

`API`
:   ​

`DATA_REVIEW`
:   ​

`PROCEDURE`
:   ​

`STREAMING_CHECKLIST`
:   ​

### SearchNotebooksQuery

Set `type` to the name of one of the other fields, and set only that field.

`and` array of [`SearchNotebooksQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchnotebooksquery)
:   ​

`or` array of [`SearchNotebooksQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchnotebooksquery)
:   ​

`not` [`SearchNotebooksQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchnotebooksquery)
:   ​

`exactMatch` string
:   Performs case insensitive exact match search on the title.

`searchText` string
:   ​

`label` string deprecated
:   **Deprecated:** use labels

`labels` [`LabelsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#labelsfilter)
:   ​

`property` [`Property`](https://dev.nominal.io/api/rest/saved-view-service.md#property) deprecated
:   **Deprecated:** use properties

`properties` [`PropertiesFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#propertiesfilter)
:   ​

`assetRid` string (RID) deprecated
:   **Deprecated:** use assetRids

`assetRids` [`notebook.api.AssetsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#notebook-api-assetsfilter)
:   ​

`exactAssetRids` array of string (RID)
:   Requires the set of assets in the query to exactly match the set of assets in the notebook. To do a partial match, use an assetRids query.

`authorRid` string (RID)
:   ​

`runRid` string (RID) deprecated
:   **Deprecated:** use runRids

`runRids` [`RunsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#runsfilter)
:   ​

`notebookType` [`NotebookType`](https://dev.nominal.io/api/rest/saved-view-service.md#notebooktype) deprecated
:   **Deprecated:** use notebook types

`notebookTypes` [`NotebookTypesFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#notebooktypesfilter)
:   ​

`draftState` boolean
:   ​

`archived` boolean
:   ​

`workspace` string (RID)
:   ​

`authorIsCurrentUser` boolean
:   ​

`authorRids` array of string (RID)
:   ​

### SearchSavedViewsQuery

Set `type` to the name of one of the other fields, and set only that field.

`and` [`SearchSavedViewsQueryList`](https://dev.nominal.io/api/rest/saved-view-service.md#searchsavedviewsquerylist)
:   ​

`or` [`SearchSavedViewsQueryList`](https://dev.nominal.io/api/rest/saved-view-service.md#searchsavedviewsquerylist)
:   ​

`not` [`SearchSavedViewsQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchsavedviewsquery)
:   ​

`titleExactSubstringSearch` string
:   ​

`resourceType` [`ResourceType`](https://dev.nominal.io/api/rest/saved-view-service.md#resourcetype)
:   ​

`workspace` string (RID)
:   ​

### SearchSavedViewsQueryList

`queries` array of [`SearchSavedViewsQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchsavedviewsquery)
:   ​

### SearchState

Set `type` to the name of one of the other fields, and set only that field.

`asset` [`AssetSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#assetsearchstate)
:   ​

`run` [`RunSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#runsearchstate)
:   ​

`checklist` [`ChecklistSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#checklistsearchstate)
:   ​

`workbook` [`WorkbookSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#workbooksearchstate)
:   ​

`template` [`TemplateSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#templatesearchstate)
:   ​

`procedure` [`ProcedureSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#proceduresearchstate)
:   ​

`procedureExecution` [`ProcedureExecutionSearchState`](https://dev.nominal.io/api/rest/saved-view-service.md#procedureexecutionsearchstate)
:   ​

### SearchTemplatesQuery

Set `type` to the name of one of the other fields, and set only that field.

`and` array of [`SearchTemplatesQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchtemplatesquery)
:   ​

`or` array of [`SearchTemplatesQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchtemplatesquery)
:   ​

`not` [`SearchTemplatesQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchtemplatesquery)
:   ​

`exactMatch` string
:   Performs case insensitive exact match search on the title.

`searchText` string
:   Searches title and description only

`label` string deprecated
:   **Deprecated:** use labels instead

`labels` [`LabelsFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#labelsfilter)
:   ​

`property` [`Property`](https://dev.nominal.io/api/rest/saved-view-service.md#property) deprecated
:   **Deprecated:** use properties

`properties` [`PropertiesFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#propertiesfilter)
:   ​

`createdBy` string (RID)
:   ​

`isArchived` boolean
:   ​

`isPublished` boolean
:   ​

`workspace` string (RID)
:   ​

`authorIsCurrentUser` boolean
:   ​

`authorRids` array of string (RID)
:   ​

### SetOperator

`AND`
:   ​

`OR`
:   ​

### SortKeyWithDirection

`sortKey` [`run.api.SortKey`](https://dev.nominal.io/api/rest/saved-view-service.md#run-api-sortkey) required
:   ​

`isDescending` boolean required
:   ​

### Symbol

Set `type` to the name of one of the other fields, and set only that field.

`icon` string
:   Icon name (e.g. castle)

`emoji` string
:   Emoji name (e.g. :castle:)

`image` string
:   Image url (e.g. https://example.com/image.png)

### TableState

`columnVisibility` map of `ColumnId` to boolean
:   ​

`columnSizing` map of `ColumnId` to integer
:   ​

`columnOrder` array of string
:   ​

`columnPinning` [`ColumnPinningState`](https://dev.nominal.io/api/rest/saved-view-service.md#columnpinningstate)
:   ​

`metricColumns` [`MetricColumns`](https://dev.nominal.io/api/rest/saved-view-service.md#metriccolumns)
:   ​

### template.api.SortBy

`isDescending` boolean required
:   ​

`field` [`template.api.SortByField`](https://dev.nominal.io/api/rest/saved-view-service.md#template-api-sortbyfield) required
:   ​

### template.api.SortByField

UPDATED_AT is an alias for EDITED_AT.

`NAME`
:   ​

`CREATED_AT`
:   ​

`UPDATED_AT`
:   ​

`EDITED_AT`
:   ​

### TemplateSearchState

`sort` [`template.api.SortBy`](https://dev.nominal.io/api/rest/saved-view-service.md#template-api-sortby)
:   Sort for templates view. Uses BE-supplied default if empty.

`query` [`SearchTemplatesQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchtemplatesquery) required
:   ​

### TimeframeFilter

Set `type` to the name of one of the other fields, and set only that field.

`custom` [`CustomTimeframeFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#customtimeframefilter)
:   ​

`preset` [`PresetTimeframeFilter`](https://dev.nominal.io/api/rest/saved-view-service.md#presettimeframefilter)
:   ​

### TimeRangeFilter

searches for runs that have at least some intersection with the specified range.

`start` [`UtcTimestamp`](https://dev.nominal.io/api/rest/saved-view-service.md#utctimestamp)
:   ​

`end` [`UtcTimestamp`](https://dev.nominal.io/api/rest/saved-view-service.md#utctimestamp)
:   ​

### Timestamp

Deprecated for new APIs. Use google.protobuf.Timestamp for absolute instants in proto APIs.

This legacy nanosecond precision timestamp type is represented by an epoch time in seconds and a nanosecond offset. The nanosecond offset is from the start of the epoch second, so must be less than 1 billion.

`seconds` integer (int64) required
:   ​

`nanos` integer (int64) required
:   ​

### UpdateColor

Set `type` to the name of one of the other fields, and set only that field.

`color` [`Color`](https://dev.nominal.io/api/rest/saved-view-service.md#color)
:   ​

`clearColor` [`Empty`](https://dev.nominal.io/api/rest/saved-view-service.md#empty)
:   ​

### UpdateSymbol

Set `type` to the name of one of the other fields, and set only that field.

`symbol` [`Symbol`](https://dev.nominal.io/api/rest/saved-view-service.md#symbol)
:   ​

`clearSymbol` [`Empty`](https://dev.nominal.io/api/rest/saved-view-service.md#empty)
:   ​

### UtcTimestamp

`secondsSinceEpoch` integer (int64) required
:   ​

`offsetNanoseconds` integer (int64)
:   ​

### WorkbookSearchState

`sort` [`notebook.api.SortBy`](https://dev.nominal.io/api/rest/saved-view-service.md#notebook-api-sortby)
:   ​

`query` [`SearchNotebooksQuery`](https://dev.nominal.io/api/rest/saved-view-service.md#searchnotebooksquery) required
:   ​

Page design based on [Scalar](https://scalar.com), MIT License.
