SignalShelf · Developer documentation

YouTube · channel/search

Search public videos within a YouTube channel. GET /api/v1/youtube/channel/search accepts your x-api-key header. Production live requests are disabled pending source and commercial-use authorization, including cross-channel use.

Request parameters

Reads public channel search results for the supplied handle. Returns publicly listed videos and playlists. Pass the returned continuationToken with the same handle and query for the next page; private content is not accessible.

ParameterTypeRequiredDescription
handlestringYesPublic YouTube channel handle, with or without @.
querystringYesWords to search within the channel.
continuationTokenstringNoOpaque SignalShelf cursor from the previous response. Keep the same handle and query.
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/search?handle=NASA&query=artemis" \
  -H "x-api-key: $SIGNALSHELF_API_KEY"

Response and pagination

The response contains data and meta. Search results are grouped into data.videos, data.shorts, data.lives, data.channels and data.playlists; groups the public page does not expose are empty arrays.

Search responses contain data.videos, data.shorts, data.lives, data.channels and data.playlists arrays, with only groups exposed by the source populated. When YouTube provides a continuation, data.continuationToken is an opaque SignalShelf-signed cursor; pass it unchanged with the same query, and for channel search the same handle. A null token means the source exposed no next page. Cursor pagination is implemented, but reference filters, popular sorting and includeExtras are not.

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 →