Bluesky Posts Scraper: Search Posts, Hashtags & Profiles avatar

Bluesky Posts Scraper: Search Posts, Hashtags & Profiles

Pricing

from $0.60 / 1,000 posts

Go to Apify Store
Bluesky Posts Scraper: Search Posts, Hashtags & Profiles

Bluesky Posts Scraper: Search Posts, Hashtags & Profiles

Search Bluesky posts by keyword, phrase or hashtag, or get every post from any profile, via Bluesky's open public API: text, author, likes, reposts, replies, quotes, hashtags, links, images, language and post URL. Date, language and likes filters. $0.70 per 1,000 posts.

Pricing

from $0.60 / 1,000 posts

Rating

0.0

(0)

Developer

Larkmoor Data

Larkmoor Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Search Bluesky posts by keyword, phrase or hashtag, or read every post from any Bluesky profile, as one clean row per post: the text, author handle and name, created time, likes, reposts, replies, quotes, hashtags, mentions, links, image URLs, language, reply and repost flags, and the post URL.

It reads Bluesky's open public API (the AT Protocol AppView that powers the Bluesky app), which anyone can use without an account. No login, no cookies, no browser, no proxies.

What you can use it for

  • Brand and keyword monitoring: every new post mentioning your brand, product or competitor
  • Hashtag tracking: collect #buildinpublic, #booksky, #nba or any tag for analysis or a content feed
  • Social listening and research: sentiment, topics and reach on a fast-growing network, by language and date range
  • Influencer research: read a creator's posts with engagement numbers to judge reach before you reach out
  • News and trend alerts: a scheduled run with sort: latest and since sends fresh posts to Slack, email or a sheet
  • Datasets: build clean text datasets of public posts for analytics dashboards

Why this one

  • $0.70 per 1,000 posts, $0.001 per run start — no init fee per query, cheaper than other Bluesky actors
  • Search and profiles in one run: mix search queries and handles; duplicates are removed
  • Full search syntax: phrases, hashtags, from:, mentions:, domain:, lang: operators work in queries
  • Useful columns ready to use: hashtags, links, image URLs, quoted-post URL, reply/repost flags, engagement counts
  • Filters you don't pay for: date range, language, minimum likes, no replies, no reposts — only rows that pass are charged
  • 256 MB memory, about 1,000 posts in under a minute

Input

FieldWhat it does
searchQueriesKeywords, "exact phrases", #hashtags or search operators — one search each
profilesHandles (bsky.app, @name.bsky.social) or profile URLs
sortSearch order: latest or top
since / untilDate range (YYYY-MM-DD or ISO time)
languageSearch language code (en, de, ja, ...)
authorLimit search results to one author
minLikesOnly posts with at least N likes
excludeReplies / excludeRepostsSkip replies / reposts
maxPostsPerSource / maxResultsLimits per query or profile, and for the run

Example input:

{
"searchQueries": ["#webdev", "\"open source\" lang:en"],
"profiles": ["bsky.app"],
"sort": "latest",
"since": "2026-10-01",
"minLikes": 5,
"excludeReplies": true,
"maxResults": 500
}

Output

One row per post (real example):

{
"url": "https://bsky.app/profile/digiwares.bsky.social/post/3myjtmmflzc2z",
"text": "New domain, same mission. 🎙️\n\nTalking Links has a new home: tlk.so\n\nOne link. Voice or text replies. Organised responses.\n\nWe're getting closer to launch.\n\nTalk. Speak Out.\n\n#BuildInPublic #SaaS #AITools #IndieDev #webdev #startup #talkinglinks #talkinglinks",
"createdAt": "2026-10-23T09:13:36.129Z",
"authorHandle": "digiwares.bsky.social",
"authorName": "DigiWares",
"likeCount": 4,
"repostCount": 3,
"replyCount": 0,
"quoteCount": 0,
"langs": [
"en"
],
"hashtags": [
"AITools",
"BuildInPublic",
"IndieDev",
"SaaS",
"startup",
"talkinglinks",
"webdev"
],
"links": [
"https://tlk.so"
],
"images": [],
"isReply": false,
"isRepost": false,
"source": "search:#webdev"
}

Also included: uri, cid, indexedAt, authorDid, authorAvatar, mentions (DIDs), quotedPostUrl, replyToUri, repostedBy, labels.

How much does it cost?

Pay per event: $0.0007 per post ($0.70 per 1,000) and $0.001 per run start. Platform usage at 256 MB is a fraction of a cent per run.

  • Daily brand monitor, ~200 new posts a day: about $0.14 a day
  • A one-off study of 10,000 posts on a hashtag: about $7.00
  • 20 creators' last 100 posts each (2,000 posts): about $1.40

Posts dropped by your filters are not charged.

FAQ

Is it legal? It reads public posts through Bluesky's own open API, which Bluesky provides for anyone to build on, and follows Bluesky's developer guidelines (read-only, polite rate, no automated interactions). Only public posts are read; nothing behind a login. As with any personal data, use it in line with privacy law where you work (for example GDPR) and honour deletion requests.

Do I need a Bluesky account? No.

How far back does search go? Bluesky search covers the network's history; use since/until for a range and sort: top for the most-engaged posts.

Why are mentions DIDs rather than handles? Bluesky stores mentions by permanent account ID (DID), which never changes even if the handle does. Open https://bsky.app/profile/<did> to see the profile.

Can it get replies to a post or followers? Not in this version; it focuses on posts from search and profiles.

Tips

  • Put a phrase in quotes for exact matches; add lang:en to a query or use the language field.
  • For monitoring, schedule hourly with sort: latest and since set to yesterday.
  • Use minLikes to keep only posts with real reach.

Integrations

Works with Google Sheets, Slack, Zapier, Make, Airtable, webhooks, the Apify API and the Python and JavaScript clients. Download as JSON, CSV, Excel, XML or HTML.

Changelog

  • 2026-10-23 — First release: keyword/hashtag search (latest or top), profile posts, date, language, likes, reply and repost filters, hashtags, links, images and quoted posts.