yabby logo

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}/channels

Returns the channels in display order, including sync state (syncStatus, totalVideos, syncedVideos, lastSyncedAt).

Add a channel

POST /api/v1/websites/{websiteId}/channels
FieldTypeNotes
youtubeChannelIdstringRequired — from channel search or the YouTube URL (UC…)
youtubeChannelNamestringOptional — resolved from YouTube when omitted
youtubeThumbnailstringOptional — 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}/sync

Refreshes 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}/reorder

Body: { "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.

On this page