Browsable Browsable Docs

YouTube channel shorts

Fetch shorts from a YouTube channel shorts tab using the public web client sort chips and continuations.

POST /v1/youtube/channel/shorts

Request Parameters

Name In Type Required Description
channel_id body string No YouTube channel ID (for example UCX6OQ3DkcsbYNE6H8uQQuVA).
channel_url body string No YouTube channel URL or tab URL. Handles like https://www.youtube.com/@MrBeast and channel IDs are normalized to the requested tab.
handle body string No YouTube channel handle, with or without the leading @.
pages body number No Number of pages to fetch (1-20).
sort body string No Shorts ordering: latest, popular, or oldest.

Response Structure

Async kickoff response

Polled run result response

Sync response

Declared output schema

Code Examples

Async + polling

RUN=$(curl -s -X POST "https://api.browsable.app/v1/youtube/channel/shorts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"channel_id":"id-1","channel_url":"https://example.com/item-1","handle":"sample","pages":1,"sort":"latest"}')
RUN_ID=$(echo "$RUN" | jq -r '.run_id')
while true; do
RESULT=$(curl -s -H "Authorization: Bearer YOUR_API_KEY" "https://api.browsable.app/v1/runs/$RUN_ID")
STATUS=$(echo "$RESULT" | jq -r '.run_status')
if [ "$STATUS" = "succeeded" ] || [ "$STATUS" = "failed" ]; then
echo "$RESULT"
break
fi
sleep 2
done

Sync

curl -X POST "https://api.browsable.app/v1/youtube/channel/shorts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"channel_id":"id-1","channel_url":"https://example.com/item-1","handle":"sample","pages":1,"sort":"latest","_run":{"async":false}}'