Workspace
Folders, saved channels, alerts, and channel resolution.
Folders, saved channels, alerts, and channel resolution — the same primitives that power the web app dashboard. Use these to programmatically organize research, monitor channels for outliers, and resolve @handle/URL inputs to channel IDs.
List the authenticated user's folders with channel counts.
Create a new folder. Content-Type application/json.
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Required | Folder name (1–50 chars, unique per user). |
Rename a folder. Body: {"name": "..."}.
Delete a folder and unsave every channel in it. No Uncategorized fallback — the channels are removed entirely.
List all channels in a folder with live 24h and 48h view/sub deltas. Sorted by save time descending.
Save one or more channels into a folder. Hard cap of 30 channels per folder on all plans — if the request would exceed the cap, the entire save fails atomically (no partial save).
| Name | Type | Required | Description |
|---|---|---|---|
| channel_ids | array | Required | Array of YouTube channel IDs (UC...). |
| folder_id | integer | Required | Target folder ID. |
Remove a saved channel from all of the user's folders.
Move a saved channel from one folder to another.
| Name | Type | Required | Description |
|---|---|---|---|
| channel_id | string | Required | YouTube channel ID. |
| from_folder_id | integer | Required | Source folder ID. |
| to_folder_id | integer | Required | Destination folder ID. |
Resolve a YouTube @handle or channel URL to a canonical channel ID. Useful when you have user input and need to call other endpoints with a stable UC... id.
| Name | Type | Required | Description |
|---|---|---|---|
| input | string | Required | @handle, https://youtube.com/@handle, https://youtube.com/channel/UC..., or a raw UC... id (returned unchanged). |
List the user's saved alerts. Alerts watch for channels matching specific criteria (e.g. new outliers, high growth) and surface them in /api/alerts/triggered.
Create a new alert. The filter body mirrors the search/trends params (subscribers, views, language, etc.) plus an alert type.
Update an alert's name, filters, or enabled state. Send any subset of fields.
Delete an alert. Triggered-channel history for the alert is also removed.
Channels that matched the user's saved alert filters in the last evaluation cycle (typically the last 24h). Use this as your “new matches” feed.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| alert_id | integer | Optional | — | Restrict to one alert. Omit to merge across all alerts. |
| page | integer | Optional | 1 | Page (1–20). |
| per_page | integer | Optional | 50 | Results per page (1–50). |
Quick poll endpoint: returns a per-alert summary of how many new channels triggered each alert. Cheap to call repeatedly — use it to drive a notification badge without paginating through /api/alerts/triggered.
Algrow
Shorts Channels