API: Channels
Add, remove, reorder, and sync a website's YouTube channels via the REST API.
A yabby website shows the videos of one or more YouTube channels. These endpoints manage which channels are attached and keep them in sync. See API: Getting started for authentication.
Find a channel on YouTube
GET /api/v1/youtube/channel-search?query=…Searches YouTube by channel name and returns candidates with their id (the youtubeChannelId you need to add a channel), name, thumbnail, and subscriber count.
curl "https://www.yabby.page/api/v1/youtube/channel-search?query=fireship" \
-H "Authorization: Bearer yabby_your_api_key"List channels of a website
GET /api/v1/websites/{websiteId}/channelsReturns the channels in display order, including sync state (syncStatus, totalVideos, syncedVideos, lastSyncedAt).
Add a channel
POST /api/v1/websites/{websiteId}/channels| Field | Type | Notes |
|---|---|---|
youtubeChannelId | string | Required — from channel search or the YouTube URL (UC…) |
youtubeChannelName | string | Optional — resolved from YouTube when omitted |
youtubeThumbnail | string | Optional — resolved from YouTube when omitted |
curl -X POST https://www.yabby.page/api/v1/websites/{websiteId}/channels \
-H "Authorization: Bearer yabby_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "youtubeChannelId": "UCsBjURrPoezykLs9EqgamOA" }'Returns 201 and starts the initial sync in the background: the response's syncStatus is syncing. Poll GET /api/v1/channels/{channelId} until it reaches completed (or failed with a syncError). Adding the same channel twice fails with 409 conflict; your plan's channels-per-website limit applies.
Get a channel
GET /api/v1/channels/{channelId}Trigger a sync
POST /api/v1/channels/{channelId}/syncRefreshes videos and playlists from YouTube. Returns 202 immediately; the sync runs in the background — poll the channel's syncStatus. (Channels also sync automatically on a schedule.)
Reorder a channel
POST /api/v1/channels/{channelId}/reorderBody: { "direction": "up" } or { "direction": "down" }. Swaps the channel with its neighbor in the website's display order; moving past the boundary is a no-op.
Remove a channel
DELETE /api/v1/channels/{channelId}Removes the channel from its website including all of its synced videos and playlists. Returns 204. This cannot be undone.