🦋 Bluesky Scraper - Posts, Profiles & Search avatar

🦋 Bluesky Scraper - Posts, Profiles & Search

Pricing

Pay per usage

Go to Apify Store
🦋 Bluesky Scraper - Posts, Profiles & Search

🦋 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

ben

Maintained by Community

Actor 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_at timestamp

⬇️ Input

Pick a mode, then supply handles (for posts/profile/followers/follows) or searchTerms (for keyword search):

FieldDescription
modeposts, search, profile, followers or follows
handlesAccounts to scrape (handles or DIDs), e.g. bsky.app, nytimes.com, did:plc:...
searchTermsKeywords or #hashtags to search (search mode)
maxItemsMax records to return, split across handles/terms (1–50000)
includeRepliesInclude the user's replies in posts mode
includeRepostsInclude reposts (boosts) in the user's feed
identifier / appPasswordOptional Bluesky handle + app password to make keyword search reliable
proxyConfigurationOptional 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


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.