SignalShelf · Developer documentation

Reddit · subreddit/search

Search public posts within a subreddit. GET /api/v1/reddit/subreddit/search accepts your x-api-key header. This endpoint returns live public data; demo mode is unavailable.

Request parameters

Uses Reddit’s official subreddit-restricted OAuth search. The official API requires a non-empty query; that is stricter than the reference contract’s optional query. Returns allowlisted public post fields and Reddit’s `after` fullname. Requires Reddit’s written commercial-use agreement before real source calls; data is not persistently cached.

ParameterTypeRequiredDescription
subredditstringYesPublic subreddit name only; private or quarantined communities are unavailable.
querystringYesNon-empty search query.
sortstringNoReddit search sort order. Allowed: relevance, hot, top, new, comments. Default: relevance.
timeframestringNoRestricts Reddit top/search results to this time range when supported by the selected sort. Allowed: hour, day, week, month, year, all. Default: day.
cursorstringNoReddit listing `after` fullname returned by the previous page.
trimbooleanNoAccepted for compatibility; output uses a fixed public-field allowlist.
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/reddit/subreddit/search?subreddit=subreddit&query=query" \
  -H "x-api-key: $SIGNALSHELF_API_KEY"

Response and pagination

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.

Author feeds include data.next_cursor. Return it unchanged in cursor for the next page. Feed entries can include reposts. Single-post lookups resolve the handle to a DID first. Deleted or moderated posts may be unavailable.

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 →