Bluesky Analytics Suite
Pricing
Pay per event
Bluesky Analytics Suite
All-in-one Bluesky analytics Apify Actor. Track followers, analyze engagement, benchmark accounts, and export reports via the open AT Protocol — no login required.
Pricing
Pay per event
Rating
0.0
(0)
Developer
firas_mosbehi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
An Apify Actor that turns Bluesky public data into actionable analytics. Built on the open AT Protocol — no login or API key required.
Features
- Profile analytics — full profile metadata, follower/following counts, posting history.
- Post analytics — engagement metrics (likes, reposts, replies, quotes), media detection, hashtags, mentions.
- Engagement insights — engagement rate, median/P90 engagement, velocity score, posts-per-day, top hashtags, top mentions, engagement distribution.
- Follower tracking — follower ratio, posts-per-follower, snapshot-based growth velocity across runs.
- Competitor benchmarking — compare multiple handles with ranked overall scores.
- Search — keyword/hashtag search with date, language, and min-likes filters.
- Social graph — export followers and following lists with profile metadata.
- Thread extraction — full conversation trees from any bsky.app URL.
- Rich exports — JSON, CSV, Excel, and HTML reports.
Modes
| Mode | Description |
|---|---|
profile | Fetch one or many profiles. |
posts | Fetch recent posts for a handle. |
search | Search posts by keyword/hashtag. |
followers | Export a handle's followers. |
following | Export accounts a handle follows. |
thread | Extract a post thread. |
analytics | Full analytics report for one or more handles. |
Pricing
- First 100 results free per run.
- $0.003 per post or profile scraped.
Quick start
Run on Apify
- Open the actor on Apify Store: https://apify.com/frayess_mosbehi/bluesky-analytics-suite
- Choose a mode and enter handles/queries.
- Run the actor and download JSON/CSV/Excel/HTML results.
Run locally
npm install --legacy-peer-depsnpm run build# Create input filemkdir -p storage/key_value_stores/defaultcp examples/analytics.json storage/key_value_stores/default/INPUT.json# RunAPIFY_LOCAL_STORAGE_DIR=./storage node dist/main.js
Results are written to storage/datasets/default/ and analytics reports to storage/key_value_stores/default/:
REPORT.json— full analytics reportREPORT.csv— benchmark tableREPORT.xlsx— Excel workbookREPORT.html— HTML report (whenoutputFormat: html)
Examples
See the ./examples directory for ready-to-use input configurations:
profile.jsonposts.jsonsearch.jsonfollowers.jsonthread.jsonanalytics.json
Input schema
| Field | Type | Description |
|---|---|---|
mode | string | Required. One of profile, posts, search, followers, following, thread, analytics. |
handles | string[] | Handles/DIDs for profile, posts, followers, following, analytics modes. |
queries | string[] | Keywords/hashtags for search mode. |
postUrl | string | bsky.app URL or AT URI for thread mode. |
maxResults | integer | Max items per handle/query. Default 100, max 10000. |
sort | string | Search sort: top or latest. Default latest. |
language | string | ISO language filter for search. |
minLikes | integer | Minimum likes filter. |
since | string | Start date filter YYYY-MM-DD. |
until | string | End date filter YYYY-MM-DD. |
includeReposts | boolean | Include reposts in author feed. Default false. |
includeAnalytics | boolean | Compute analytics report. Default true. |
outputFormat | string | Analytics report format: json or html. Default json. |
Development
npm install --legacy-peer-depsnpm run dev # run with Apify CLInpm run test # run Vitest testsnpm run lint # run ESLintnpm run format # run Prettiernpm run build # compile TypeScript
Deploy to Apify
Manual deploy
npm run buildapify loginapify push
Automated deploy via GitHub Actions
- Create an Apify API token in the Apify Console.
- Add it as a repository secret named
APIFY_TOKENin GitHub. - Publish a GitHub release — the actor will deploy automatically.
Tech stack
- Node.js 20 + TypeScript
- Apify SDK + Crawlee
- Direct AT Protocol XRPC calls
- Zod for input validation
- Vitest for testing
FAQ
Do I need a Bluesky login or API key?
No. The actor reads only public data via Bluesky's public AT Protocol endpoints.
What data can I scrape?
Public profiles, posts, followers, following lists, search results, and threads. Private accounts and DMs are not accessible.
How is pricing calculated?
You pay $0.003 per post or profile returned, plus a $0.00005 actor start fee. The first 100 results of every run are free.
What are the rate limits?
The actor uses polite exponential backoff and respects Bluesky's public rate limits. Very large lists may take longer to finish.
Can I schedule runs?
Yes. Use the Apify Scheduler to run the actor daily or weekly for follower tracking or mention monitoring.
Comparison with raw Bluesky scrapers
| Capability | Raw scraper | Bluesky Analytics Suite |
|---|---|---|
| Public posts & profiles | ✅ | ✅ |
| Engagement rate & velocity | ❌ | ✅ |
| Follower growth tracking | ❌ | ✅ |
| Multi-handle benchmarking | ❌ | ✅ |
| CSV / Excel / HTML reports | Rarely | ✅ |
| No login or API key | Varies | ✅ |
Screenshots
Store screenshots will be added here: input UI, HTML report, Excel output, and CSV output.
Love this actor?
If it saved you time, please leave a review on the Apify Store — it helps others discover the tool and supports ongoing development.
Support
For issues or feature requests, open an issue on GitHub or contact the developer through Apify.
License
MIT