Bluesky Omni Scraper avatar

Bluesky Omni Scraper

Pricing

Pay per usage

Go to Apify Store
Bluesky Omni Scraper

Bluesky Omni Scraper

Extract posts, profiles, threads and followers from Bluesky via the official AT Protocol API. Search by keyword or hashtag, scrape author feeds, full threads and follower lists. No browser, no login. Export to JSON, CSV or Excel.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

S. Klein

S. Klein

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

0

Monthly active users

9 days ago

Last modified

Share

Bluesky Scraper - Posts, Profiles & AT Protocol Data Extractor

Extract Bluesky posts, profiles, followers & threads via the public AT Protocol API. 7 scrape modes. No login required. No proxies. MCP-ready.

Try it free - click Try for free above. Most research tasks cost under $0.05.


What does Bluesky Scraper do?

This Actor connects directly to the public Bluesky AppView API (api.bsky.app) and supports seven scrape modes in one Actor:

ModeWhat it collects
searchPostsPosts matching a keyword, phrase, or hashtag
authorFeedPosts from one or more Bluesky accounts
postThreadA full post thread including nested replies
profileProfile stats for one or more accounts
followersFollower lists
followsFollowing lists
customFeedPosts from any public Bluesky feed generator

All modes support cursor-based pagination and export clean results to Apify datasets.


Why use Bluesky Scraper?

AdvantageWhy it matters
7 modes in one ActorSearch, profile, feed, thread, followers, following, and custom feeds without switching tools
Direct AT Protocol APIFaster, cheaper, and more reliable than browser scraping
Structured hashtags and mentionsExtracted from AT Protocol facets instead of fragile text parsing
No login requiredUses public data only
Stable post IDsEvery post includes a permanent AT URI
MCP-readyEasy to use from Claude, Codex, Cursor, VS Code, Windsurf, Zed, and other AI tools through Apify MCP

Common use cases

  • Brand monitoring across Bluesky
  • Research and journalism workflows
  • Influencer discovery and account analysis
  • Academic datasets for NLP and social analysis
  • Competitor intelligence
  • Social listening and trend tracking

Real-World Workflow Examples

Brand Monitoring Pipeline

  1. Run searchPosts daily with your brand name as query
  2. Filter results where likeCount > 5 for high-signal posts
  3. Export to CSV and load into your monitoring dashboard
  4. Use searchSort: "latest" to catch mentions in real time

Competitor Audience Analysis

  1. Run followers mode on a competitor's Bluesky handle
  2. Cross-reference follower handles with profile mode for stats
  3. Identify high-follower accounts for outreach targeting

Academic Dataset Collection

  1. Use searchPosts with date range (searchSince, searchUntil) and searchLang
  2. Collect posts around a specific event or topic
  3. Export to JSON for NLP processing — all text, hashtags, and mentions are pre-extracted

How to use Bluesky Scraper

  1. Click Try for free
  2. Choose a mode
  3. Enter a query, handle, post URL, or feed URI depending on the mode
  4. Set maxItems
  5. Start the run
  6. Download results as JSON, CSV, HTML, or Excel

Input

FieldRequiredDescription
modeYesOne of: searchPosts, authorFeed, postThread, profile, followers, follows, customFeed
searchQueryFor searchPostsKeyword, phrase, or hashtag such as #AI
handlesFor authorFeed, profile, followers, followsOne or more Bluesky handles
postUrlFor postThreadFull Bluesky post URL or AT URI
feedUriFor customFeedAT URI of a public feed generator
maxItemsNoMaximum items to collect. 0 means unlimited
searchSortNolatest or top
searchSinceNoStart date such as 2024-01-01
searchUntilNoEnd date such as 2024-12-31
searchLangNoISO 639-1 language code such as en or de
includeRepliesNoInclude replies in authorFeed
includeRepostsNoInclude reposts in authorFeed

Example search input:

{
"mode": "searchPosts",
"searchQuery": "#AI",
"searchSort": "latest",
"searchLang": "en",
"maxItems": 500
}

Example custom feed input:

{
"mode": "customFeed",
"feedUri": "at://did:plc:z72i7hdynmchkltzmefcsowb/app.bsky.feed.generator/whats-hot",
"maxItems": 100
}

Output

Each item is pushed to the default Apify dataset.

Example post output:

{
"postId": "at://did:plc:abc123/app.bsky.feed.post/3kwikpostabcde",
"url": "https://bsky.app/profile/alice.bsky.social/post/3kwikpostabcde",
"text": "Really enjoying the discourse around #AI safety this week.",
"authorHandle": "alice.bsky.social",
"authorDisplayName": "Alice",
"authorFollowerCount": 3200,
"likeCount": 47,
"repostCount": 12,
"replyCount": 8,
"quoteCount": 3,
"engagementRate": 0.0192,
"createdAt": "2024-11-15T14:22:30.000Z",
"lang": ["en"],
"hasMedia": false,
"tags": ["AI"],
"scrapedMode": "authorFeed"
}

Key output fields:

  • postId, url, text
  • authorHandle, authorDisplayName, authorDid
  • likeCount, repostCount, replyCount, quoteCount
  • engagementRate
  • createdAt, lang
  • tags, mentionedDids
  • hasMedia, mediaUrls

Use with AI agents via Apify MCP

This Actor can be used from AI tools such as Claude, Codex, Cursor, VS Code, Windsurf, Zed, and other MCP-compatible clients through Apify's Actors MCP server.

Important: this Actor is not a standalone remote MCP server. Instead, you connect Apify's Actors MCP server once, then ask your assistant to use this Actor.

MCP setup

Add this MCP server configuration to your client:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server"],
"env": {
"APIFY_TOKEN": "your_apify_api_token_here"
}
}
}
}

Copy-paste prompt for Claude, Codex, Cursor, and similar tools

If your AI assistant can edit MCP settings for you, paste this:

Please set up Apify's Actors MCP server in my MCP configuration.
Use this package:
- command: npx
- args: -y @apify/actors-mcp-server
Set my APIFY_TOKEN in the MCP environment.
After setup, use the Apify actor "bluesky-scraper" and help me run it from chat.

Example prompts after setup

  • Search for the 20 most recent Bluesky posts about #climatepolicy in English and summarize the main arguments.
  • Fetch the full reply thread for this Bluesky post and identify the main discussion points.
  • Find the top 50 followers of atproto.com and list their display names and follower counts.
  • Run the bluesky-scraper actor in profile mode for these handles and compare their audience sizes.

Client notes

  • Claude, Codex, Cursor, VS Code, Windsurf, and Zed can usually use the stdio MCP config above directly.
  • n8n, LangChain, OpenAI Agents SDK, Gemini, and custom apps can use Apify actors too, but the exact MCP wiring depends on the client runtime you use around Apify's MCP server.

How much does it cost to scrape Bluesky?

Run sizeEstimated cost
100 posts~$0.01-$0.05
1,000 posts~$0.10-$0.30
10,000 posts~$1.00-$2.00

New Apify accounts receive $5 in free monthly credits.

Bluesky's public API means no proxy costs are required — making this one of the cheapest social scrapers on Apify.


Tips

  • Use searchSince and searchUntil to reduce noise in historical searches.
  • Use searchLang for multilingual topics.
  • authorFeed is best when you need engagement metrics and account-level analysis.
  • postThread is best for journalism and conversation analysis.
  • maxItems: 0 enables unlimited collection, but use it carefully for large accounts.

Bluesky vs Twitter/X for research

If you need social data and want a reliable, open source of truth, Bluesky has real advantages:

  • Public API with no authentication wall
  • Consistent data structure via AT Protocol
  • Permanent post IDs that do not disappear
  • Chronological feed available without algorithmic filtering
  • Growing user base especially in tech, academia, and journalism

For bulk historical data or brand monitoring, Bluesky is increasingly a viable complement or alternative to X/Twitter data pipelines.


FAQ

Is scraping Bluesky legal? This Actor accesses public Bluesky data through the public AT Protocol API. You are responsible for complying with Bluesky terms and applicable regulations.

Can I scrape private accounts? No. This Actor only accesses public data.

Why are some fields null in searchPosts mode? The public search endpoint returns lighter author objects than other endpoints.

What rate limits apply? The Actor handles public API rate limits and honors retry headers where applicable.

How is this different from Twitter/X scrapers? Bluesky uses the open AT Protocol API which is publicly accessible and stable. There are no login walls, no CAPTCHAs, and no rate-limit workarounds needed. Data structure is clean and consistent by design.

Can I monitor hashtags in real time? Use searchPosts mode with searchSort: "latest" and schedule the Actor to run every 15–30 minutes on Apify. Each run picks up the newest posts matching your query.

What is the difference between an AT URI and a bsky.app URL? A bsky.app URL like https://bsky.app/profile/alice.bsky.social/post/3kwik is the human-readable link. An AT URI like at://did:plc:abc123/app.bsky.feed.post/3kwik is the permanent protocol-level identifier. Both are included in the output.

What happens if a handle changes? Bluesky handles can change but the underlying DID (authorDid) is permanent. Use the DID for long-term tracking instead of the handle.

Do you support custom pipelines or features? Yes. Contact us through the Apify platform if you need custom work.