Bluesky Scraper - Profiles, Posts, Followers & Search
Pricing
Pay per usage
Bluesky Scraper - Profiles, Posts, Followers & Search
Scrape public Bluesky accounts with no login: profile stats, recent posts with engagement (likes/reposts/replies/quotes), and account discovery search.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
aki ra
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Bluesky Scraper — Profiles, Posts, Followers & Account Search (No Login)
Scrape public Bluesky data without an API key, app password, or login. Get profile stats, recent posts with full engagement metrics (likes, reposts, replies, quotes), and discover accounts by search query. Export results to JSON, CSV, or Excel in one click.
No authentication. No anti-bot challenges. No credentials to rotate. Just pass a list of handles (or a search term) and get clean, structured data.
What you can scrape
- Bluesky profile stats — followers count, follows count, posts count, bio, display name, avatar, account created date
- Recent posts — text, timestamp, and per-post engagement (likes, reposts, replies, quotes, bookmarks), each with a direct
bsky.apppost URL - Followers & following lists — export every follower of an account, or every account it follows (handle, display name, bio)
- Account discovery / search — find Bluesky accounts matching a query (handle, display name, or bio)
Common use cases
- Lead generation — build lists of Bluesky accounts in a niche and pull their bio + reach
- Competitor & brand monitoring — track what specific accounts post and how it performs
- Influencer research — rank accounts by followers and engagement before outreach
- Social listening — watch a fixed set of accounts for new posts
- AI / LLM datasets — feed clean Bluesky text + engagement into your models or agents
How to use it
- Enter one or more Bluesky handles (without
@), e.g.bsky.app— or a search query to discover accounts - Optionally set how many recent posts to fetch per account (0–1000)
- Run the Actor and download the results as JSON, CSV, or Excel
At least one of handles or searchQuery is required.
Input
| Field | Type | Default | Description |
|---|---|---|---|
handles | array | ["bsky.app"] | Bluesky handles to scrape (without @) |
maxPostsPerAccount | integer | 50 | Recent posts per handle (0–1000) |
includeProfile | boolean | true | Emit one profile record per handle |
searchQuery | string | — | Optional: find accounts matching this text |
searchLimit | integer | 25 | Max accounts from the search query |
includeFollowers | boolean | false | Also scrape each handle's followers |
includeFollows | boolean | false | Also scrape the accounts each handle follows |
maxRelations | integer | 100 | Cap on followers / follows fetched per handle |
Output (dataset records)
Records are tagged by type: profile, post, account_hit, or error. Every dataset
can be exported to JSON, CSV, Excel, XML, or HTML from the Apify console or API.
Example post record:
{"type": "post","account": "bsky.app","authorHandle": "bsky.app","text": "This officially makes Bluesky the best-smelling social media platform","createdAt": "2026-06-26T20:36:12.809Z","likeCount": 104, "repostCount": 5, "replyCount": 3, "quoteCount": 1,"postUrl": "https://bsky.app/profile/bsky.app/post/3mp7sbnuyu22b"}
Why it stays fast and low-maintenance
All data comes from Bluesky's public AppView XRPC API (public.api.bsky.app) — an open,
documented REST API with no authentication, no app password, and no anti-bot challenge.
There are no credentials to rotate and the schema is stable, so the Actor rarely breaks
(unlike HTML scrapers that constantly fight anti-bot systems). It also paces requests politely
and retries on rate limits (HTTP 429) with backoff.
Pricing
Pay per result — you only pay for the records you actually get. No monthly subscription. See the live price on the Store page; a generous free tier lets you test before you commit.
FAQ
Do I need a Bluesky account, app password, or API key? No. This Actor only reads Bluesky's public data, so there is nothing to log in to.
What output formats are supported? Any Apify dataset can be exported to JSON, CSV, Excel, XML, or HTML, or pulled via the API.
Can it search posts by keyword across all of Bluesky?
Not currently. Bluesky's full-text post search endpoint (app.bsky.feed.searchPosts) requires
authentication, so this Actor is intentionally account-centric to stay credential-free.
A logged-in keyword-search variant is a possible future add-on.
How many posts can I get per account?
Up to 1000 recent posts per handle (set with maxPostsPerAccount).
Is it legal to scrape Bluesky? This Actor accesses only public data through Bluesky's official public API. You are responsible for complying with Bluesky's terms and any applicable laws and privacy regulations in your use.
Local development
The core client (bluesky_client.py) uses only the Python standard library:
$python3 -c "from bluesky_client import scrape; print(list(scrape(['bsky.app'], max_posts_per_account=3)))"
The Actor wrapper (src/) additionally needs the apify SDK and the Apify CLI to run via
apify run and to publish via apify push.