Bluesky Followers Scraper - Export Audiences avatar

Bluesky Followers Scraper - Export Audiences

Pricing

from $2.00 / 1,000 accounts

Go to Apify Store
Bluesky Followers Scraper - Export Audiences

Bluesky Followers Scraper - Export Audiences

Export Bluesky followers, following lists, keyword search results and post likers, enriched with follower counts, bios and profile URLs. Build audience lists and influencer shortlists from Bluesky. No login, no cookies, no proxies needed.

Pricing

from $2.00 / 1,000 accounts

Rating

0.0

(0)

Developer

Tom Awake

Tom Awake

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Share

What does Bluesky Followers Scraper do?

Export any Bluesky audience to CSV, JSON, Excel or an API feed — followers, following, keyword matches, or everyone who liked a post — enriched with follower counts, bios, post counts and profile URLs.

No login. No cookies. No proxies. Nothing to break.

Why this one doesn't break

Most social scrapers fight an anti-bot system. They need logged-in accounts, proxy rotation and constant patching, and they fail the week the target changes a defence.

This Actor reads Bluesky's official public AT Protocol API (public.api.bsky.app) — the endpoint Bluesky publishes and recommends for public-web use. There is no authentication to expire, no account to get suspended, and no anti-bot arms race. Public data, sanctioned access, stable output.

What you get

FieldDescription
handlealice.bsky.social
displayNameProfile display name
didPermanent decentralised identifier — stable across handle changes
descriptionFull bio, newlines flattened
followersCountFollowers
followsCountAccounts they follow
postsCountTotal posts
createdAtAccount creation date
indexedAtLast index date
avatarAvatar image URL
profileUrlhttps://bsky.app/profile/<handle>

Four modes

Followers — everyone who follows an account. Give it a handle.

Following — everyone an account follows. Give it a handle.

Keyword search — accounts whose name or bio matches a term. Give it something like climate tech or game developer.

Post likers — everyone who liked a specific post. Paste the post URL straight from your browser; the at:// URI form works too.

Use cases

  • Audience research — export a competitor's followers and sort by follower count to find the accounts that matter.
  • Lead generation — search bios by keyword, filter by follower count, hand the list to your outreach tool.
  • Community mapping — export the following list of a hub account to map who a niche actually pays attention to.
  • Influencer discovery — rank accounts in a niche by real follower and post counts, not vanity metrics.
  • Engagement analysis — export the likers of a high-performing post to see exactly who responded.

Input

{
"mode": "followers",
"target": "bsky.app",
"maxItems": 200,
"enrich": true
}

Run it with no configuration at all and it exports 200 enriched followers of bsky.app, so you can see the output shape before deciding anything.

FieldDefaultNotes
modefollowersfollowers, following, search, likers
targetbsky.appHandle, search term, or post URL — a leading @ is fine
maxItems200Up to 50,000; pagination is automatic
enrichtrueAdds counts and bios in batches of 25; turn off for the fastest handle-only list

Output

One row per account, deduplicated by did. Feed it straight into a spreadsheet, or pull it from the Apify dataset API in JSON, CSV, XLSX or XML.

{
"handle": "alice.bsky.social",
"displayName": "Alice",
"did": "did:plc:xxxxxxxxxxxxxxxxxxxxxxxx",
"description": "Building things on the AT Protocol",
"followersCount": 4821,
"followsCount": 613,
"postsCount": 2044,
"createdAt": "2023-05-02T09:14:22.000Z",
"profileUrl": "https://bsky.app/profile/alice.bsky.social"
}

Notes on limits and behaviour

  • Rate limits are respected. On HTTP 429 the Actor reads the ratelimit-reset header and waits exactly as long as it is told, backing off exponentially if the header is absent.
  • Transient 5xx responses are retried; a bad handle fails fast with the API's own message instead of a generic error.
  • An account deleted between collection and enrichment keeps its basic fields rather than vanishing from the export.
  • Very large audiences take time — an account with a million followers is a million paginated records. Use maxItems deliberately.

Data and privacy

This Actor reads only data Bluesky publishes publicly through its own API. It does not access private accounts, direct messages, email addresses or anything behind a login, because those endpoints are not reachable without authentication and the Actor holds no credentials.

Exported profiles may still constitute personal data. If you are in the EU or UK and you use this output for outreach, you are the data controller for what you do with it: have a lawful basis, tell people where their data came from on first contact, and honour objections. That obligation is yours, not the tool's.

How much does it cost?

You pay per account returned: $0.003 each, that is $3.00 per 1,000. There is no start fee, and subscription plans pay less per account.

The example input below asks for up to 200 accounts, so it costs $0.60 at most.

If a run reaches the spending limit you set, the output stops at that limit and never goes past it. You are never charged for rows that were not delivered.

Use Bluesky Followers Scraper as an API

Call it from your own code with the Apify client, here in Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("DataIO/bluesky-followers-exporter").call(run_input={
'mode': 'followers',
'target': 'bsky.app',
'maxItems': 200,
'enrich': True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

It also works from JavaScript, Make, Zapier, n8n, and from AI agents through the Apify MCP server.

Other actors you might like

FAQ

The actor reads public data from its official source, without logging in and without bypassing any access control. What you do with the data, for example contacting people listed in it, is your responsibility under the laws that apply to you, such as GDPR in Europe.

Can I run it on a schedule?

Yes. Create a schedule in Apify Console, daily or weekly for example, and each run delivers a fresh dataset, which you can send by email, webhook or integration.

Can AI agents use it?

Yes. It is available through the Apify MCP server, and every input field is described in its input schema, so an agent can call it directly.