🦋 Bluesky Scraper - Posts, Profiles & Search
Pricing
Pay per usage
🦋 Bluesky Scraper - Posts, Profiles & Search
Scrape Bluesky (bsky.app) via the public AT Protocol API — no login needed. Get a user's posts, profile data, followers/follows, or search posts by keyword/hashtag. Clean JSON with engagement counts, links & images.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
ben
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🦋 Bluesky Scraper — Posts, Profiles, Followers & Keyword Search
Extract Bluesky (bsky.app) data through the official AT Protocol API — a user's posts and timeline, full profile stats, their followers/follows graph, or a keyword/hashtag search across the network. Bluesky is the fastest-growing open social network, and it's still wide open for data: pull clean, structured JSON with engagement counts, images, links and author details — no login required for posts, profiles and followers. Export to JSON/CSV/Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.
🦋 What is the Bluesky Scraper?
It turns any Bluesky account or search into a structured dataset. Pick a mode — a
user's posts, a profile, a follower/follows list, or a keyword search — give it
handles (like bsky.app or nytimes.com) or search terms, and it returns every
matching record with full engagement metrics straight from the public AT Protocol
endpoints. Because it reads a clean JSON API instead of a headless browser, it's fast
and cheap, with no residential proxy needed.
What data does it extract?
- Post text, created date and language for every post
- Engagement counts — likes, reposts, replies and quotes
- Author info — handle, display name, DID and avatar
- Images and external link attached to each post
- Reply / repost flags (
is_reply,is_repost) and who reposted it - Profile stats — followers, follows, post count, bio, banner and join date
- Follower / follows lists with each account's profile
- Post and profile URLs, plus a
scraped_attimestamp
⬇️ Input
Pick a mode, then supply handles (for posts/profile/followers/follows) or
searchTerms (for keyword search):
| Field | Description |
|---|---|
mode | posts, search, profile, followers or follows |
handles | Accounts to scrape (handles or DIDs), e.g. bsky.app, nytimes.com, did:plc:... |
searchTerms | Keywords or #hashtags to search (search mode) |
maxItems | Max records to return, split across handles/terms (1–50000) |
includeReplies | Include the user's replies in posts mode |
includeReposts | Include reposts (boosts) in the user's feed |
identifier / appPassword | Optional Bluesky handle + app password to make keyword search reliable |
proxyConfiguration | Optional Apify Proxy for IP rotation on large runs |
Example input
{"mode": "search","searchTerms": ["#immobilien", "bitcoin"],"maxItems": 500,"identifier": "you.bsky.social","appPassword": "xxxx-xxxx-xxxx-xxxx"}
⬆️ Output
Every post (or profile/account) is one clean row — view it as a table, or export JSON / CSV / Excel:
{"uri": "at://did:plc:abc.../app.bsky.feed.post/3kxyz...","url": "https://bsky.app/profile/bsky.app/post/3kxyz...","text": "Welcome to Bluesky!","created_at": "2026-06-26T09:00:00.000Z","indexed_at": "2026-06-26T09:00:02.000Z","language": "en","author_handle": "bsky.app","author_display_name": "Bluesky","author_did": "did:plc:abc...","like_count": 1240,"repost_count": 312,"reply_count": 88,"quote_count": 15,"is_reply": false,"is_repost": false,"reposted_by": null,"images": [],"external_link": null,"scraped_at": "2026-06-26T15:30:00.000Z"}
💡 Use cases
- 👂 Social listening & brand monitoring: track every mention of a brand, product or topic across the network everyone's migrating to.
- 📈 Trend & sentiment analysis: pull keyword/hashtag streams and feed them straight into an LLM.
- 🔍 Influencer & audience research: profile stats plus follower/follows graphs to map who matters in a niche.
- 🎯 Lead generation: find accounts posting about a topic or following a competitor.
❓ FAQ
How do I scrape Bluesky posts? Set mode: posts, add one or more handles (e.g.
bsky.app), and Run. You get every post with text, date, language, engagement counts,
images and the post URL.
Do I need an API key or login? No — posts, profiles and follower/follows graphs work with no login at all, straight from the public AT Protocol endpoints.
Why does keyword search need an app password? Bluesky's search endpoint is more
reliable when authenticated. Create a Bluesky app password (Settings → App
Passwords — never your main password) and pass it as identifier + appPassword.
Without it, search may return few or no results; the other modes stay login-free.
What's a DID? A DID (did:plc:...) is Bluesky's permanent account ID. You can
pass either a handle or a DID in handles.
Can I get a user's followers and follows? Yes — use mode: followers or
mode: follows to pull each account in their network with full profile data.
How many records can it return? Up to your maxItems cap (up to 50,000); it
paginates automatically and splits the cap across the handles or terms you give it.
Is there a rate limit? The public API is generous. The Actor paginates politely and backs off automatically on throttling, so large runs just keep flowing.
Can I run it on a schedule or via API? Yes — schedule recurring runs in Apify, call it via the API/SDK, or connect it to Make, Zapier or n8n.
Is scraping Bluesky legal? It reads publicly available data via Bluesky's own public API. Use it responsibly for research and monitoring, and follow applicable laws and Bluesky's terms.
🔗 You might also like
- Mastodon Scraper — posts, hashtags & trends from any instance
- Lemmy Scraper — the federated Reddit alternative
- Reddit Scraper — posts, comments & communities
- Instagram Scraper — posts, profiles & hashtags
Keywords: Bluesky scraper, bsky scraper, AT Protocol API, Bluesky API, Bluesky posts, Bluesky search, Bluesky followers, Bluesky profile scraper, social media scraper, social listening, atproto, fediverse scraper, Bluesky data export, sentiment analysis, Twitter alternative data.