Bluesky Feed Generators API
Discover the popular custom feeds people use on Bluesky, with their likes.
- 1 credit per call
- Failed calls are free
- Updated
- bluesky.feed.get_feed_generators
{ "has_more": true, "total_returned": 21, "feeds": [ { "display_name": "For You", "like_count": 53174, "description": "A personalized algorithmic feed based on your likes.\n\nIt finds people who liked the same posts as you, and shows you what else they've like…", "did": "did:web:foryou.club", "indexed_at": "2026-05-06T01:45:57.363Z", "uri": "at://did:plc:3guzzweuqraryl3rdkimjamk/app.bsky.feed.generator/for-you" }, { "display_name": "Discover", "like_count": 39492, "description": "Trending content from your personal network", "did": "did:web:discover.bsky.app", "indexed_at": "2023-05-19T23:19:19.592Z", "uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot" } ]}
| # | Feed | Description | Likes | URI | Did | Indexed at |
|---|---|---|---|---|---|---|
| 1 | For You | A personalized algorithmic feed based on your likes. It finds p… | 53,174 | at://did:plc:3guzzweuqraryl3rdkimjamk/app.bsky.feed.generator/f… | did:web:foryou.club | 2026-05-06T01:45:57.363Z |
| 2 | Discover | Trending content from your personal network | 39,492 | at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/w… | did:web:discover.bsky.app | 2023-05-19T23:19:19.592Z |
| 3 | Popular With Friends | A mix of popular content from accounts you follow and content t… | 41,372 | at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/w… | did:web:discover.bsky.app | 2023-05-19T23:19:21.076Z |
| 4 | Mutuals | Posts from users who are following you back | 28,807 | at://did:plc:tenurhgjptubkk5zf5qhi3og/app.bsky.feed.generator/m… | did:web:skyfeed.xyz | 2023-05-22T21:29:12.432Z |
| 5 | Science | The Science Feed. A curated feed from Bluesky professional scie… | 29,468 | at://did:plc:jfhpnnst6flqway4eaeqzj2a/app.bsky.feed.generator/f… | did:web:bs.bossett.io | 2023-11-26T19:34:54.335Z |
| 6 | Artists: Trending | General art feed — image posts from artists across Bluesky, sor… | 32,793 | at://did:plc:y7crv2yh74s7qhmtx3mvbgv5/app.bsky.feed.generator/a… | did:web:api.graze.social | 2025-07-28T23:44:37.802Z |
| 7 | 📰 News | Headlines from verified news organisations in reverse-chronolog… | 23,982 | at://did:plc:kkf4naxqmweop7dv4l2iqqf5/app.bsky.feed.generator/v… | did:web:api.graze.social | 2026-09-30T19:21:50.061Z |
| 8 | Blacksky | An algorithm showcasing posts by Black users on the network. Us… | 28,108 | at://did:plc:w4xbfzo7kqfes5zb7r6qv3rw/app.bsky.feed.generator/b… | did:web:bsky.rudyfraser.com | 2025-09-24T13:48:28.652Z |
| 9 | What's Hot Classic | The original What's Hot experience | 10,359 | at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/h… | did:web:discover.bsky.app | 2023-05-19T23:19:20.098Z |
| 10 | Notícias do Momento | Noticias das últimas 24 horas, de fontes confiáveis e canais of… | 3082 | at://did:plc:7ba7lz54yll7pxslxv47ejws/app.bsky.feed.generator/a… | did:web:skyfeed.me | 2024-11-12T15:09:12.023Z |
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| cursor | string | no | Continuation cursor returned by a previous request. | |
| limit | integer | no | Maximum number of results to return. From 1 to 100. | |
| max_pages | integer | no | Maximum number of result pages to fetch. From 1 to 50. |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| feeds[].display_name | string | The feed's name. | For You |
| feeds[].description | string | What the feed shows. | A personalized algorithmic feed based on your likes. It finds p… |
| feeds[].like_count | integer | Likes on the feed. | 53,174 |
| feeds[].uri | string | The feed's permanent address on Bluesky. | at://did:plc:3guzzweuqraryl3rdkimjamk/app.bsky.feed.generator/f… |
| feeds[].did | string | The ID of the service that runs the feed. | did:web:foryou.club |
| feeds[].indexed_at | string | When Bluesky last indexed the feed. | 2026-05-06T01:45:57.363Z |
| feeds | array | Feeds you can follow. | 21 records |
| has_more | boolean | Whether more results are available. | true |
| total_returned | integer | How many results this answer holds. | 21 |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
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_feed_generators", "input": {}}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "bluesky.feed.get_feed_generators", "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_feed_generators", "input": {}}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
Use Upscrape to list the most popular custom feeds on Bluesky and what each one shows.
More from the Bluesky API
- Bluesky Profile API1 credit
- Bluesky Author Feed API1 credit
- Bluesky Post Thread API1 credit
- Bluesky Actors Search API1 credit
- Bluesky Followers API1 credit
- Bluesky Follows API1 credit
- Bluesky Post Likes API1 credit
- Bluesky Repost Users API1 credit
- Bluesky Trending Topics API1 credit
- Bluesky Feed Posts API1 credit
- Bluesky Resolve Handle API1 credit
Bluesky Feed Generators API FAQ
The short answers. The docs have the long ones.
How much does the Bluesky Feed Generators API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Every input is optional; the input fields below list what each one does.
Do I need a Bluesky login?
No. It reads public Bluesky data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds bluesky.feed.get_feed_generators, checks its price and runs it with the same credits as the REST API.
Your first Bluesky call is free.
Up to 100 free credits to start, no card needed.