Bluesky Scraper – Posts, Search, Profiles & Followers avatar

Bluesky Scraper – Posts, Search, Profiles & Followers

Pricing

from $0.80 / 1,000 posts

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

Bluesky Scraper – Posts, Search, Profiles & Followers

Bluesky scraper without login: search posts, author feeds, profiles, followers and follows, custom feeds and lists, full reply threads and trending topics. Flat output with likes, reposts, replies, quotes, hashtags, mentions, links, images and video.

Pricing

from $0.80 / 1,000 posts

Rating

0.0

(0)

Developer

Enes Bulanık

Enes Bulanık

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

Bluesky scraper without login: search posts, author feeds, profiles, followers and follows, custom feeds and lists, full reply threads and trending topics. Flat output with likes, reposts, replies, quotes, hashtags, mentions, links, images and video.

Price: $0.80 per 1,000 posts, $1 per 1,000 profiles. No start fee, and inputs that fail are never charged.

What does Bluesky Scraper do?

It reads Bluesky's public AT Protocol API (the same open API the Bluesky app uses) – no account, no API key, no browser:

ModeWhat you get
searchPostsPosts matching a keyword, phrase, #hashtag, from:handle or domain: – sort by latest or top, filter by date and language
authorFeedAll posts of one or more accounts (optionally replies, media-only or reposts)
profilesProfile details: followers, following, posts count, bio, avatar, verified badge, join date. Or search profiles by keyword
followers / followsThe account (with counts) plus the list of its followers / followed accounts
customFeedPosts from any custom feed (e.g. "Discover", "What's Hot") or list feed
postThreadA post and all its replies, flattened with threadDepth
trendingBluesky's current trending topics (rank, category, status, post count) – optionally with top posts per topic

Why use this Bluesky scraper?

  • All modes in one Actor – no need to combine three different scrapers. Trending topics, custom feeds and threads are included.
  • No login needed – everything uses public data. An optional app password is only used if Bluesky ever blocks anonymous search.
  • Search past the first page – "latest" search results are paged back through time, beyond the first page Bluesky serves to anonymous users.
  • Flat output – one row per post, with engagement counts as integers and embeds unpacked into simple columns.
  • Plain API calls – about 100 posts per request, so 1,000 posts take a few seconds and cost $0.80.

Use cases

  • Social listening & brand monitoring – track mentions of your brand, product or hashtag.
  • Trend research & journalism – collect what's trending and the posts behind it.
  • Influencer & audience analysis – profile stats, follower lists, engagement per post.
  • Academic research & NLP datasets – build corpora of public posts by keyword, language and date.
  • Community & feed analytics – measure what a custom feed or list surfaces.
  • AI agents – give an LLM a Bluesky search tool that returns current posts.

How to use it

  1. Choose What to scrape (mode).
  2. Fill in the matching field: Search query, Handles, Feed URLs or Post URLs (trending needs nothing).
  3. Set Max items per input and optional filters (sort, since/until, language).
  4. Click Start and download JSON, CSV or Excel, or use the API.

Input

FieldTypeUsed byDescription
modestringallsearchPosts (default), authorFeed, profiles, followers, follows, customFeed, postThread, trending
querystringsearchPosts, profilesSearch text. Supports "phrases", #tags, from:, mentions:, domain:. Default artificial intelligence.
handlesarrayauthorFeed, profiles, followers, followsjay.bsky.team, @jay.bsky.team, https://bsky.app/profile/... or a DID
feedUrlsarraycustomFeedhttps://bsky.app/profile/<handle>/feed/<name>, .../lists/<id> or at:// URIs
postUrlsarraypostThreadhttps://bsky.app/profile/<handle>/post/<id>
maxItemsintegerallMax results per query / handle / feed / thread. Default 50.
sortstringsearchPostslatest (default) or top
since / untilstringsearchPosts, authorFeed, customFeed2025-01-31 or relative 7 days
langstringsearchPostsLanguage code, e.g. en
authorFeedFilterstringauthorFeedposts_and_author_threads (default), posts_no_replies, posts_with_replies, posts_with_media, posts_with_video
includeRepostsbooleanauthorFeedInclude reposts. Default false.
postsPerTrendintegertrendingAlso fetch N posts per trending topic. Default 0.
blueskyHandle / blueskyAppPasswordstringsearchPostsOptional login (app password, stored as a secret). Normally not needed.

Example – search:

{
"mode": "searchPosts",
"query": "#photography",
"sort": "latest",
"since": "7 days",
"lang": "en",
"maxItems": 500
}

Example – followers of two accounts:

{
"mode": "followers",
"handles": ["bsky.app", "https://bsky.app/profile/jay.bsky.team"],
"maxItems": 1000
}

Output

Every item has itemType: post, profile, trend, error or status. Real samples (shortened):

Post

{
"itemType": "post",
"uri": "at://did:plc:kwxpje5qog6wwndagwbssatp/app.bsky.feed.post/3mviutosqmk2t",
"url": "https://bsky.app/profile/avclub.com/post/3mviutosqmk2t",
"authorHandle": "avclub.com",
"authorDisplayName": "The A.V. Club",
"authorDid": "did:plc:kwxpje5qog6wwndagwbssatp",
"text": "Less than 4 hours until the #Emmys kick off! You can keep up with all the commentary, winners, joy—and, let's face it, disappointment—via our Emmys Watch feed right here on @bsky.app. ...",
"createdAt": "2026-09-14T19:47:12.655Z",
"likeCount": 538,
"repostCount": 39,
"replyCount": 32,
"quoteCount": 4,
"bookmarkCount": 26,
"langs": ["en"],
"hashtags": ["Emmys"],
"mentions": ["bsky.app"],
"links": ["https://bsky.app/profile/avclub.com/feed/emmys-watch-r"],
"embedType": "images",
"images": [{ "url": "https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:kwxpje5qog6wwndagwbssatp/bafkreicwxzp6...", "thumbnailUrl": "https://cdn.bsky.app/img/feed_thumbnail/plain/...", "alt": null }],
"videoUrl": null,
"externalUrl": null,
"quotedPostUrl": null,
"isReply": false,
"isRepost": true,
"repostedByHandle": "bsky.app",
"threadDepth": null,
"labels": [],
"source": "authorFeed",
"input": "bsky.app",
"scrapedAt": "2026-10-07T19:17:11.763Z"
}

Profile

{
"itemType": "profile",
"did": "did:plc:z72i7hdynmk6r22z27h6tvur",
"handle": "bsky.app",
"displayName": "Bluesky",
"description": "official Bluesky account (check username👆)\n\nBugs, feature requests, feedback: support@bsky.app",
"url": "https://bsky.app/profile/bsky.app",
"followersCount": 35180843,
"followsCount": 15,
"postsCount": 866,
"createdAt": "2023-04-12T04:53:57.057Z",
"verified": false,
"relation": "profile",
"relatedTo": null
}

Trending topic

{
"itemType": "trend",
"rank": 1,
"topic": "Inktober 2026 day 7: panic",
"description": "Artists share ink drawings for the seventh prompt, wrapping up the challenge's first week.",
"category": "culture",
"status": "trending",
"postCount": 28356,
"url": "https://bsky.app/profile/did:plc:qrz3lhbyuxbeilrc6nekdqme/feed/24cc588fc536",
"feedUri": "at://did:plc:qrz3lhbyuxbeilrc6nekdqme/app.bsky.feed.generator/24cc588fc536"
}

Other post fields: videoUrl (HLS .m3u8), videoThumbnail, externalTitle/externalDescription (link card), quotedPostUri/quotedPostText/quotedAuthorHandle, replyParentUri, replyRootUri, isPinned, threadRootUri, trendTopic.

Followers / follows rows (relation: "follower" / "follow", relatedTo: <account>) contain handle, name, bio, avatar and join date. Bluesky does not return per-follower counts in lists – run the profiles mode on them if you need counts.

Errors are free: NOT_FOUND, INVALID_INPUT, UNAVAILABLE, FEED_UNAVAILABLE (personalized or offline feed), AUTH_REQUIRED, SCRAPE_FAILED, NO_RESULTS.

The dataset has views: Posts, Media & links, Profiles, Trending topics and Errors & status.

Pricing

Pay-per-event – you only pay for results.

EventPriceCharged for
post$0.0008 ($0.80 / 1,000)Each post, and each trending-topic row
profile$0.001 ($1 / 1,000)Each profile, follower or follow row
Errors / status rowsFreeUnknown handles, invalid URLs, offline feeds, empty results
JobCost
1,000 search results$0.80
Profiles of 100 accounts$0.10
10,000 followers of an account$10.00
25 trending topics + 10 posts each275 × $0.0008 = $0.22

Set Max cost per run in the run options – the Actor stops exactly at your budget.

Use with AI agents (MCP)

Use this Actor as a tool in Claude, ChatGPT, Cursor or any MCP client via the Apify MCP server: https://mcp.apify.com?tools=openharvest/bluesky-scraper. Agents can also find it with search-actors ("Bluesky posts", "Bluesky trending").

Example call-actor input:

{
"mode": "searchPosts",
"query": "from:nytimes.com climate",
"sort": "top",
"maxItems": 20
}

Or ask for what's trending right now:

{ "mode": "trending", "maxItems": 10, "postsPerTrend": 3 }

FAQ

Do I need a Bluesky account? No. All modes use public, unauthenticated API endpoints. The optional app password is only a fallback for post search, in case Bluesky starts requiring login for it. Never enter your main password – create an app password in Bluesky Settings → Privacy and security → App passwords.

How many search results can I get? With sort: latest, the Actor pages back through time until maxItems is reached or the results run out. With sort: top, Bluesky serves only the first ~100 results anonymously; add an app password to page further.

Why does a custom feed return FEED_UNAVAILABLE? Some feeds are personalized ("Following", "Popular with Friends") and need a logged-in viewer, or the feed's own server is offline. Public feeds like "Discover"/"What's Hot" work.

Can I get emails or phone numbers? No. Bluesky profiles don't expose them and this Actor doesn't try to collect personal contact data.

Does it get deleted or private posts? No. Bluesky has no private posts; deleted posts and blocked/taken-down accounts are not returned.

Can I run it on a schedule? Yes – e.g. searchPosts with since: "1 day" every day, or trending every hour.

This Actor only reads public data from Bluesky's open AT Protocol API, which Bluesky provides for third-party apps and research. It does not log in by default, does not access private data and does not collect contact details. Posts are still personal data and copyrighted content of their authors: comply with GDPR and similar laws, respect Bluesky's Terms of Service and developer guidelines, honour deletions, and never use the data for spam, harassment or unsolicited messaging. If unsure, consult a lawyer.

  • Telegram Channel Scraper – Posts, Messages & Views, No Login
  • Hacker News Scraper – Stories, Comments & Who Is Hiring Jobs
  • Substack Scraper – Newsletter Posts, Full Text & Comments
  • Weibo Scraper – Hot Search, Trending Posts, Comments & Profiles

Support & feedback

Found a bug or need a field? Open an issue in the Issues tab – feature requests are welcome.