Bluesky Followers Scraper
Pricing
$0.50 / 1,000 result records
Bluesky Followers Scraper
Collect public followers of a Bluesky account with handles, DIDs, display names, bios and avatars.
Pricing
$0.50 / 1,000 result records
Rating
0.0
(0)
Developer
Hamza
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Collect public followers of a Bluesky account with handles, DIDs, display names, bios and avatars.
Use this actor when you need structured bluesky followers data that you can filter, export or join with your own records. It is a focused actor: it handles this task rather than mixing unrelated data in the same run.
What you get
- Stable source identifiers for deduplication and joins.
- Structured results in the default dataset, ready to export as JSON, CSV, Excel or XML.
- Source links and an extraction timestamp on every record.
- A result cap to control run size. Paginated actors also have a page cap.
- Missing values remain null instead of being invented.
Use cases
Public audience research, creator-network analysis and follower profile export.
For periodic research, schedule separate runs and compare their timestamps and IDs. The actor returns snapshots; it does not create a real-time stream or deliver alerts on its own.
Example input
{"actor": "https://bsky.app/profile/propublica.org","maxItems": 100}
The example uses concrete values that passed a live check on October 2, 2026. Different queries, accounts, dates or publications can produce fewer records or none.
Input reference
| Field | Type | Required | Meaning |
|---|---|---|---|
actor | string | Yes | Bluesky username (for example propublica.org) or a bsky.app profile link (for example https://bsky.app/profile/propublica.org). |
maxItems | integer | No | Maximum followers to save (shown as "Maximum followers"). A cap is not a promise that this many followers exist. |
maxPages | integer | No | Maximum source pages for paginated actors. Ignored by single-response actors. |
maxItems (Maximum followers) is a ceiling, not a guaranteed result count. A run stops when it reaches that cap, the page cap, the end of available results or an error. Single-response actors ignore maxPages. Results are deduplicated by did within the run, not across separate runs.
Example output
One follower record, shown for its structure. Values change:
{"handle": "chrisbellatina.bsky.social","displayName": "Chris Bellatina","profileUrl": "https://bsky.app/profile/chrisbellatina.bsky.social","did": "did:plc:r5x2fedirwqtwuqrpzmc4l5q","description": null,"avatar": null,"accountCreatedAt": "2026-10-05T19:33:11.556Z","indexedAt": "2026-10-05T19:33:12.000Z","scrapedAt": "2026-10-05T19:40:16.103Z"}
Output fields
| Field | Type | Meaning |
|---|---|---|
handle | string | Follower's Bluesky handle. |
displayName | string or null | Follower's display name; null when not set. |
profileUrl | string | Link to the follower's profile on bsky.app. |
did | string | Follower's permanent Bluesky account ID. Used to remove duplicates within a run. |
description | string or null | Follower's bio; null when empty. |
avatar | string or null | Profile picture URL; null when not set. |
accountCreatedAt | string or null | When the follower's account was created. |
indexedAt | string or null | When Bluesky last indexed the profile. |
scrapedAt | string | Extraction timestamp in UTC ISO 8601. |
If the username or link does not match a Bluesky profile, the run still finishes as Succeeded with no records and a clear "profile not found" message (run status and the RUN_SUMMARY record), with examples of valid input. Anything that is not a Bluesky handle or a bsky.app profile link is rejected with an explanation.
Limits and data quality
Not a following-list actor. Follower list entries may omit profile counts, which are null. Live lists change while paginating; no guarantee of a complete snapshot. Personal data needs lawful handling.
Source availability, record order, rate limits and field coverage can change. A successful small test does not guarantee high-volume reliability or full historical coverage. Missing data is not proof that an event, post, person or listing does not exist. The actor fails on unexpected layouts or blocked responses rather than pretending that a block is a valid empty dataset. If a later page fails, a run can fail before saving its collected results.
FAQ
Do I need an account or cookies?
No account or cookies are required for the supported public records. Private, deleted, restricted and paid-only data is outside the actor's scope.
Can I request more results than exist?
You can set the cap within the allowed range, but the actor only returns available matching records. Page caps and source limits still apply.
Does this monitor changes automatically?
No. Each run returns a snapshot. Use scheduled runs and your own comparison or notification workflow if you need monitoring.
Are missing fields estimated?
No. Missing fields stay null, or retain the documented empty array when no entries are returned. Engagement and price values are point-in-time source values, not predictions.
Can I use the data commercially?
Access to public records does not grant unlimited reuse rights. Check source terms, licenses, copyright and relevant privacy rules for your intended use. This actor is independent and is not endorsed by the named platform.