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

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

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.