Bluesky Scraper - Posts, Profiles, Followers avatar

Bluesky Scraper - Posts, Profiles, Followers

Pricing

from $0.35 / 1,000 results

Go to Apify Store
Bluesky Scraper - Posts, Profiles, Followers

Bluesky Scraper - Posts, Profiles, Followers

Scrape and export Bluesky/AT Protocol posts, profiles, followers, follows, and actor search results to clean CSV/JSON datasets. Built for social listening, research, lead lists, analytics, and automation. Uses public endpoints; post search supports app-password auth.

Pricing

from $0.35 / 1,000 results

Rating

0.0

(0)

Developer

Open Web Team

Open Web Team

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Bluesky Scraper API - Posts, Profiles, Followers

Export public Bluesky and AT Protocol data to clean Apify datasets for social listening, research, lead discovery, dashboards, and automation.

This Actor collects Bluesky profiles, author feeds, followers, follows, actor search results, and authenticated post-search results. It is built for users who want structured CSV/JSON output they can plug into spreadsheets, BI tools, APIs, and workflows.

Quick Preview

InputOutput
Bluesky handle, DID, keyword, or account listClean Apify dataset rows
Mode: profiles, authorFeed, followers, follows, actorSearch, searchPostsCSV/JSON exports with typed fields
Optional app password for post searchDataset views for posts, profiles, and relationships

Why Use This Actor

  • Clean dataset rows instead of deeply nested raw AT Protocol objects.
  • Separate Apify dataset views for Overview, Posts, Profiles, and Relationships.
  • Public-data modes work without a Bluesky login.
  • Post search supports Bluesky app-password auth when the search endpoint requires it.
  • Output is designed for CSV/JSON export, dashboards, scheduled runs, and downstream APIs.
  • Transparent limits and auth behavior, with no browser, cookies, or proxy setup required.

What You Can Extract

ModeWhat it returnsAuthentication
actorSearchBluesky profiles matching a keywordNot required
profilesProfile details for one or more handles/DIDsNot required
authorFeedRecent posts from one or more public accountsNot required
followersFollowers of one or more public accountsNot required
followsAccounts followed by one or more public accountsNot required
searchPostsPublic posts matching a keyword or phraseBluesky app password required

Post search currently requires a Bluesky app password because Bluesky's post-search endpoint can require authentication. Use a Bluesky app password, not your main account password.

Common Use Cases

  • Monitor Bluesky posts mentioning a brand, product, topic, or hashtag.
  • Export public Bluesky profiles for research or lead discovery.
  • Build follower/following lists around customers, competitors, creators, or communities.
  • Collect recent posts from a list of public accounts.
  • Feed Bluesky data into Google Sheets, Airtable, Make, Zapier, Slack, BI tools, or your own database.
  • Build research datasets from public AT Protocol data.

Output Preview

Rows are pushed to the default Apify dataset as structured JSON records. You can export the same data as CSV, JSON, Excel, XML, RSS, or HTML from Apify.

Example dataset table:

TypeHandle / AuthorText or DescriptionURLEngagement
postexample.bsky.socialWe are testing a new data workflow...Post URL250 likes, 34 reposts
profilebsky.appOfficial Bluesky accountProfile datafollower/follow/post counts
followerexample.bsky.socialFollower of bsky.appRelationship rowprofile metrics

Dataset Views

ViewBest for
OverviewQuick scan across all row types
PostsPost text, author, URL, timestamps, and engagement counts
ProfilesHandles, display names, bios, avatars, and profile metrics
RelationshipsFollowers/follows rows with source and target accounts

Input Examples

Search Profiles

{
"mode": "actorSearch",
"query": "data science",
"maxResults": 100
}

Get Profiles

{
"mode": "profiles",
"actors": ["bsky.app", "jay.bsky.team"]
}

Get Recent Posts From An Account

{
"mode": "authorFeed",
"actors": ["bsky.app"],
"maxResults": 100
}

Get Followers

{
"mode": "followers",
"actors": ["bsky.app"],
"maxResults": 500
}

Get Accounts A User Follows

{
"mode": "follows",
"actors": ["bsky.app"],
"maxResults": 500
}

Search Posts

{
"mode": "searchPosts",
"query": "AI agents",
"maxResults": 100,
"sort": "latest",
"identifier": "your-handle.bsky.social",
"appPassword": "your-app-password"
}

Sample Output

Post Row

{
"recordType": "post",
"uri": "at://did:plc:example/app.bsky.feed.post/3abc123",
"url": "https://bsky.app/profile/did:plc:example/post/3abc123",
"authorDid": "did:plc:example",
"authorHandle": "example.bsky.social",
"authorDisplayName": "Example Account",
"text": "We are testing a new data workflow with Bluesky public posts.",
"langs": ["en"],
"createdAt": "2026-06-20T12:00:00.000Z",
"indexedAt": "2026-06-20T12:01:00.000Z",
"replyCount": 12,
"repostCount": 34,
"likeCount": 250,
"quoteCount": 4,
"searchQuery": "AI agents",
"labels": []
}

Profile Row

{
"recordType": "profile",
"did": "did:plc:example",
"handle": "example.bsky.social",
"displayName": "Example Account",
"description": "Public profile bio text.",
"avatar": "https://cdn.bsky.app/img/avatar/...",
"banner": "https://cdn.bsky.app/img/banner/...",
"followersCount": 12000,
"followsCount": 320,
"postsCount": 1800,
"indexedAt": "2026-06-20T12:01:00.000Z",
"labels": []
}

Follower / Follow Row

{
"recordType": "follower",
"sourceActor": "bsky.app",
"targetDid": "did:plc:example",
"targetHandle": "example.bsky.social",
"handle": "example.bsky.social",
"displayName": "Example Account",
"description": "Public profile bio text.",
"followersCount": 12000,
"followsCount": 320,
"postsCount": 1800
}

For debugging or advanced use, enable includeRaw to include the original Bluesky API object in each row.

Authentication Notes

Most modes use public Bluesky AppView endpoints and do not need credentials.

searchPosts requires:

  • identifier: your Bluesky handle or email
  • appPassword: a Bluesky app password

Create an app password in Bluesky under:

Settings -> Privacy and security -> App passwords

You can revoke app passwords at any time from Bluesky settings.

Limits and Caveats

  • This Actor only returns public Bluesky data.
  • It does not access private, deleted, or login-only user content.
  • Result availability depends on Bluesky/AT Protocol public API behavior.
  • maxResults is capped to keep runs predictable.
  • Keep result limits modest while validating large exports.
  • Respect Bluesky terms, user privacy, and downstream data rules.

Pricing

This Actor is priced per exported dataset row. You pay only for results plus Apify platform usage.

Support

If a run fails or a field is missing, open an Actor issue with:

  1. the run URL,
  2. the input you used,
  3. the field or behavior you expected.