Bluesky Scraper & API - Posts, Search, Profiles, Followers
Pricing
from $1.20 / 1,000 results
Bluesky Scraper & API - Posts, Search, Profiles, Followers
Scrape Bluesky through the official API: keyword post search, posts with like, repost and reply counts, profiles with follower totals, follower lists, user search and full threads. Clean JSON for social listening, influencer research and AI agents. No login needed except for post search.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Pasquale Nirta
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Bluesky Scraper: posts, search, profiles, followers and threads
Collect public data from Bluesky through the official AT Protocol API. Give it a list of handles, search terms or post URLs and it returns clean JSON rows: posts with full engagement counts, profiles with follower and post totals, follower and following lists, user search results, or a complete reply thread.
Because it reads Bluesky's official API rather than scraping HTML, results are fast and stable. No login or cookies are needed for anything except keyword post search, which Bluesky itself gates behind login (a revocable app password of your own).
What it does
| Operation | You provide | You get |
|---|---|---|
| Posts | handles or profile URLs | Each user's posts with likes, reposts, replies, quotes, images, link cards |
| Profiles | handles or profile URLs | Bio, follower count, following count, post count per user |
| Followers | handles | The accounts following each user |
| Following | handles | The accounts each user follows |
| Search users | keywords | Matching accounts with profile data |
| Search posts | keywords + your app password | Latest posts matching each keyword, with engagement counts |
| Thread | post URLs | The post and every reply beneath it, flattened |
Typical uses: social listening and brand monitoring, influencer research, audience analysis, tracking what a set of accounts posts over time (run it on a schedule and diff by post URI), and feeding Bluesky data to AI agents. The Actor works from Apify's MCP server, so agents in Claude, Cursor and similar tools can call it directly.
Input
{"operation": "posts","targets": ["bsky.app", "https://bsky.app/profile/atproto.com"],"maxItemsPerTarget": 100,"includeReplies": false,"includeReposts": false}
Targets are flexible: handles (name.bsky.social), custom-domain handles (bsky.app), DIDs, or profile URLs all work. For the thread operation, paste a post URL straight from your browser.
Output
One row per item. Post rows:
{"type": "post","uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l","url": "https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l","handle": "bsky.app","displayName": "Bluesky","text": "…","createdAt": "2026-07-01T18:04:12.000Z","likeCount": 4120,"repostCount": 388,"replyCount": 214,"quoteCount": 77,"isReply": false,"images": ["https://cdn.bsky.app/img/feed_fullsize/..."],"externalLink": null,"source": "bsky.app"}
User rows carry handle, displayName, description, followersCount, followsCount, postsCount and avatar.
Export as JSON, CSV, Excel or RSS, or read the dataset through the Apify API from your own code.
Pricing
Pay per event: a small fee when a run starts, then a fee per row in your results. Duplicate items are filtered out before charging.
Use from AI agents
This Actor works out of the box with AI agents through Apify's MCP server. Connect an agent (Claude, Cursor, or anything MCP-compatible) to Apify and it can call apeye/bluesky-scraper directly: ask "what has this account posted about pricing this month, and who are its most-followed followers?" and the agent picks the operations, runs them and reads the results. Row types and field names are kept flat and predictable so models can consume them without custom parsing.
FAQ
Is this legal? Yes. The Actor reads the official, publicly documented AT Protocol API that serves Bluesky's own app. Only public data is collected, the same data anyone sees without logging in.
How does post search work? Bluesky requires login for post search (their rule, not ours), so the searchPosts operation takes your handle and an app password. App passwords are Bluesky's official mechanism for third-party tools: create one at Settings > App Passwords, revoke it any time, and it never grants access to your main password or account settings. The credential field is stored encrypted and used only to log in. Every other operation needs no credentials at all.
How fresh is the data? It's read live from the API at run time. Engagement counts are the values at the moment of the run.
What about rate limits? The Actor paces itself within Bluesky's public API limits and retries transient errors automatically.
Support
If something breaks or you need another operation (lists, likes of a post, feeds), open an issue on the Issues tab. I check most days and usually reply within a day or two.