Bluesky Trending Topics avatar

Bluesky Trending Topics

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Bluesky Trending Topics

Bluesky Trending Topics

Get trending topics from Bluesky in real-time — no auth needed. Uses the official AT Protocol public API.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Jake Paine

Jake Paine

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Apify Store AT Protocol Node.js

Get trending topics from Bluesky in real-time — no auth needed. Uses the official AT Protocol public API.

No auth required — uses the public Bluesky API
Official endpoint — no anti-bot concerns
$1/1K trends — affordable trend intelligence


Quick Start

  1. Set maxTrends (1-25, default: 10)
  2. (Optional) Configure filters — categories, minimum post count, output format
  3. Click Run
  4. Receive structured trending topics in seconds

Minimal input:

{}

Customised input:

{
"maxTrends": 15,
"includePostCounts": true,
"categories": ["technology"],
"minPostCount": 1000,
"outputFormat": "flat"
}

Features

  • Real-time data — trends as they happen, no caching delays
  • No authentication needed — public endpoint
  • Configurable limits — fetch 1 to 25 trending topics per run
  • Category filtering — narrow results to specific categories
  • Post count filtering — only trends above a popularity threshold
  • Two output formats — flat array or detailed with metadata
  • Fallback endpoint — alternative endpoint if the primary is unavailable
  • Retry logic — exponential backoff for transient failures

Input Parameters

ParameterTypeDefaultMaxDescription
maxTrendsinteger1025Number of trending topics to fetch
includePostCountsbooleantrueInclude approximate post count (when available)
includeSampleActorsbooleanfalseSample accounts posting about each trend
categoriesstring[][]Filter by categories (e.g., ["technology", "politics"]). Empty = all.
minPostCountinteger0Minimum post count threshold (0 = no filter)
outputFormatstring"flat""flat" = array of trends, "detailed" = wrapped with metadata

Input Example

{
"maxTrends": 10,
"includePostCounts": true,
"includeSampleActors": false,
"categories": [],
"minPostCount": 0,
"outputFormat": "flat"
}

Output Format

Flat (default)

Returns a JSON array of trend objects, one per trending topic:

[
{
"rank": 1,
"topic": "ai-agents",
"displayName": "AI Agents",
"postCount": 15420,
"category": "technology",
"status": "hot",
"startedAt": "2026-07-04T18:30:00.000Z",
"link": "https://bsky.app/profile/trending.bsky.app/feed/abc123",
"scrapedAt": "2026-07-04T22:45:00.000Z"
},
{
"rank": 2,
"topic": "bluesky-anniversary",
"displayName": "Bluesky Anniversary",
"postCount": 8750,
"category": "pop-culture",
"status": "warm",
"startedAt": "2026-07-04T12:00:00.000Z",
"link": "https://bsky.app/profile/trending.bsky.app/feed/def456",
"scrapedAt": "2026-07-04T22:45:00.000Z"
}
]

Detailed

Returns an object with a metadata block and a trends array:

{
"metadata": {
"scrapedAt": "2026-07-04T22:45:00.000Z",
"source": "app.bsky.unspecced.getTrends",
"totalTrends": 15,
"filters": {
"categories": null,
"minPostCount": null
}
},
"trends": [
{
"rank": 1,
"topic": "ai-agents",
"displayName": "AI Agents",
"postCount": 15420,
"category": "technology",
"status": "hot",
"startedAt": "2026-07-04T18:30:00.000Z",
"link": "https://bsky.app/profile/trending.bsky.app/feed/abc123",
"scrapedAt": "2026-07-04T22:45:00.000Z",
"sampleActors": [
{
"did": "did:plc:abc123",
"handle": "techuser.bsky.social",
"displayName": "Tech User"
}
]
}
]
}

Comparison vs Generic Bluesky Scrapers

FeatureGeneric Post ScrapersBluesky Trending Topics
Trending topics❌ Not available✅ Yes
Posts/profiles✅ Yes❌ Not included
Auth requiredUsually❌ No
Anti-bot riskModerate❌ None (official API)
Use caseBulk data collectionTrend intelligence

Technical Notes

  • API endpoint: app.bsky.unspecced.getTrends via https://public.api.bsky.app
  • Rate limits: ~3,000 requests/hour typical for the public AppView endpoint
  • Runtime: Node.js 20+
  • Dependencies: apify SDK v3 only
  • No browser required — pure HTTP API calls
  • Fallback endpoint: app.bsky.unspecced.getTrendingTopics (lighter-weight structure)

Data Freshness

Data is fetched live from Bluesky on each run. There are no caching layers between this actor and the Bluesky API, so results always reflect the current trending state.


FAQ

Q: Do I need a Bluesky account?
No. The API endpoint used is fully public and requires no authentication.

Q: Can I get more than 25 trends?
The Bluesky API caps results at 25 per request. For a larger set, run the actor multiple times — but note that the API returns the top N, not paginated results.

Q: Why are some fields missing from the output?
The Bluesky API may not include all fields for every trend. For example, postCount and category are optional in the API response. The actor gracefully handles missing fields.

Q: Which categories are available?
The categories depend on what Bluesky returns. Common categories include technology, pop-culture, politics, sports, news, and more.

Q: What does "status" mean?
The Bluesky API assigns a status label to each trend, such as hot (rapidly growing engagement) or warm (steady engagement).