Bluesky Scraper - Posts, Profiles & Search avatar

Bluesky Scraper - Posts, Profiles & Search

Pricing

Pay per usage

Go to Apify Store
Bluesky Scraper - Posts, Profiles & Search

Bluesky Scraper - Posts, Profiles & Search

Scrape Bluesky posts by keyword or hashtag and full profiles with their posts. No login, no proxies, no API key. Engagement metrics, hashtags, links, images and author data.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Pablo Misael Peloc

Pablo Misael Peloc

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Bluesky Scraper: Posts, Profiles & Search

Extract posts and profiles from Bluesky (bsky.app) at scale. No login, no API key, no proxies needed. It uses Bluesky's public AppView API, so runs are fast, cheap and don't get blocked.

What you can scrape

  • Search posts by keyword, phrase or #hashtag. Supports Bluesky search operators such as from:handle.
  • Profiles: bio, avatar, banner, follower, following and post counts, plus the profile's posts, with or without replies.
  • Filters: language (es, en, pt...), date range, and sort by latest or top.

Use cases

  • Brand and competitor monitoring on Bluesky
  • Social listening and sentiment analysis in any language
  • Collecting datasets for research and AI training
  • Tracking journalists, politicians or creators who moved from X/Twitter
  • Lead generation from people talking about your topic

Input example

{
"searchTerms": ["#ai", "climate change"],
"profiles": ["bsky.app", "https://bsky.app/profile/jay.bsky.team"],
"maxItems": 500,
"sort": "latest",
"language": "en"
}

maxItems applies to each search term and each profile separately. With sort Top, Bluesky returns at most 100 posts per term. With Latest there is no fixed cap.

Output example

{
"type": "post",
"source": "search:#ai",
"url": "https://bsky.app/profile/example.bsky.social/post/3mwmtbkuqqc2n",
"text": "Post text...",
"createdAt": "2026-09-29T02:55:01.383Z",
"langs": ["en"],
"likeCount": 12,
"repostCount": 3,
"replyCount": 1,
"quoteCount": 0,
"isReply": false,
"hashtags": ["ai"],
"links": ["https://example.com/article"],
"images": [],
"linkCard": { "url": "https://example.com/article", "title": "...", "description": "..." },
"author": { "handle": "example.bsky.social", "displayName": "Example", "did": "did:plc:...", "profileUrl": "https://bsky.app/profile/example.bsky.social" }
}

Profiles come as "type": "profile" items with followersCount, followsCount, postsCount, description, avatar and createdAt.

Pricing

Pay per result: you are charged only for posts and profiles actually returned. Set a maximum cost per run in the run options and the Actor stops cleanly when it is reached.

Notes

The Actor only reads public data that Bluesky serves without authentication. It does not access private content or DMs.