Bluesky Scraper — Posts, Profiles & Search
Pricing
Pay per usage
Bluesky Scraper — Posts, Profiles & Search
Extract Bluesky posts by keyword, hashtag, or handle. Scrape profiles, threads, followers, and custom feeds. Filter by date, language, sort order. Full engagement metrics. No API key or login needed. Uses public AT Protocol. Export JSON, CSV, Excel.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
CryptoSignals Agent
Actor stats
0
Bookmarked
10
Total users
5
Monthly active users
34 minutes ago
Last modified
Share
Bluesky Scraper — Posts, Profiles, Followers & Feeds
Extract posts, profiles, threads, followers, following lists, and custom feeds from Bluesky at scale. Uses the public AT Protocol — no API key or login needed.
Free Trial Ending April 3
This actor is free while we collect feedback. Starting April 3, 2026, it moves to $4.99/month. Add a payment method at apify.com/billing to keep access.
What Can You Scrape?
| Data Type | Description |
|---|---|
| Posts | Search by keyword, hashtag, mention, author, domain, or date range |
| Profiles | Full user profiles with follower/following counts and bio |
| Followers | Complete follower list for any handle |
| Following | Complete following list for any handle |
| Threads | Full post threads with nested replies |
| Custom Feeds | Algorithmic and user-created feeds |
Features
- Advanced search filters — date range, language, author, domain, hashtags, mentions
- Sort by latest or top relevance
- Up to 50,000 items per run
- Full engagement metrics — likes, reposts, replies, quotes
- No authentication — uses the public AT Protocol API
- Respectful rate limiting — built-in delays and retries
Input Parameters
| Field | Type | Default | Description |
|---|---|---|---|
searchQuery | string | — | Keyword to search, e.g. "artificial intelligence", "#startup" |
handles | string[] | [] | Bluesky handles to scrape, e.g. ["jay.bsky.team"] |
scrapeType | string | "posts" | posts, profiles, both, followers, or following |
maxItems | integer | 100 | Max results per query/handle (1–50,000) |
sort | string | "latest" | latest or top |
since | string | — | Start date (ISO format, e.g. "2026-03-01T00:00:00Z") |
until | string | — | End date (ISO format) |
lang | string | — | Language code filter, e.g. "en", "fr" |
tag | string[] | [] | Hashtag filters |
mentions | string | — | Filter posts mentioning this handle |
author | string | — | Filter posts by author handle |
domain | string | — | Filter posts linking to this domain |
threadUris | string[] | [] | AT Protocol URIs of threads to scrape |
feedUris | string[] | [] | Custom feed URIs to scrape |
threadDepth | integer | 6 | Max depth when scraping threads |
Example Inputs
Search posts by keyword
{"searchQuery": "artificial intelligence","scrapeType": "posts","maxItems": 200,"sort": "top","lang": "en"}
Scrape a user's posts and profile
{"handles": ["jay.bsky.team"],"scrapeType": "both","maxItems": 100}
Get followers of an account
{"handles": ["bsky.app"],"scrapeType": "followers","maxItems": 5000}
Search posts from a date range with hashtags
{"searchQuery": "startup","tag": ["buildinpublic", "indiehacker"],"since": "2026-03-01T00:00:00Z","until": "2026-03-27T00:00:00Z","maxItems": 500}
Output Format
Post
{"text": "Just shipped our new feature and the response has been incredible...","authorHandle": "alice.bsky.social","authorDisplayName": "Alice","createdAt": "2026-03-25T10:30:00.000Z","likeCount": 45,"repostCount": 12,"replyCount": 8,"quoteCount": 3,"hashtags": ["buildinpublic", "startup"],"language": "en","uri": "at://did:plc:abc.../app.bsky.feed.post/xyz..."}
Profile
{"handle": "alice.bsky.social","displayName": "Alice","description": "Building things on the open web","followersCount": 5200,"followsCount": 340,"postsCount": 1820,"avatar": "https://...","indexedAt": "2026-03-25T00:00:00.000Z"}
Code Examples
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("cryptosignals/bluesky-scraper").call(run_input={"searchQuery": "AI tools","scrapeType": "posts","maxItems": 100,"sort": "top","lang": "en",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"@{item['authorHandle']}: {item['text'][:80]}... ({item['likeCount']} likes)")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('cryptosignals/bluesky-scraper').call({searchQuery: 'AI tools',scrapeType: 'posts',maxItems: 100,sort: 'top',lang: 'en',});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {console.log(`@${item.authorHandle}: ${item.text.slice(0, 80)}... (${item.likeCount} likes)`);});
cURL
# Start the runcurl -X POST "https://api.apify.com/v2/acts/cryptosignals~bluesky-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQuery": "AI", "scrapeType": "posts", "maxItems": 50}'# Get results (replace DATASET_ID)curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
Use Cases
- Social listening — monitor brand mentions and sentiment on Bluesky in real-time
- Audience research — analyze follower demographics and growth for any account
- Content strategy — find trending topics and high-engagement post patterns
- Lead generation — discover people discussing topics relevant to your business
- Academic research — collect public social media data at scale for analysis
- Competitor monitoring — track what competitors post and how their audience reacts
- Influencer discovery — find accounts with high engagement in specific niches
FAQ
Do I need a Bluesky account? No. The scraper uses the public AT Protocol API. No login or API key required.
How many results can I get? Up to 50,000 per run. For larger datasets, run multiple searches with different parameters.
Can I get private/blocked content? No. Only publicly available data is scraped.
How fresh is the data? Real-time. Each run fetches live data from the AT Protocol API.
What export formats are supported? JSON, CSV, Excel, XML, HTML. Connect via API, webhooks, Zapier, Make, or Google Sheets.
Integrations
- REST API — trigger runs and fetch results programmatically
- Webhooks — get notified when scraping completes
- Zapier / Make — connect to 5,000+ apps
- Google Sheets — export directly to spreadsheets
- Slack / Email — set up alerts for new posts matching your keywords
Related Scrapers
- Substack Scraper — Newsletter posts and subscriber data
- Hacker News Scraper — Stories, comments and jobs
- Reddit Scraper — Posts, comments and subreddits