Skip to content

Bluesky Scraper

Try for free

Scrape Bluesky posts by keyword, hashtag or date, plus profiles, reply threads, custom feeds, lists, followers and likers. Text, author, likes, reposts, images, video, links and hashtags. No login needed.

🦋 Bluesky Scraper

Scrape Bluesky posts by keyword, hashtag or date range, and pull complete profiles, reply threads, custom feeds, lists, followers and likers. Every post comes with its text, author, like, repost, reply and quote counts, images, video, link cards, hashtags and mentions. No login, no account and no API key needed, and it costs $0.50 per 1,000 results.

✨ Why use Bluesky Scraper?

  • 🔓 No login needed — reads Bluesky's public API, so you don't risk an account and don't need one.
  • ⚡ Fast — 100 posts per request. A 2,000-post keyword search took about 13 seconds in our tests.
  • 🔎 Full search with date filters — Latest or Top sort, posted after/before, language, min likes and reposts, plus Bluesky operators like from:, mentions:, domain: and #hashtags.
  • 🧵 Threads, feeds and lists — paste a post URL to get the whole reply tree with depth, or a custom feed or list URL to get its posts.
  • 👥 Audience data — followers, following, likers and reposters, saved as profile items.
  • 💸 Cheap and simple pricing — one flat price per saved item, whatever its type.

🎯 Use cases

  • 📈 Brand and topic monitoring: track every new post that mentions your product, competitor or campaign hashtag.
  • 🧪 Research and datasets: collect posts on a topic for a date range and language, for sentiment, NLP or social science work.
  • 📰 News and trend tracking: follow custom feeds and lists curated by the community.
  • 🤝 Lead generation and influencer discovery: export the followers of an account, or the people who liked or reposted a post, with bios and follower counts.
  • 🗂️ Archiving: back up a profile's posts or a full conversation thread.

🚀 How to use

  1. Add search terms (for example artificial intelligence, #photography, from:bsky.app), or paste Bluesky URLs or handles into "Profiles, posts, feeds or lists".
  2. Set Max results and, if you like, filters such as dates, language or minimum likes.
  3. Click Start and wait for the run to finish.
  4. Download your data as JSON, CSV, Excel or HTML, or read it through the API.

📥 Input

FieldWhat it does
searchQueriesSearch terms, phrases, hashtags or Bluesky search operators
startUrlsProfile, post, custom feed, list, hashtag or search URLs, or plain handles like bsky.app
maxItemsMaximum number of items saved in total (default 20)
maxItemsPerInputCap per input (0 = no cap)
sortlatest (every match, newest first) or top
since / untilDate range: 2026-10-01, an ISO timestamp, or relative like 7 days
languageTwo-letter language code, for example en
minLikes / minRepostsEngagement thresholds
includeProfile, scrapeProfilePosts, profilePostsFilter, includeRepostsWhat to take from profiles
scrapeFollowers / scrapeFollowingSave a profile's followers or followed accounts
includeReplies, replyDepth, scrapeQuotes, scrapeLikers, scrapeRepostersWhat to take from post URLs
{
  "searchQueries": ["artificial intelligence", "#photography"],
  "startUrls": ["https://bsky.app/profile/bsky.app"],
  "maxItems": 500,
  "sort": "latest",
  "since": "2026-10-01",
  "language": "en",
  "minLikes": 5
}

📤 Output

Every item has a type field: post or profile. Profiles from follower, following, liker or reposter lists also have relation and relationOf.

FieldDescription
url, uri, postIdPost link on bsky.app, AT Protocol URI and post ID
text, createdAt, langsPost text, creation time (UTC) and language tags
authorHandle, authorDisplayName, authorDid, authorAvatar, authorUrl, authorVerifiedAuthor
likeCount, repostCount, replyCount, quoteCount, bookmarkCountEngagement
isReply, replyToUrl, threadRootUrl, threadDepthReply and thread position
isRepost, repostedBy, repostedAt, isPinnedRepost and pin info for profile feeds
hashtags, links, mentionsParsed rich-text facets
images, imageUrls, video, externalLink, quotedPostMedia and embeds
handle, displayName, description, followersCount, followsCount, postsCount, avatar, bannerProfile items
source, sourceInput, scrapedAtWhere the item came from

Example items (sample data):

[
  {
    "type": "post",
    "url": "https://bsky.app/profile/sample-photo.bsky.social/post/3mxsample2v2t",
    "uri": "at://did:plc:sample000000000000000001/app.bsky.feed.post/3mxsample2v2t",
    "postId": "3mxsample2v2t",
    "text": "Morning fog over the valley today #photography #landscape",
    "createdAt": "2026-10-14T07:12:44.315Z",
    "langs": ["en"],
    "authorHandle": "sample-photo.bsky.social",
    "authorDisplayName": "Sample Photo Studio",
    "authorDid": "did:plc:sample000000000000000001",
    "authorUrl": "https://bsky.app/profile/sample-photo.bsky.social",
    "authorVerified": false,
    "likeCount": 214,
    "repostCount": 18,
    "replyCount": 9,
    "quoteCount": 2,
    "bookmarkCount": 5,
    "isReply": false,
    "isQuote": false,
    "isRepost": false,
    "hashtags": ["photography", "landscape"],
    "links": [],
    "mentions": [],
    "images": [
      {
        "url": "https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:sample000000000000000001/bafkreisample",
        "thumbnail": "https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:sample000000000000000001/bafkreisample",
        "alt": "Fog in a valley at sunrise",
        "width": 2000,
        "height": 1333
      }
    ],
    "video": null,
    "externalLink": null,
    "quotedPost": null,
    "source": "search",
    "sourceInput": "#photography",
    "scrapedAt": "2026-10-14T18:51:45.849Z"
  },
  {
    "type": "profile",
    "url": "https://bsky.app/profile/sample-photo.bsky.social",
    "handle": "sample-photo.bsky.social",
    "displayName": "Sample Photo Studio",
    "did": "did:plc:sample000000000000000001",
    "description": "Landscape photography. Prints in the shop.",
    "followersCount": 12840,
    "followsCount": 311,
    "postsCount": 1975,
    "verified": false,
    "createdAt": "2023-07-02T10:15:00.000Z",
    "source": "profile",
    "sourceInput": "sample-photo.bsky.social"
  }
]

💰 Pricing

You pay $0.50 per 1,000 results ($0.0005 per saved post or profile), plus a small amount of platform usage (compute and datacenter proxy traffic, typically well under a cent for 1,000 posts). For example, 1,000 posts cost about $0.50, and 10,000 posts about $5. Nothing is charged for inputs that return nothing.

❓ FAQ

Is it legal to scrape Bluesky? The actor reads only public data from Bluesky's open public API, the same data anyone sees without logging in. Make sure your use of personal data complies with laws such as GDPR and with Bluesky's terms.

Do I need a Bluesky account, login or proxy? No. No account, cookies or API key. Datacenter proxies are used by default and work well.

How many results can I get? Latest search pages back through time without a fixed cap, so large keyword jobs (10,000+ posts) work. Top sort returns up to 100 posts per search term. Profiles, feeds, followers and threads return everything Bluesky serves publicly.

Why is a field empty? Fields such as displayName, langs or images are optional on Bluesky; when the author did not set them, the field is null or an empty list.

Can I schedule it or use it through the API? Yes. Schedule runs to monitor keywords daily, and start runs and fetch results through the API or integrations.

Can I search by user, mention or website? Yes: use from:handle, mentions:handle or domain:example.com in a search term, alone or together with keywords.

⚠️ Limits

  • Only public content: posts from accounts that require login to view, and blocked or deleted posts, are skipped.
  • Top sort is limited to the first 100 matches per search term without a login; use Latest for more.
  • Search operators other than from:, mentions:, to:, domain:, lang:, since:, until: and #tags are passed to Bluesky as text.
  • Follower and liker items carry bio and avatar but no follower counts (Bluesky does not return counts in lists); add the handles as profile inputs for full counts.
  • Video is returned as its HLS playlist URL and thumbnail, not as a downloaded file.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.