yabby logo

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/websites

Returns 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
FieldTypeNotes
namestringDisplay name, 1–100 characters
slugstringLowercase 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.

FieldTypeNotes
namestringDisplay name
slugstringMust stay unique
themestringTheme id, e.g. default
themeColorstringAccent color
biostringShort site description (max 500)
logostringLogo URL
sortOrderenumnew_to_old | old_to_new | most_viewed | least_viewed
showFeaturedbooleanShow the featured section
showShortsbooleanInclude YouTube Shorts
showSearchbooleanShow the on-site search box
channelMixModeenummix | group (multi-channel sites)
newVideoModeenumauto_publish | curated
playlistDisplayModeenumhomepage | index_page | off
navLinksarray | nullOrdered nav entries: { label, url } or { pageId }
socialLinksarray | null{ platform, url } — x, instagram, tiktok, threads, linkedin
subscribeLinksarray | 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}/unpublish

Publishing 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.

On this page