Pricing
from $1.50 / 1,000 results
Bluesky Scraper π¦
Scrape Bluesky posts and DMs without the hassle. This Actor extracts posts, replies, and direct messages from Bluesky, fast, reliable.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
1
Bookmarked
24
Total users
4
Monthly active users
3 months ago
Last modified
Categories
Share
Scrape Bluesky posts and DMs without the hassle. Scrapes posts, replies, and direct messages from Bluesky β fast, reliable, and no browser automation needed.
β¨ Features
- π Search Mode β Search for posts by keyword across all of Bluesky
- π€ User Feed Mode β Scrape posts from any public Bluesky profile
- π¬ Reply Threads β Extract full reply threads with configurable depth
- π¨ Direct Messages β Scrape your private DM conversations (requires auth)
- πΌοΈ Rich Content β Extracts text, images, videos, external links, and quote posts
- β‘ Fast & Lightweight β Uses the AT Protocol API directly (no browser needed)
- π Authenticated β Requires login with your credentials (app password)
π Getting Started
π Three Modes: Search, User Feed, or Messages
| Mode | When to Use | Required Fields |
|---|---|---|
| Search | Find posts by keyword across Bluesky | scrapeMode: posts, searchQuery, auth |
| User Feed | Scrape posts from a specific user | scrapeMode: posts, handle, auth |
| Messages | Scrape your direct messages | scrapeMode: messages, auth |
β οΈ Note: All modes require authentication.
π Posts Mode
π Search for Posts
Search for posts by keyword across all of Bluesky.
{"scrapeMode":"posts","searchQuery":"artificial intelligence","searchSort":"top","postCount":20}
Search Sort Options:
topβ Most relevant/popular results (default)latestβ Most recent posts first
π€ Scrape User Feed
Scrape posts from a specific Bluesky user's profile.
{"scrapeMode":"posts","handle":"apify.com","feedFilter":"posts_and_author_threads","postCount":25}
Feed Filter Options:
| Filter | Description |
|---|---|
posts_and_author_threads | Posts + conversation threads (default) |
posts_no_replies | Only original posts, no replies |
posts_with_replies | Posts including replies to others |
posts_with_media | Only posts with images/videos |
π¬ Including Reply Threads
Enable includeReplies to fetch the full reply thread for each post:
{"scrapeMode":"posts","handle":"jay.bsky.team","postCount":10,"includeReplies":true,"repliesDepth":3}
π¨ Messages Mode (DMs)
Scrape your direct message conversations. Requires authentication.
{"scrapeMode":"messages","conversationCount":10,"messagesPerConversation":50,"unreadOnly":false,"blueskyIdentifier":"your-handle.bsky.social","blueskyPassword":"your-app-password"}
Message Options:
| Parameter | Description | Default |
|---|---|---|
conversationCount | Number of conversations to fetch (0 = all) | 10 |
messagesPerConversation | Messages per conversation (0 = all) | 50 |
unreadOnly | Only fetch conversations with unread messages | false |
π JSON Examples for All Use Cases
1. Search Posts - Basic
Find posts about a topic (authentication required):
{"scrapeMode":"posts","searchQuery":"web scraping","postCount":10,"blueskyIdentifier":"your-handle.bsky.social","blueskyPassword":"your-app-password"}
2. Search Posts - Latest
Get the latest posts:
{"scrapeMode":"posts","searchQuery":"breaking news","searchSort":"latest","postCount":50,"blueskyIdentifier":"your-handle.bsky.social","blueskyPassword":"your-app-password"}
3. Search Posts - With Reply Threads
Search and get all reply threads:
{"scrapeMode":"posts","searchQuery":"controversial topic","searchSort":"top","postCount":20,"includeReplies":true,"repliesDepth":5,"blueskyIdentifier":"your-handle.bsky.social","blueskyPassword":"your-app-password"}
4. User Feed - All Post Types
Get all posts from a user (posts + threads):
{"scrapeMode":"posts","handle":"apify.com","feedFilter":"posts_and_author_threads","postCount":100}
5. User Feed - Original Posts Only
Get only original posts (no replies to others):
{"scrapeMode":"posts","handle":"jay.bsky.team","feedFilter":"posts_no_replies","postCount":50}
6. User Feed - Media Only
Get only posts with images/videos:
{"scrapeMode":"posts","handle":"photography.bsky.social","feedFilter":"posts_with_media","postCount":30}
7. User Feed - With All Replies
Get posts including all replies to other users:
{"scrapeMode":"posts","handle":"influencer.bsky.social","feedFilter":"posts_with_replies","postCount":100,"includeReplies":true,"repliesDepth":0}
8. User Feed - Unlimited Posts
Get ALL posts from a user (0 = unlimited):
{"scrapeMode":"posts","handle":"active-user.bsky.social","feedFilter":"posts_and_author_threads","postCount":0,"blueskyIdentifier":"your-handle.bsky.social","blueskyPassword":"your-app-password"}
9. Direct Messages - Basic
Get your recent DM conversations:
{"scrapeMode":"messages","conversationCount":10,"messagesPerConversation":50,"blueskyIdentifier":"your-handle.bsky.social","blueskyPassword":"your-app-password"}
10. Direct Messages - Unread Only
Get only conversations with unread messages:
{"scrapeMode":"messages","conversationCount":0,"messagesPerConversation":20,"unreadOnly":true,"blueskyIdentifier":"your-handle.bsky.social","blueskyPassword":"your-app-password"}
11. Direct Messages - Full Backup
Export ALL conversations with ALL messages:
{"scrapeMode":"messages","conversationCount":0,"messagesPerConversation":0,"unreadOnly":false,"blueskyIdentifier":"your-handle.bsky.social","blueskyPassword":"your-app-password"}
12. Brand Monitoring
Track mentions of your brand:
{"scrapeMode":"posts","searchQuery":"\"your brand name\"","searchSort":"latest","postCount":100,"includeReplies":true,"repliesDepth":2,"blueskyIdentifier":"your-handle.bsky.social","blueskyPassword":"your-app-password"}
13. Competitor Analysis
Monitor competitor's posts:
{"scrapeMode":"posts","handle":"competitor.bsky.social","feedFilter":"posts_no_replies","postCount":50,"includeReplies":true,"repliesDepth":3}
14. Hashtag/Topic Research
Find posts about a specific hashtag or topic:
{"scrapeMode":"posts","searchQuery":"#buildinpublic","searchSort":"top","postCount":100,"blueskyIdentifier":"your-handle.bsky.social","blueskyPassword":"your-app-password"}
π Authentication
Authentication is required for all operations.
{"blueskyIdentifier":"your-handle.bsky.social","blueskyPassword":"your-app-password"}
β οΈ Important: Use an App Password, not your main account password!
Create one at: Settings β App Passwords β Add App Password
Input Parameters
Mode Selection
| Parameter | Type | Description | Default |
|---|---|---|---|
scrapeMode | String | What to scrape: posts or messages | posts |
Posts Mode Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
searchQuery | String | Search term (enables search mode) | β |
searchSort | String | Sort: top, latest | top |
handle | String | User handle without "@" | β |
feedFilter | String | Feed filter type | posts_and_author_threads |
postCount | Integer | Posts to scrape (0 = all) | 10 |
includeReplies | Boolean | Fetch reply threads | false |
repliesDepth | Integer | Reply thread depth (0 = all) | 2 |
Messages Mode Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
conversationCount | Integer | Conversations to fetch (0 = all) | 10 |
messagesPerConversation | Integer | Messages per convo (0 = all) | 50 |
unreadOnly | Boolean | Only unread conversations | false |
Authentication
| Parameter | Type | Description | Default |
|---|---|---|---|
blueskyIdentifier | String | Your handle or email | β |
blueskyPassword | String | Your app password | β |
Protocol Settings
| Parameter | Type | Description | Default |
|---|---|---|---|
service | String | AT Protocol service URL (for alternative PDS servers) | https://bsky.social |
π Output Examples
Post Output
{"uri":"at://did:plc:xxx/app.bsky.feed.post/yyy","cid":"bafyrei...","text":"Just launched our new web scraping platform! π","author":"Apify","authorHandle":"apify.com","authorDid":"did:plc:vu5ic5ygdeyunpefgmlamsmw","authorAvatar":"https://cdn.bsky.app/img/avatar/...","createdAt":"2024-01-15T10:30:00.000Z","likeCount":142,"repostCount":28,"replyCount":15,"quoteCount":5,"url":"https://bsky.app/profile/apify.com/post/yyy","embed":{"type":"images","images":[{"url":"https://cdn.bsky.app/img/feed_fullsize/...","alt":"Screenshot of the new platform"}]},"replies":[{"uri":"at://did:plc:abc/app.bsky.feed.post/zzz","text":"This looks amazing!","author":"TechEnthusiast","authorHandle":"techlover.bsky.social","likeCount":8,"depth":1}]}
DM Output
{"conversation":{"id":"3abc123...","members":[{"did":"did:plc:xxx","handle":"friend.bsky.social","displayName":"Friend Name","avatar":"https://cdn.bsky.app/..."}],"lastMessage":{"id":"msg123","text":"Hey, how's it going?","sender":"did:plc:xxx","sentAt":"2024-01-15T10:30:00.000Z"},"unreadCount":0,"muted":false},"messages":[{"id":"msg123","text":"Hey, how's it going?","sender":{"did":"did:plc:xxx","handle":"friend.bsky.social","displayName":"Friend Name"},"sentAt":"2024-01-15T10:30:00.000Z","conversationId":"3abc123..."}]}
Embed Types
| Type | Description | Fields |
|---|---|---|
images | One or more images | images[].url, images[].alt |
video | Video content | video.url, video.thumbnail |
external | Link preview | external.uri, external.title, external.description |
quote | Quote post | record.uri, record.cid, record.text |
π― Use Cases
Posts
- Brand Monitoring β Track mentions of your company or product
- Market Research β Analyze trends and sentiment
- Content Curation β Find popular posts for content ideas
- Competitor Analysis β Monitor competitor activity
Direct Messages
- Backup DMs β Export your conversation history
- Message Analytics β Analyze your communication patterns
- Data Migration β Move conversations to another platform
- Research β Study DM patterns (with consent)
βοΈ How It Works
- Initialize β Creates a connection to Bluesky's API
- Authenticate (if provided) β Logs in for DM access or higher rate limits
- Fetch β Retrieves posts via search/feed or DMs via chat API
- Process β Extracts replies or messages as configured
- Output β Saves structured data to the dataset
π‘οΈ Rate Limits
| Status | Approximate Limits |
|---|---|
| Authenticated | ~3000 requests/minute |
π‘ Tips
- App passwords β Always use app passwords, never your main password
- Start small β Test with small counts before scaling
- Feed filters β Use
posts_no_repliesfor cleaner original content - Search tips β Use quotes for exact phrases:
"machine learning" - Alternative PDS β If your account is on a self-hosted PDS, set the
serviceparameter
π Legal & Ethical Use
This Actor scrapes Bluesky's. Please:
- Respect Bluesky's Terms of Service
- Don't share or expose private messages
- Use reasonable rate limits
- Comply with data protection laws
π€ Support
Having issues? Found a bug? Want a feature?
- Open an issue on the Actor's page
- Contact the developer through Apify
Built by nocodeventure β’ Made with π for the Apify community
