Bluesky Posts & Profile Scraper avatar

Bluesky Posts & Profile Scraper

Pricing

from $0.48 / 1,000 post scrapeds

Go to Apify Store
Bluesky Posts & Profile Scraper

Bluesky Posts & Profile Scraper

Export Bluesky posts by keyword search or from any profile, custom feed, list or post thread: text, likes, reposts, replies, quotes, hashtags, links, images and quoted posts, plus free profile rows with follower counts. No login. $0.90 per 1,000 posts, down to $0.48 on paid plans.

Pricing

from $0.48 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

TidyHarvest

TidyHarvest

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Categories

Share

Export Bluesky posts from a keyword search or any profile, custom feed, list or post thread to JSON, CSV or Excel: text, timestamps, likes, reposts, replies and quotes, hashtags, mentions, links, images with alt text, videos, link cards and quoted posts, plus a free profile row (followers, following, post count, bio, avatar) for every handle. No login, no cookies and no proxy needed: runs are fast and cheap. $0.90 per 1,000 posts (less on paid plans), no start fee. Profile rows are free.

What you can do with it

  • Track a topic or brand: search posts by keyword, #hashtag, phrase or operator (from:, mentions:, domain:, lang:), newest or top first.
  • Monitor accounts: pull the latest posts from brands, journalists, politicians or competitors on a schedule (use "Only posts newer than" = 1 day for a daily digest).
  • Measure engagement: likes, reposts, replies, quotes and bookmarks per post, plus follower counts, for social media reporting and influencer research.
  • Archive a custom feed or list: export what a Bluesky feed (e.g. Discover, a topic feed) or a curated list is showing.
  • Collect a conversation: give a post link and get the post with its full reply thread, ready for sentiment or discourse analysis.
  • Build datasets for AI/NLP: clean text, language tags, hashtags, and image alt text in one flat row per post.

How to use

  1. Type keyword searches into Search posts by keyword, and/or paste handles or links into Handles, profile, post, feed or list links (one per line), e.g. bsky.app, https://bsky.app/profile/bsky.app/feed/whats-hot, or a post link.
  2. Set Max posts per target and, optionally, Only posts newer than, replies/reposts, or a keyword filter.
  3. Click Start, then download the dataset as JSON, CSV, Excel or via the API. Each run also saves a SUMMARY record (posts per target, failures).

Input

FieldWhat it does
targetsHandles (bsky.app, @jay.bsky.team, name = name.bsky.social), DIDs, or bsky.app links to a profile, post, feed (/feed/<id>) or list (/lists/<id>). at:// URIs work too.
searchQueriesKeyword searches, one per line: words, "exact phrase", #hashtag, from:nytimes.com, mentions:bsky.app, domain:github.com, lang:en. Up to 100 posts per query.
searchSort, searchLanguagelatest (default) or top; optional language code for searches.
maxPostsPerTargetPosts per handle/feed/list/thread (default 30, max 10,000).
onlyPostsNewerThan2026-10-01 or 7 days, 12 hours... Profile timelines stop paging at this date.
includeRepliesProfiles: also return the account's replies (default off).
includeRepostsAlso return reposts, flagged isRepost + repostedBy (default off).
includeProfilesOne free type: profile row per handle (default on).
includeAuthorStatsAdd follower/follow/post counts of every post's author (handy for feeds and threads).
threadDepthReply levels to include for post links (default 6).
keywordsKeep only fetched posts whose text or hashtags contain one of these words (you pay only for matches).
maxItemsHard cap on posts for the whole run (and on cost).

Example:

{
"targets": ["nytimes.com", "https://bsky.app/profile/bsky.app/feed/whats-hot"],
"maxPostsPerTarget": 200,
"onlyPostsNewerThan": "3 days",
"includeAuthorStats": true
}

Output

One row per post (type: "post"):

FieldDescription
url, uri, cidLink on bsky.app, AT Protocol URI and content id
text, createdAt, indexedAt, langsPost text, creation time, index time, language tags
authorHandle, authorDisplayName, authorDid, authorAvatarAuthor
authorFollowers (+ authorFollows, authorPostsCount with author stats on)Author audience size
likeCount, repostCount, replyCount, quoteCount, bookmarkCountEngagement
hashtags, mentions (handle, did), linksRich-text facets
images (url, thumb, alt), video (playlist, thumbnail, alt), externalLink (url, title, description, thumb)Media and link card
quotedPostUri, quotedPostUrl, quotedPostAuthor, quotedPostTextQuoted post
isReply, replyToUri, rootUri, threadDepthReply info (threadDepth for post-link threads)
isRepost, repostedBy, repostedAt, isPinnedRepost info
labels, source, sourceTypeModeration labels; which input produced the row (profile, feed, list, thread)
{
"type": "post",
"url": "https://bsky.app/profile/bsky.app/post/3mxhdhodv222n",
"text": "a masterclass in alt text",
"createdAt": "2026-10-09T15:53:59.424Z",
"authorHandle": "bsky.app",
"authorDisplayName": "Bluesky",
"authorFollowers": 35229306,
"likeCount": 2908, "repostCount": 280, "replyCount": 40, "quoteCount": 13,
"langs": ["en"],
"hashtags": [], "mentions": [], "links": [], "images": [],
"quotedPostUrl": "https://bsky.app/profile/pantspants.bsky.social/post/3mxfldtvy522k",
"isReply": false, "isRepost": false,
"source": "bsky.app", "sourceType": "profile"
}

One free row per profile (type: "profile"): url, did, handle, displayName, description, avatar, banner, followersCount, followsCount, postsCount, createdAt, verified, labels.

Pricing

Pay per result: $0.90 per 1,000 posts on the Free plan, down to $0.48 on higher plans (post-scraped), no start fee. Profile rows are free. Keyword filters, date filters and caps apply before you are charged, and the run stops cleanly at your maximum cost per run. A run where nothing can be read fails instead of silently returning an empty dataset.

Apify plan tierFreeBronzeSilverGoldPlatinumDiamond
per 1,000 posts$0.90$0.80$0.62$0.48$0.48$0.48

Limits and notes

  • Keyword search returns up to 100 posts per query (the newest, or the top ones). For more, split the topic into several queries or narrow them with operators; for an account's full history, give the handle instead.
  • Follower/following lists are not exported, only counts.
  • Custom feeds return what the feed serves to a logged-out visitor; personalised feeds (e.g. "Following") need a login and return nothing here.
  • Accounts that asked Bluesky to hide them from logged-out viewers are skipped.
  • Data is a snapshot of public posts at run time. If you store it, respect deletions: Bluesky's developer guidelines ask services to remove content its author has deleted.
  • Public data only. This actor is not affiliated with, endorsed by, or sponsored by Bluesky Social PBC.