Bluesky Scraper API — Posts, Profiles, Threads & Followers avatar

Bluesky Scraper API — Posts, Profiles, Threads & Followers

Pricing

from $1.00 / 1,000 post scrapeds

Go to Apify Store
Bluesky Scraper API — Posts, Profiles, Threads & Followers

Bluesky Scraper API — Posts, Profiles, Threads & Followers

Scrape Bluesky posts, profiles, threads, and follower graphs by keyword, hashtag, or handle. No login required. Fast AT Protocol API, JSON/CSV export, pay only per result.

Pricing

from $1.00 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

subimpact

subimpact

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Categories

Share

Bluesky Scraper API — Posts, Profiles, Threads & Follower Graph

A lightning-fast, keyless Bluesky (AT Protocol) scraper. Extract public posts by keyword or hashtag, crawl user feeds, download entire conversation threads, and scrape follower graphs.

No login or API keys required.


⚡ Why Use This Bluesky Scraper?

  • Pay-Per-Event Pricing: $1.00 per 1,000 posts and $2.00 per 1,000 profiles. Zero Account Bans & No Login: Uses the public AT Protocol directly without risking personal accounts.
  • WAF & Rate-Limit Resilient: Built-in TLS fingerprinting bypass and residential proxy fallback to ensure 99.9% uptime.
  • AI-Ready Structured Output: Clean JSON with engagement metrics (likes, reposts, quotes), hashtags, full URLs, and timestamped metadata. Posts carrying media or quoted embeds are flagged with the boolean hasEmbed field.

🚀 Supported Modes

ModeDescriptionRequired Input
searchSearch posts by keyword, query, or hashtag with chronological or engagement sortquery (e.g. "artificial intelligence", "#buildinpublic")
author_feedScrape recent posts published by any Bluesky handle or DIDhandle (e.g. "bsky.app", "jay.bsky.team")
threadScrape a post and recursively resolve all nested repliespostUri (AT URI or bsky.app web URL)
profileRetrieve profile metadata, bio, avatar, and follower/post countshandle
followersScrape the follower list of any accounthandle
followsScrape the following list of any accounthandle

💰 Pay-Per-Event Pricing

You only pay for successful items extracted to the dataset:

EventPrice (USD)Description
Post Extracted$0.001 ($1.00 / 1,000)Each post returned with author, text, metrics, and hashtags.
Profile Extracted$0.002 ($2.00 / 1,000)Each profile or graph node returned.
Actor Start$0.00005Minimal one-time initialization fee.

Volume discounts apply automatically on Silver, Gold, Platinum, and Diamond Apify subscription tiers.

How this compares

Keyless access to the public AT Protocol with no login, so no account of yours is at risk, and the TLS-fingerprint and proxy fallback paths are in the code. One actor covers keyword and hashtag search, author feeds, whole threads with nested replies, profiles, follower and following lists, with one row shape per item type. At $1.00 per 1,000 posts and $2.00 per 1,000 profiles it is below lexis-solutions/bluesky-posts-scraper ($1.10 per 1,000 posts), fatihtahta/All-In-One-Bluesky-Scraper ($1.49) and cryptosignals/bluesky-scraper ($3.00). automation-lab/bluesky-scraper matches the post price at $1.00 per 1,000 but lists $3.00 per 1,000 profiles and a $0.005 actor-start event (this actor charges $0.00005).

ActorPrice per 1,000 postsPlatform usage
subimpact/bluesky-scraper-api$1.00 ($2.00 per 1,000 profiles)paid by you
lexis-solutions/bluesky-posts-scraper$1.10see listing
automation-lab/bluesky-scraper$1.00 ($3.00 per 1,000 profiles)see listing
fatihtahta/All-In-One-Bluesky-Scraper$1.49see listing
cryptosignals/bluesky-scraper$3.00see listing

Prices are Apify Store list prices on the Free plan, checked 24 October 2026. Competitor prices can change; check their listings.


💻 Code Integration Examples

Node.js / JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('subimpact/bluesky-scraper-api').call({
mode: 'search',
query: 'artificial intelligence',
maxItems: 50,
sort: 'latest'
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Fetched ${items.length} posts!`);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("subimpact/bluesky-scraper-api").call(run_input={
"mode": "search",
"query": "#ai",
"maxItems": 50
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"@{item['authorHandle']}: {item['text']} (Likes: {item['likeCount']})")

cURL

curl "https://api.apify.com/v2/acts/subimpact~bluesky-scraper-api/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode": "search", "query": "startup", "maxItems": 20}'