Scrape Multiple Bluesky Accounts: Posts + Profiles
Feed a list of Bluesky handles and export every account's recent posts and profile into one dataset, ready for a competitor or creator roundup.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
searchQuery,blueskyIdentifier,blueskyAppPassword(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.002 per post = $2 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Post returned | Charged per post returned. | $0.002 |
Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-06-12, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
searchQuery | Keyword(s) to search Bluesky posts for (e.g. "artificial intelligence"). Bluesky stopped serving post search to signed-out clients, so this field needs a Bluesky handle + app password below. Leave empty to scrape specific authors instead (no login needed). | string |
blueskyIdentifier | Your Bluesky handle or email, e.g. yourname.bsky.social. Required ONLY for the Search query mode - Bluesky's API returns 403 for signed-out post search. Author handles, profiles and feeds need no login. | string |
blueskyAppPassword | An app password from bsky.app -> Settings -> Privacy and security -> App passwords. Never your account password. Required ONLY for the Search query mode. | string |
authorHandles | Bluesky handles to scrape (e.g. bsky.app, jay.bsky.team). For each handle the actor returns the author's profile plus their recent posts. The leading @ is optional. Leave empty if using a Search query instead. | array |
maxItems | Maximum number of posts to return per search query or per author handle. Pagination follows the API cursor until this limit is reached. | integer |
notionConnector | Optional. Write each post as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default) — results are always saved to the dataset regardless. | string |
notionParentId | Optional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead. | string |
What you get
A structured dataset — each result includes fields like:
authorHandlesdetailssearchQueryauthorHandletextlikeCountrepostCountcreatedAtpostUrlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
More use cases for Bluesky Scraper
Bluesky Brand Monitoring: Track Mentions & Engagement
Social teams can see who's posting about a brand on Bluesky, with each post's author, like count, and repost count for real-time mention tracking.
Bluesky Dataset by Keyword for Sentiment & NLP
Researchers collect thousands of keyword-matched Bluesky posts as a clean dataset for sentiment analysis, text labeling, and NLP model training.
Scrape Bluesky Posts by Keyword or Hashtag
Search Bluesky for any keyword or hashtag and collect matching posts — text, author handle, likes, reposts and timestamps. Keyless, structured JSON.
Track a Bluesky User's Posts
Collect the latest posts from any Bluesky account by handle — full text, engagement counts and timestamps. No login required, structured JSON output.
Built on Bluesky Scraper — see every input, output field and price on the tool page.
Where this tool sits
- Categories
- Social Media Scrapers
- Platforms
- Bluesky