Bluesky Trending Topics
bluesky.feed.get_trending_topics
Get the topics trending on Bluesky now: title, summary, category and how many posts each has.
At a glance
- Endpoint ID
bluesky.feed.get_trending_topics- Price
- 0.75 credits per call; failed calls are free
- Runs for up to
- 120 seconds
Request
Send the endpoint ID as capability and its fields as input. Set UPSCRAPE_API_KEY to your key first.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "bluesky.feed.get_trending_topics", "input": {}}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "bluesky.feed.get_trending_topics", "input": {}}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "bluesky.feed.get_trending_topics", "input": {}}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
Input
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
limit |
integer | no | Maximum number of results to return. From 1 to 25. |
Response
A finished call answers with HTTP 200; the data is in results[0].data, and billing.credits_charged is what it cost. A call still running after the wait answers 202: see jobs and results.
This is results[0].data from a real run:
{ "topics": [ { "display_name": "Altman on accepting AI risks", "category": "science-tech", "description": "OpenAI CEO Sam Altman told Politico AI benefits justify some harms, unlike Anthropic's stance.", "feed_uri": "at://did:plc:qrz3lhbyuxbeilrc6nekdqme/app.bsky.feed.generator/e28add03bb23", "link": "/profile/did:plc:qrz3lhbyuxbeilrc6nekdqme/feed/e28add03bb23", "post_count": 713, "started_at": "2026-10-04T21:54:18.560479+00:00", "status": "trending", "topic": "e28add03bb23" }, { "display_name": "Data center community impacts", "category": "science-tech", "description": "Big Tech facilities draw criticism over pollution, noise, water use, tax breaks, and rising power bills.", "feed_uri": "at://did:plc:qrz3lhbyuxbeilrc6nekdqme/app.bsky.feed.generator/6c19c0bde8c3", "link": "/profile/did:plc:qrz3lhbyuxbeilrc6nekdqme/feed/6c19c0bde8c3", "post_count": 569, "started_at": "2026-10-03T12:14:21.902656+00:00", "status": "trending", "topic": "6c19c0bde8c3" } ]}
Fields
| Field | Type | What it is | Example |
|---|---|---|---|
topics[].display_name |
string | The topic's name. | Altman on accepting AI risks |
topics[].description |
string | A short summary of the topic. | OpenAI CEO Sam Altman told Politico AI benefits justify some ha… |
topics[].category |
string | The topic's category. | science-tech |
topics[].post_count |
integer | Posts about the topic, as Bluesky counts them. | 713 |
topics[].started_at |
string | When the topic started trending. | 2026-10-04T21:54:18.560479+00:00 |
topics[].feed_uri |
string | The address of the topic's feed. | at://did:plc:qrz3lhbyuxbeilrc6nekdqme/app.bsky.feed.generator/e… |
topics[].link |
string | The topic's page on Bluesky. | /profile/did:plc:qrz3lhbyuxbeilrc6nekdqme/feed/e28add03bb23 |
topics[].status |
string | Whether the topic is trending. | trending |
topics[].topic |
string | Bluesky's ID for the topic. | e28add03bb23 |
topics |
array | Trending topics. | 10 records |
If a call fails
A failed call costs nothing. The response carries an error.code you can branch on; Errors and retries lists every code and which ones to retry.
Other Bluesky endpoints
bluesky.actor.get_followersFollowersbluesky.actor.get_followsFollowsbluesky.actor.get_profileProfilebluesky.actor.resolve_handleResolve handlebluesky.actor.searchActors searchbluesky.feed.get_author_feedAuthor feedbluesky.feed.get_feedFeed postsbluesky.feed.get_feed_generatorsFeed generatorsbluesky.feed.get_likesPost likesbluesky.feed.get_post_threadPost threadbluesky.feed.get_reposted_byRepost users
Something missing or unclear? Ask the team that builds the Bluesky endpoints.