API: Websites
Create, read, update, publish, and delete yabby websites via the REST API.
Websites are the top-level resource: each one has a slug (its <slug>.yabby.page address), a theme, display settings, and one or more YouTube channels. See API: Getting started for authentication and the response format.
List websites
GET /api/v1/websitesReturns all websites of your workspace with their status and channel count.
curl https://www.yabby.page/api/v1/websites \
-H "Authorization: Bearer yabby_your_api_key"Get a website
GET /api/v1/websites/{websiteId}Returns the website's full settings including its channels (videos and playlists have their own endpoints).
Create a website
POST /api/v1/websites| Field | Type | Notes |
|---|---|---|
name | string | Display name, 1–100 characters |
slug | string | Lowercase letters, numbers, hyphens; unique across yabby |
curl -X POST https://www.yabby.page/api/v1/websites \
-H "Authorization: Bearer yabby_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "name": "My Channel", "slug": "my-channel" }'Returns 201 with the created website. Fails with 409 conflict if the slug is taken and 403 forbidden when your plan's website limit is reached. A new website starts as a draft — add a channel, then publish.
Update a website
PATCH /api/v1/websites/{websiteId}All fields are optional; only provided fields are changed.
| Field | Type | Notes |
|---|---|---|
name | string | Display name |
slug | string | Must stay unique |
theme | string | Theme id, e.g. default |
themeColor | string | Accent color |
bio | string | Short site description (max 500) |
logo | string | Logo URL |
sortOrder | enum | new_to_old | old_to_new | most_viewed | least_viewed |
showFeatured | boolean | Show the featured section |
showShorts | boolean | Include YouTube Shorts |
showSearch | boolean | Show the on-site search box |
channelMixMode | enum | mix | group (multi-channel sites) |
newVideoMode | enum | auto_publish | curated |
playlistDisplayMode | enum | homepage | index_page | off |
navLinks | array | null | Ordered nav entries: { label, url } or { pageId } |
socialLinks | array | null | { platform, url } — x, instagram, tiktok, threads, linkedin |
subscribeLinks | array | null | { platform, url } — spotify, apple_podcasts, youtube, deezer, amazon_music, rss |
curl -X PATCH https://www.yabby.page/api/v1/websites/{websiteId} \
-H "Authorization: Bearer yabby_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "sortOrder": "most_viewed", "showShorts": true }'Publish and unpublish
POST /api/v1/websites/{websiteId}/publish
POST /api/v1/websites/{websiteId}/unpublishPublishing requires at least one channel and a paid plan (403 forbidden otherwise). Unpublishing sets the site back to draft.
Delete a website
DELETE /api/v1/websites/{websiteId}Permanently deletes the website including all channels, videos, and playlists. Returns 204 on success. This cannot be undone.
API: Getting started
Use the yabby REST API to create and manage websites, read videos and playlists for custom frontends, and automate curation — authenticated with workspace API keys.
API: Videos
Read a website's synced videos with filters, search, and pagination — e.g. to render them on a custom site — and curate them via the REST API.