Bluesky Scraper – Posts Search, Profiles & Leads avatar

Bluesky Scraper – Posts Search, Profiles & Leads

Pricing

from $1.00 / 1,000 posts

Go to Apify Store
Bluesky Scraper – Posts Search, Profiles & Leads

Bluesky Scraper – Posts Search, Profiles & Leads

Search Bluesky posts by keyword or hashtag with date and language filters, or get author profiles with bio links, emails, website domains, followers and recent posts. Official AT Protocol API, no login, no proxy.

Pricing

from $1.00 / 1,000 posts

Rating

0.0

(0)

Developer

Ben Barazandeh

Ben Barazandeh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Search Bluesky posts by keyword or hashtag and turn the authors into leads. Get posts with likes, reposts, replies, hashtags, links and language, filtered by date range and language. Or switch to profiles mode to get one row per account with the bio, follower counts, and the links, emails and website domains found in the bio. You can also add each account's followers and latest posts. It uses only Bluesky's official public AT Protocol API (api.bsky.app), so you don't need a login, an API key, proxies or HTML scraping.

Try it now: the input is pre-filled with #opensource and 50 posts. Click Start.

What can you do with it?

  • Brand and competitor monitoring: schedule a daily search for your product name, a competitor or a domain (linkDomain), and get every new post.
  • Lead generation on Bluesky: find the founders, agencies, developers and creators posting about a topic, and export their websites, custom-domain handles and public emails to a CSV or your CRM.
  • Hashtag and trend research: pull every #buildinpublic or #booksky post in a date range, with engagement counts.
  • Influencer discovery: run an account search, filter by minFollowers, and include each account's recent posts to check what they write about.
  • AI, NLP and sentiment datasets: clean post text with language tags, hashtags and links in consistent fields.

Modes

ModeOne row perWhat you get
postsmatching posttext, created date, likes, reposts, replies, quotes, hashtags, links, link-card title, images, reply/quote info, author handle and name, post URL
profilesunique accounthandle, name, bio, bioLinks, emails, websiteDomains, socialLinks (LinkedIn, GitHub, Instagram, X, YouTube, Linktree and others), customDomainHandle, followers, following, post count, created date. Optional followers[] and recentPosts[]

Profiles mode finds accounts in one of two ways. Post authors (the default) collects the authors of posts that match your query, which means people who are actively talking about the topic. Account search matches against name, handle and bio. You can also list specific handles.

Input

FieldNotes
queriesKeywords, "exact phrases" or #hashtags. Bluesky search operators such as from:handle also work.
maxItemsPer query.
sortlatest (default) or top.
dateFrom / dateToYYYY-MM-DD or an ISO date-time, in UTC. dateTo includes the whole day.
languagee.g. en, de, ja. This is the language tag the author's app set on the post.
author, linkDomainOptional post filters.
minFollowers, onlyWithContactProfile filters. onlyWithContact keeps an account only if it has an email, a website or a custom-domain handle.
maxFollowersPerProfile, maxFeedPostsPerProfileOptional enrichment for each profile. 0 turns it off.

Real run results (28 Oct 2026)

  • Posts: run NznnFtwDxJ6eRqYml with {"queries":["#opensource","bluesky api"],"maxItems":150,"dateFrom":"2026-10-20","language":"en"} saved 300 posts (150 for each query, 300 unique, all tagged en) in about 20 seconds.
  • Profiles from post authors: run cMZa1JEg8EQS8MBkb with {"mode":"profiles","queries":["#buildinpublic"],"maxItems":40,"maxFollowersPerProfile":10,"maxFeedPostsPerProfile":3} saved 40 profiles. 23 had a website domain in the bio and 12 used a custom-domain handle. The run also returned 335 follower rows.
  • Profiles from account search: run oBMfEUuXfMkTKNatC with {"mode":"profiles","queries":["marketing agency"],"profileSource":"accountSearch","maxItems":25,"onlyWithContact":true} saved 25 lead profiles. 21 had a website domain, 7 used a custom-domain handle and 2 listed a public email.

Sample post:

{ "type": "post", "query": "#opensource", "url": "https://bsky.app/profile/valkeyio.bsky.social/post/3mywyxsrjqk2n",
"text": "Suffering from information overload across a zillion apps? Planet Valkey is here! … #Valkey #OpenSource",
"createdAt": "2026-10-28T14:53:57.218Z", "langs": ["en"], "likeCount": 0, "repostCount": 0, "replyCount": 0,
"hashtags": ["Valkey", "OpenSource"], "links": ["https://valkey.io/blog/announcing-planet-valkey/"],
"externalTitle": "Valkey: Announcing Planet Valkey", "authorHandle": "valkeyio.bsky.social" }

Sample profile (shortened):

{ "type": "profile", "handle": "redfstudios.bsky.social", "displayName": "RED-F Studios",
"description": "We build Android apps, websites and free browser tools. … at redfstudios.com/tools. Now building NotiPin.",
"bioLinks": ["redfstudios.com/tools"], "emails": [], "websiteDomains": ["redfstudios.com"], "customDomainHandle": null,
"followersCount": 35, "followsCount": 130, "postsCount": 92, "followers": [ … ], "recentPosts": [ … ] }

Pricing

Pay per event, with no start fee:

  • $0.001 per post ($1 per 1,000 posts) in posts mode
  • $0.002 per profile ($2 per 1,000 profiles) in profiles mode

The optional followers[] and recentPosts[] arrays come with each profile at no extra charge. Set Maximum cost per run and the Actor stops cleanly when it hits the limit. The 300-post test run above used about $0.002 of platform compute.

Limits (please read)

  • Paging: Bluesky blocks cursor pagination on unauthenticated search (it returns 403), so the Actor pages by moving the date window back in time. With sort: latest this gives you the full time range. With sort: top, results are "top within each window", not one global ranking.
  • Search coverage: results come from Bluesky's own search index. It can miss some posts, and deleted or moderated posts don't appear.
  • Language depends on the tag the posting app set, so some posts are untagged or tagged wrongly.
  • Emails are only the ones people typed into their public bio, including name [at] domain forms. Most accounts don't list one. Bluesky doesn't expose private emails, and this Actor doesn't guess them.
  • Bio links are detected in plain text. Links cut short by the user can be partial.
  • Rate limits: requests are spaced at about 4 per second, and the Actor backs off on HTTP 429 or 5xx using Bluesky's ratelimit-reset header. Large follower lists add one call per 100 followers.

FAQ

Is it allowed? It reads only public data through Bluesky's official, open AT Protocol API, which is designed for third-party access. Follow Bluesky's community guidelines and anti-spam rules, and applicable privacy law such as GDPR or CAN-SPAM, when you contact anyone you find here.

Affiliation? This Actor is independent and not affiliated with Bluesky Social PBC.