Bluesky Scraper — Profiles, Posts & Search API
Pricing
from $1.30 / 1,000 search record extracteds
Bluesky Scraper — Profiles, Posts & Search API
Scrape Bluesky (bsky.app) profiles & posts into clean structured data — followers, bio, engagement counts, media, links. Search by keyword or pull full profiles + post feeds. JSON/CSV/Excel. No login or API key needed.
Pricing
from $1.30 / 1,000 search record extracteds
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
Bluesky Scraper — Profiles, Posts & Search Data 🦋
🎉 Turn the AT Protocol's open social graph into a clean, structured dataset — profiles, posts, search and full author feeds in one run.
For social listeners, growth marketers, researchers and lead-gen teams who need Bluesky data without writing code.
📋 Overview
Bluesky Scraper pulls public Bluesky (bsky.app) data into ready-to-use datasets — search the network by keyword, or hand it specific accounts and get the full picture: followers, bio, post counts, engagement metrics, media and links.
Why thousands of professionals choose us:
- ✅ Two modes, one tool: cheap keyword Search (many profiles or posts) + full Detail (complete profiles + post feeds)
- ⚡ Fast & clean: up to 100 records per request, cursor-paginated, returned as tidy JSON/CSV/Excel
- 🎯 40+ structured fields: handles, bios, follower/following/post counts, likes, reposts, replies, quotes, bookmarks, embeds, media and language tags
- 💰 Best price on the market: transparent pay-per-result — only pay for records you actually receive
- 💎 Native filters: sort, language, date range, author, mentions, link domain and hashtag — Bluesky's own search filters exposed
- ✨ No login, no API key: works entirely on public data, zero setup
✨ Features
- 🔎 Keyword Search: find profiles or posts matching any term, across the whole network
- 👤 Full Profile Detail: follower / following / post counts, verification status, avatar & banner
- 📝 Author Feeds: pull a profile's recent posts with full engagement metrics and embeds
- 🎚️ Post Filters: top/latest sort, language, since/until dates, author, mentions, domain, hashtag
- 🔗 Search-URL Input: paste a Bluesky search URL and keep all its filters
- 📊 Engagement Metrics: likes, reposts, replies, quotes and bookmarks on every post
- 🖼️ Media Extraction: avatar, banner, post images, video thumbnails and external link cards
- 🚀 Bulk Mode: many search terms or many profiles in a single run
- 📤 Clean Exports: JSON, CSV and Excel straight from the Apify dataset
🎬 Quick Start
Pick a mode, give it a term or a profile, hit Start. Results stream into the dataset as they're found. Export to JSON/CSV/Excel when done.
curl -X POST https://api.apify.com/v2/acts/sian.agency~bluesky-scraper/runs?token=YOUR_TOKEN \-H 'Content-Type: application/json' \-d '{"scrapeMode": "search", "recordType": "profiles", "searchTerm": "los angeles"}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose a mode
Search to discover many records by keyword, or Detail to fully profile specific accounts.
Step 2: Enter your target
A search term (or several), or one or more profiles (handle, DID, or bsky.app/profile/... URL).
Step 3: Run & export
Click Start, then download your dataset as JSON, CSV or Excel.
That's it! In under a minute, you'll have:
- Structured profile or post records
- Full engagement and follower metrics (Detail mode)
- A clean dataset ready for analysis or import
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| scrapeMode | string | No | search (keyword → many) or detail (profiles → full) |
| recordType | string | No | In search mode: profiles or posts |
| searchTerm | string | No | A keyword/phrase to search |
| searchTerms | array | No | Multiple keywords (bulk search) |
| searchUrl | string | No | Paste a Bluesky search URL (filters preserved) |
| profile | string | No | A single profile (handle / DID / URL) for Detail mode |
| profiles | array | No | Multiple profiles for bulk Detail |
| includeFeed | boolean | No | Detail mode: also pull each profile's post feed |
| feedPages | integer | No | Feed pages per profile (100 posts each) |
| sort, lang, since, until, author, mentions, domain, tag | string | No | Post-search filters |
| maxResults | integer | No | Cap on records per run (FREE: 25, PAID: unlimited) |
| maxPages | integer | No | Cursor pages per search term |
Search example:
{"scrapeMode": "search","recordType": "posts","searchTerm": "wildfire","sort": "latest","lang": "en","maxPages": 3}
Detail example (profiles + feed):
{"scrapeMode": "detail","profiles": ["laist.com", "https://bsky.app/profile/bsky.app"],"includeFeed": true,"feedPages": 2}
📤 Output
Results are saved to the Apify dataset with 40+ fields including:
| Field | Type | Description |
|---|---|---|
| url | string | Public bsky.app URL |
| handle | string | Account handle |
| displayName | string | Profile display name |
| description | string | Profile bio |
| followers_count | number | Follower count (Detail) |
| posts_count | number | Total posts (Detail) |
| verified | boolean | Verification status |
| text | string | Post text |
| author_handle | string | Post author |
| like_count / repost_count / reply_count | number | Engagement metrics |
| embed_type | string | images / video / external / record |
| images | array | Media URLs |
| created_at | string | Creation timestamp |
Example (profile):
{"id": "did:plc:kosvedukjcyvdfv64zltdauy","url": "https://bsky.app/profile/laist.com","handle": "laist.com","displayName": "LAist","followers_count": 9901,"follows_count": 41,"posts_count": 296,"verified": true}
Example (post):
{"url": "https://bsky.app/profile/laist.com/post/3moxztpaf4x27","text": "Today in L.A. ...","author_handle": "laist.com","like_count": 42,"repost_count": 7,"reply_count": 3,"embed_type": "images","langs": ["en"]}
💼 Use Cases & Examples
1. Social Listening & Brand Monitoring
Marketing teams tracking what's said about a brand, topic or campaign on Bluesky. Input: keyword(s) in posts mode · Output: posts with engagement · Use: spot trends and sentiment early.
2. Influencer & Creator Discovery
Agencies finding accounts in a niche, ranked by reach. Input: keyword in profiles mode, then Detail for follower counts · Output: profiles with audience size · Use: build outreach lists.
3. Lead Generation
B2B teams collecting public handles, bios and links from a community. Input: keyword search → profile detail · Output: structured profile records · Use: enrich a prospect list.
4. Academic & Trend Research
Researchers studying conversations, hashtags or news diffusion on the AT Protocol. Input: posts with date/lang/hashtag filters · Output: dated, language-tagged posts · Use: time-series analysis.
5. Competitor & Audience Analysis
Growth teams benchmarking accounts and their content. Input: profiles + feed · Output: follower counts + post performance · Use: compare engagement.
6. Newsroom & Journalism
Reporters monitoring official accounts and breaking-news posts. Input: author/domain filters · Output: posts linking a source · Use: verify and source stories.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/bluesky-scraper').call({scrapeMode: 'search', recordType: 'profiles', searchTerm: 'los angeles'});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/bluesky-scraper').call(run_input={'scrapeMode': 'detail', 'profiles': ['laist.com'], 'includeFeed': True})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~bluesky-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"scrapeMode": "search", "recordType": "posts", "searchTerm": "nba", "sort": "top"}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule or webhook
- HTTP Request: Call the actor API
- Process: Handle JSON results
- Action: Save, notify, or transform
📊 Performance & Pricing
FREE Tier (Try It Now)
- 25 records per run — full feature access, same quality
- No credit card required
- Perfect for testing and small projects
PAID Tier (Production Ready)
- Unlimited records per run
- Faster, uninterrupted runs
- Pay-per-result: only charged for records you actually receive
💰 Best price on the market — transparent, low per-record pricing with no monthly minimum.
❓ Frequently Asked Questions
Q: How many records can I get? A: FREE tier: 25 per run. PAID tier: unlimited.
Q: Do I need a Bluesky account or API key? A: No. The actor only reads publicly available data — no login, no key, no setup.
Q: Can I get follower counts? A: Yes — use Detail mode. Keyword search returns lightweight profile cards; Detail mode fills in follower/following/post counts.
Q: What output formats are available? A: JSON, CSV and Excel — export directly from the Apify dataset.
Q: Can I filter posts by date, language or hashtag? A: Yes — posts search supports sort, language, since/until dates, author, mentions, link domain and hashtag.
Q: Is this legal? A: We only extract publicly available data. See the legal note below.
🐛 Troubleshooting
No results in search mode
- Check your term isn't too narrow; try
topsort for posts. - Increase
maxPagesto fetch more cursor pages.
Profile not found in Detail mode
- Verify the handle/DID is correct; pasted profile URLs and
@handleare both accepted.
Follower counts are empty
- Keyword search doesn't include counts by design — switch to Detail mode for full counts.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
⚠️ Disclaimer
This is an independent tool for extracting publicly available data. It is not affiliated with, endorsed by, or sponsored by Bluesky Social, PBC, or the Bluesky/AT Protocol project. "Bluesky" and related marks are the property of their respective owners and are used here for descriptive purposes only.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's repository
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools