Bluesky Profile & Posts Scraper
Pricing
from $19.00 / 1,000 results
Bluesky Profile & Posts Scraper
Scrapes Bluesky profiles by handle and returns each profile with its recent posts attached. Includes full post text, engagement metrics, and profile details. Export to CSV, JSON, Excel, or XML.
Pricing
from $19.00 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Bluesky Profile & Posts Scraper
Scrape Bluesky profiles and their recent posts by handle, up to a million posts per run. Each profile comes with its display name, bio, follower counts, and the latest posts with full text, likes, reposts, and replies. No login or API key. Export to CSV, JSON, Excel, or XML.
Bluesky's official API requires an app password and rate-limits you. This reads the public profile feeds directly, given one or more handles, and returns each profile with its recent posts attached in one fixed schema. Filter by handle and cap the number of posts per profile so only the data you need reaches your dataset.
| Who uses it | What they scrape Bluesky for |
|---|---|
| Market researchers | Track what a set of influential accounts is posting this week |
| Brand managers | Monitor competitor profiles and their latest announcements |
| Journalists | Archive the public posts of public figures for a story |
| Data analysts | Build a dataset of profiles and posts for trend analysis |
What it does
This Actor collects Bluesky profiles by handle and returns each profile as a flat record with its recent posts attached.
- π₯ Profile records: one row per handle with display name, bio, avatar, and follower counts.
- π Recent posts attached: each profile row includes up to 100 of its latest posts with full text and engagement metrics.
- π’ Flexible limits: set a global maximum posts per run and a per-handle post cap.
- π€ Multiple export formats: CSV, JSON, Excel, XML, and more via Apify's dataset tools.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Bluesky data
π Track competitor activity.
A brand manager runs the Actor on a list of competitor handles each morning to see their latest posts and engagement, then adjusts the day's content plan.
ποΈ Archive public figures.
A journalist scrapes the profiles of politicians and celebrities before a big story, keeping a timestamped dataset of their public statements.
π§ͺ Build a research corpus.
A data analyst collects posts from hundreds of accounts in a niche, then runs sentiment or topic modeling on the full text.
π Monitor brand mentions.
A social media manager scrapes the profiles of known brand advocates and detractors to catch new posts that mention the product.
Why choose this scraper
| What you get | |
|---|---|
| No API key | Reads public profile feeds directly, no app password or OAuth |
| One fixed schema | Every profile and post comes back in the same flat structure |
| Batch handles | Pass dozens or hundreds of handles in a single run |
| Export anywhere | CSV, JSON, Excel, XML, or push to any Apify integration |
How it compares
This Actor focuses on scraping profiles and their recent posts by handle, while the competitors below offer broader search or thread capabilities.
| Feature | ParseForge | Bluesky Scraper | Enterprise Grade | Bluesky Posts Search Scraper |
|---|---|---|---|
| Scrape by handle | Yes | Yes | Not listed |
| Scrape by keyword search | Not listed | Yes | Yes |
| Full comment threads | Not listed | Yes | Not listed |
| Profile details (bio, followers) | Yes | Not listed | Not listed |
| Recent posts per profile | Yes | Not listed | Not listed |
| No API key required | Yes | Not listed | Not listed |
Configure the run
Drive the Actor from a list of Bluesky handles, and set two limits: the total number of posts to collect per run and how many recent posts to attach per profile. The Input tab lists every parameter.
A first run with the defaults:
{"maxItems": 10,"handles": ["bsky.app"],"postsPerHandle": 10}
A larger pull:
{"maxItems": 200,"handles": ["bsky.app"],"postsPerHandle": 10}
Pricing
Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Bluesky Profile & Posts Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Bluesky through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/bluesky-profile-posts-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that the handles are spelled correctly and do not include the @ symbol or a URL. The Actor expects plain handles like bsky.app or jack.bsky.social.
Why are some profiles missing posts?
The profile may have fewer posts than your postsPerHandle setting, or the account may be private or deleted. Try lowering postsPerHandle or checking the handle directly on Bluesky.
Why did the run stop before reaching maxItems?
The Actor stops when it has read all available posts from the given handles. If the total posts across all profiles is less than maxItems, the run ends early.
Can I scrape a handle that contains special characters?
Bluesky handles can contain dots and hyphens. Pass them exactly as they appear, for example my-handle.bsky.social. Avoid adding @ or https://.
Why do I get an error about invalid input?
Make sure the handles field is a list of strings and that maxItems and postsPerHandle are integers within the allowed ranges. The input schema shows the exact limits.
FAQ
| Question | Answer |
|---|---|
| Do I need a Bluesky account or API key? | No. The Actor reads public profile feeds directly, so no login, app password, or API key is required. |
| How many handles can I scrape in one run? | You can pass as many handles as you like in the handles array. Each handle produces one profile record with its recent posts attached. |
| What is the difference between maxItems and postsPerHandle? | maxItems is the total number of posts to collect across the whole run. postsPerHandle is how many recent posts to attach to each individual profile, up to 100. |
| Can I get more than 100 posts per profile? | No, the Actor attaches up to 100 of the most recent posts per profile. For deeper history, run the Actor more frequently or use a search-based scraper. |
| What data comes back for each post? | Each post includes its text, author handle, like count, repost count, reply count, and timestamp, among other fields. The exact schema is shown in the sample output. |
| Can I scrape posts by keyword or hashtag? | This Actor scrapes by handle only. For keyword or hashtag search, use a Bluesky search scraper. |
| Does it scrape replies and comments? | It returns the recent posts made by the profile, not the replies to those posts. Full comment threads are not included. |
| What export formats are supported? | You can export the dataset as CSV, JSON, Excel, XML, or push it to any Apify integration like Google Sheets or a webhook. |
| Is this legal? | The Actor only reads publicly available data. You are responsible for complying with Bluesky's terms of service and any applicable laws in your jurisdiction. |
| How often should I run it? | You can schedule it daily, hourly, or on any cron schedule. Most users run it daily to keep a rolling archive of recent posts. |
Related actors
Browse the full ParseForge collection for more scrapers.
π Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
β οΈ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Bluesky Social, PBC. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
