Bluesky Posts & Profiles Scraper
Pricing
from $2.49 / 1,000 results
Bluesky Posts & Profiles Scraper
Bluesky Scraper SD - Bluesky Scraper is a social media data tool that extracts public Bluesky posts by search term, profile or post link: text, likes, reposts, replies, quotes, hashtags, links, images, video and author stats. No login.
Pricing
from $2.49 / 1,000 results
Rating
0.0
(0)
Developer
Neuro Scraper
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
Bluesky Scraper — public Bluesky posts by search term, profile or post link
Bluesky Scraper reads public Bluesky posts through Bluesky's own public API (the AT Protocol AppView). It needs no account, no login and no API key.
It does three things, in any mix:
- Search terms → posts matching a word, a #hashtag or Bluesky search syntax (
from:handle), sorted by latest or top. - Profiles → a profile's posts, newest first, paging through the whole history until your limit.
- Post links → one post plus its replies (the reply tree, with depth).
Every row is one post with its text, counts, links, media and the author's public profile numbers.
Input
| Field | Type | Default | Meaning |
|---|---|---|---|
searchTerms | list | web scraping (prefill) | Words, #hashtags, from:handle ... one per line |
searchSort | latest / top | latest | Order of search results |
searchLanguage | text | – | Optional language code, e.g. en |
searchSince, searchUntil | YYYY-MM-DD | – | Optional date window for searches |
profiles | list | bsky.app (prefill) | Handles, @handles, DIDs or https://bsky.app/profile/... links |
profileFeedFilter | select | posts_no_replies | Posts only, posts and replies, posts with media, posts with video, author threads |
includeReposts | boolean | false | Also return posts the profile reposted (isRepost: true) |
postUrls | list | – | https://bsky.app/profile/<handle>/post/<id> → the post and its replies |
replyDepth | integer | 6 | Reply levels to follow for post links |
maxResults | integer | 20 | Posts per search term, profile or post link |
maxItems | integer | – | Optional cap on the whole run |
proxyConfiguration | proxy | off | Not needed for Bluesky's open API |
Output (one row per post)
| Field | Meaning |
|---|---|
postUrl, uri, cid | Link on bsky.app, AT Protocol URI and content id |
text, createdAt, indexedAt, languages | Post text, post time, index time, language tags |
likeCount, repostCount, replyCount, quoteCount, bookmarkCount | Engagement counts |
hashtags, mentions, links | From the post's rich-text facets |
images | [{url, alt}] full-size image links with alt text |
videoUrl, videoThumbnailUrl | HLS playlist (.m3u8) and thumbnail of a video post |
externalUrl, externalTitle, externalDescription | Link card |
quotedPostUrl | The post this one quotes |
isReply, replyParentUrl, replyRootUrl | Reply information |
isRepost, repostedByHandle | Set for reposts on a profile (when includeReposts is on) |
threadDepth | Post links only: 0 = the post, 1 = direct reply, ... |
labels | Moderation labels on the post |
authorHandle, authorDid, authorDisplayName, authorAvatarUrl, authorDescription, authorFollowersCount, authorFollowsCount, authorPostsCount, authorCreatedAt, authorProfileUrl | Author's public profile |
source, sourceInput, scrapedAt | search / profile / thread, your input, UTC time |
Measured limits (2026-10-03, local runs)
- Search: one page, at most 100 posts per search term. Bluesky answers the next page with HTTP 403 "Request forbidden by administrative rules" without login. The Actor stops there and says so in the log; it does not work around the block.
- A
#hashtagsearch combined withsearchSince/searchUntilanswers HTTP 400 at Bluesky; the same hashtag without dates, or the word without#, works. - Profiles page through the full history: 250 posts of a profile came from 3 pages in our test.
- Post links: a post with 45 direct replies returned 147 replies at depth 6. Very large threads may return fewer replies than
replyCount. - Speed: 350 posts in 16 seconds (14 API requests, one per second).
Example
{"searchTerms": ["web scraping"], "profiles": ["bsky.app"], "maxResults": 20}
Bluesky's developer guidelines ask services that store posts to honour later deletions; re-check stored posts if you keep them long term.