# Saved Views API Base path: `/api/v1/saved-views` All endpoints require `Authorization: Bearer `. Related: [[02 - Videos API]], [[11 - Bulk Jobs API]] --- ## GET /saved-views List all saved views for the current team. **Response:** `SavedView[]` --- ## GET /saved-views/tabs List saved views that are pinned as tabs, ordered by `tabOrder`. **Response:** `SavedView[]` --- ## POST /saved-views Create a new saved view. Requires `EDITOR` role. **Request body:** ```json { "name": "string", "description": "string", "isGlobal": false, "queryJson": { "lintStatus": "ERROR" }, "columnsJson": { "visible": [], "order": [] }, "sortJson": { "field": "publishedAt", "order": "desc" }, "pinnedAsTab": false, "tabOrder": null } ``` **Field notes:** | Field | Notes | |---|---| | `isGlobal` | If `true`, the view is visible to all team members. If `false`, it is personal. | | `queryJson` | Filter parameters — same shape as the query params accepted by `GET /videos`. | | `columnsJson` | Column visibility and order configuration for the video table. | | `sortJson` | Default sort field and direction for the view. | | `pinnedAsTab` | Whether the view appears as a tab in the video list UI. | | `tabOrder` | Integer position in the tab bar. `null` if not pinned. | --- ## PATCH /saved-views/:id Update a saved view. Requires `EDITOR` role. **Request body:** Same fields as `POST /saved-views`, all optional. --- ## DELETE /saved-views/:id Delete a saved view. Requires `ADMIN` role. --- ## POST /saved-views/:id/execute Execute the saved view's stored query and return the matching video IDs. **Response:** ```json { "videoIds": ["cuid", "cuid"] } ``` > The returned `videoIds` can be passed directly to bulk job endpoints such as `POST /bulk-jobs/push-pending` or `POST /bulk-jobs/preview`. See [[11 - Bulk Jobs API]].