92 lines
1.8 KiB
Markdown
92 lines
1.8 KiB
Markdown
# Saved Views API
|
|
|
|
Base path: `/api/v1/saved-views`
|
|
|
|
All endpoints require `Authorization: Bearer <jwt>`.
|
|
|
|
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]].
|