DEV Community

Exporting any Bluesky profile's followers with the open API

Every big social network locks audience data behind auth walls and anti-bot systems. Bluesky went the other way. The AT Protocol is open by design, so public profile data (bios, follower counts, full follower and following lists) is queryable through a documented API without logging in.

API Endpoints

The whole surface is basically two endpoints:

  • GET https://api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=HANDLE
  • GET https://api.bsky.app/xrpc/app.bsky.graph.getFollowers?actor=HANDLE&limit=100

There's also getProfiles for batching 25 handles per call. Follower lists paginate with a normal cursor, which still works on the graph endpoints. Search is a different story - cursor pagination 403s there now, but that's a topic for another post.

One-Off Lookups

For one-off lookups, curl is honestly all you need. Where it gets tedious: bulk. Thousands of profiles, follower exports that run into six figures, weekly snapshots for tracking. Pagination, rate-limit backoff, and stitching the pages together is boring code that has to run reliably.

Apify Actor

I packaged that part as an Apify actor: Bluesky Profile Scraper. Paste handles or profile URLs, optionally turn on follower/following export, and you get JSON or CSV back with a sourceProfile field linking each follower record to the profile it belongs to. $2 per 1,000 records, runs on a schedule if you want snapshots over time.

What People Use This For

  • Vetting an influencer's real audience before paying them.
  • Exporting who follows a competitor and what their bios say.
  • Charting follower growth from weekly runs.
  • Enrichment: find who's talking about you with a mentions monitor, then profile those authors to see their actual reach.

Bluesky is the only major network right now where any of this is straightforward and stable. Worth using while it lasts.

Comments

No comments yet. Start the discussion.