SignalShelf · Developer documentation

YouTube · channel/shorts

List public YouTube Shorts from a channel. GET /api/v1/youtube/channel/shorts accepts your x-api-key header. Production live requests are disabled pending source and commercial-use authorization, including cross-channel use.

Request parameters

Reads the public Shorts tab and follows browse continuation when YouTube exposes it. Only newest order is supported; popular sorting and complete channel history are not verified. Public channel content only.

ParameterTypeRequiredDescription
channelIdstringNoPublic YouTube channel ID beginning with UC.
handlestringNoPublic channel handle, with or without @.
sortstringNoNewest Shorts are the only verified ordering. Allowed: newest. Default: newest.
continuationTokenstringNoOpaque SignalShelf cursor from the previous response. Keep the same channel identity.
freshnessstringNo24h (default), 1h, 7d, or live. Accepted cache hits are free; live forces refresh except simultaneous requests may share newly fetched data.

Code examples

Set SIGNALSHELF_BASE_URL and SIGNALSHELF_API_KEY on your server.

REQUEST EXAMPLE
curl "$SIGNALSHELF_BASE_URL/api/v1/youtube/channel/shorts?handle=NASA" \
  -H "x-api-key: $SIGNALSHELF_API_KEY"

Response and pagination

The response groups public cards under data.shorts. Card accessibility text supplies the title and may include a view-count label. Only newest order is verified; popular sorting is not supported.

When a continuationToken is present, pass it unchanged with the same channel handle or ID. A channel page may expose a bounded set without a usable next-page token.

The response contains data and meta. data includes platform, resource, sample:false, provider, and the public source payload. Lists return data.items; individual resources return data.data.

Shorts are returned under data.shorts with newest order. Use the signed continuationToken with the same channel when present; popular order and complete history are not supported.

meta includes event_id, mode, cache, credits_charged, fetched_at, age_seconds, and duration_ms. A fresh successful result costs one credit; accepted cached results and failures cost zero.

Availability and failures

Implementation is not a continuous availability guarantee. Source rate limits, retention, deleted content, restrictions, and regional availability apply. This is an independent SignalShelf contract, not a drop-in competitor response format.

400: invalid parameters. 401: missing/revoked key. 402: insufficient credits. 404: missing public resource. 429: SignalShelf throttle. 502/503: upstream failure or rate limit, with credit restored.

Explore the API in your workspace. Sample results and accepted cache hits cost zero credits. Open the playground →