Bluesky Scraper: Posts, Profiles, Feeds & Interactions avatar

Bluesky Scraper: Posts, Profiles, Feeds & Interactions

Pricing

$1.00 / 1,000 bluesky items

Go to Apify Store
Bluesky Scraper: Posts, Profiles, Feeds & Interactions

Bluesky Scraper: Posts, Profiles, Feeds & Interactions

Scrape Bluesky posts, profiles, followers, feeds, threads, likes, reposts and authenticated search/hashtag results.

Pricing

$1.00 / 1,000 bluesky items

Rating

0.0

(0)

Developer

Richard Feng

Richard Feng

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Share

Scrape Bluesky public data through the AT Protocol XRPC APIs: posts, profiles, author feeds, followers, following, custom feeds, threads, likers and reposters, plus app-password search, hashtag results and authenticated account likes.

๐ŸŽฏ Features

FeatureDescription
Multi-mode coverageOne Actor covers search, profile, posts, followers, following, feed, thread, likers, reposters, actorLikes and hashtag modes
Public API firstMost profile, feed, thread and interaction modes use public.api.bsky.app without credentials
Authenticated modesSearch, hashtag and actorLikes modes use a Bluesky app password
Interaction exportsExport post likers and reposters, which many competing Actors omit
Clean JSONPosts and profiles are normalized for monitoring, BI and RAG pipelines

๐Ÿš€ Quick Start

{
"mode": "posts",
"handles": ["bsky.app"],
"maxItems": 100
}

Search requires an app password:

{
"mode": "search",
"query": "open source AI",
"language": "en",
"identifier": "your-handle.bsky.social",
"appPassword": "YOUR_APP_PASSWORD",
"maxItems": 100
}

๐Ÿ“‹ Input

FieldTypeDescription
modestringsearch, profile, posts, followers, following, feed, thread, likers, reposters, actorLikes, hashtag
querystringSearch text or hashtag text
handlesarrayHandles for profile, posts, followers and following; for actorLikes, use the authenticated account handle or DID
postUristringAT URI for thread, likers and reposters
feedUristringAT URI for a custom feed
dateFromstringEarliest date for search/hashtag modes
languagestringOptional language filter for search
identifierstringBluesky handle/email for search, hashtag and actorLikes authentication
appPasswordsecret stringBluesky app password for search, hashtag and actorLikes; do not use your main password
maxItemsintegerMaximum saved items

๐Ÿ“ค Output

Post item:

{
"itemType": "post",
"mode": "posts",
"uri": "at://did:plc:.../app.bsky.feed.post/...",
"author": { "handle": "bsky.app", "displayName": "Bluesky" },
"text": "Example post text",
"createdAt": "2026-06-11T00:00:00Z",
"replyCount": 10,
"repostCount": 20,
"likeCount": 100,
"url": "https://bsky.app/profile/bsky.app/post/..."
}

Profile item:

{
"itemType": "profile",
"mode": "followers",
"did": "did:plc:...",
"handle": "alice.bsky.social",
"displayName": "Alice",
"followersCount": 1234,
"url": "https://bsky.app/profile/alice.bsky.social"
}

๐Ÿณ Recipes

Brand monitoring

{
"mode": "search",
"query": "\"my brand\"",
"identifier": "your-handle.bsky.social",
"appPassword": "YOUR_APP_PASSWORD",
"maxItems": 500
}

Export a creator's audience

{
"mode": "followers",
"handles": ["bsky.app"],
"maxItems": 1000
}

Analyze who engaged with a post

{
"mode": "likers",
"postUri": "at://did:plc:.../app.bsky.feed.post/...",
"maxItems": 1000
}

Export your authenticated account likes

Bluesky only exposes actorLikes for the authenticated account. Use the same account handle in handles and identifier.

{
"mode": "actorLikes",
"handles": ["your-handle.bsky.social"],
"identifier": "your-handle.bsky.social",
"appPassword": "YOUR_APP_PASSWORD",
"maxItems": 500
}

๐Ÿ’ณ Pricing

Pay-per-event: $0.001 per saved item. A 1,000-item export costs $1.00.

โ“ FAQ

Do I need credentials?

Only for search, hashtag and actorLikes. Create an app password in Bluesky settings and pass it as appPassword. Public profile/feed/thread/likers/reposters modes do not require credentials.

How do I find a feed URI?

Open a feed in Bluesky, copy its AT URI from developer tooling or API output, and pass it as feedUri. Feed URIs look like at://did:plc:.../app.bsky.feed.generator/....

This Actor uses the open AT Protocol APIs and only reads public Bluesky data, plus likes from the account that authenticates with an app password. Use an app password rather than your main password.


๐Ÿค– Use with AI agents

This Actor is callable as a tool by any MCP-capable agent โ€” Claude, Cursor, VS Code โ€” or by your own code, with no wrapper and nothing extra to deploy.

Connect over MCP

https://mcp.apify.com?tools=autofacts/bluesky-scraper

In a client that reads an mcpServers configuration block:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=autofacts/bluesky-scraper",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

The agent reads this Actor's parameters and their descriptions straight from the input schema, and the hosted server infers the result field types from the dataset schema โ€” so a model knows what to send and what comes back before it ever calls anything.

Or call the API directly

curl -X POST "https://api.apify.com/v2/acts/autofacts~bluesky-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"query": "openai", "handles": ["bsky.app"]}'

The response body is the dataset records described above.

๐Ÿงฐ Other Actors by autofacts

Apify only auto-recommends Actors in the same category, so here are the ones that actually pair with this scraper:

ActorWhat it's for
TikTok Subtitle & Transcript ScraperTikTok captions and transcripts
YouTube Subtitle & Transcript ScraperVideo captions as clean text
Google Trends Trending NowWhat is trending on Google right now, in 125 countries, to set beside what people post
Schema Markup Scraper & SEO AuditorJSON-LD, Open Graph and a 0-100 SEO audit of any URL
Universal Web PrinterTurn any URL or HTML into PDF, PNG, JPEG or WebP

All of them: apify.com/autofacts