Bluesky Threads & Skeet Scraper
Pricing
Pay per usage
Bluesky Threads & Skeet Scraper
Track public Bluesky conversations, trending posts, and profile metrics using unauthenticated AT Protocol XRPC endpoints to gather insights on social sentiment.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
naoki anzai
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
3
Monthly active users
18 days ago
Last modified
Categories
Share
Quickstart
Provide either a query (keyword search), an authorHandle (timeline mode), or a postUri (thread expansion). Results land in the Apify Dataset.
Use cases
- Brand and competitor mention monitoring on Bluesky
- AT Protocol social-listening for research teams
- Thread / conversation archival for journalism and OSINT
- Federated alternative to Twitter/X listening (auth-free)
Track and extract data from Bluesky profiles, conversation threads, and keyword searches with lightning speed. As the AT Protocol ecosystem grows, gathering insights from the decentralized social web has become critical for marketers, researchers, and community managers. This monitor leverages Bluesky's public XRPC endpoints to pull comprehensive social data directly from the public appview, bypassing the need for complex API keys, rate-limit tokens, or authenticated sessions.
Whether you need to schedule weekly brand mentions reports or run daily checks on industry-specific conversations, this tool provides a seamless extraction pipeline. Users typically deploy this monitor to capture author handles, exact timestamps, and full post text alongside vital engagement signals like reply counts, reposts, and likes.
By targeting specific user feeds or broader search results, you can map out entire thread hierarchies and track viral content as it spreads across the network. The output includes highly structured details such as the post URI, content identifiers (CIDs), embedded media hints, and follower metrics. This rich dataset enables teams to build custom analytics dashboards, perform sentiment analysis on emerging trends, or archive vital public discourse without relying on restrictive, authenticated timelines.
Status
Scaffolded as part of Wave 17 Batch S — Tier 3 (strategic / emerging platforms + governance). Domain logic lives in src/workflow.js.
Feasibility
Very high — Bluesky exposes all public posts, profiles, and search via the unauthenticated AT Protocol XRPC layer at public.api.bsky.app. No login, no API key, no rate-limit token required.
V1 scope
Public AT Protocol appview (public.api.bsky.app) only. Per post: URI, CID, author handle, text, created-at, like/repost/reply counts, embedded media hints. OUT OF SCOPE: authenticated timelines, direct messages, private lists, moderation reports, custom feed creation.
Extraction surfaces
- Author feed: https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?actor={handle}
- Profile: https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor={handle}
- Search posts: https://public.api.bsky.app/xrpc/app.bsky.feed.searchPosts?q={query}
- Thread: https://public.api.bsky.app/xrpc/app.bsky.feed.getPostThread?uri={uri}
Known limitations and explicit warnings
- AT Protocol is still pre-1.0; endpoint shapes may evolve and parsers are best-effort.
- Public XRPC responses page at 50-100 items — large handles require cursor pagination.
- Like and repost COUNTS are returned on the post view; the LIST of likers/reposters requires authenticated endpoints and is out of V1 scope.
- Search is approximate — not a full-text index; recent posts are favored.
- Deleted posts disappear from the feed but leave holes in thread replies; the actor emits a placeholder when a reply parent is unreachable.
- Custom feed generators and private lists require authentication — out of V1 scope.
- Rate limits on the public appview are not published; polite pacing (≥250ms per request) is enforced.
- Embedded video bytes are not downloaded — only the embed URL is surfaced.
- DID resolution is trusted from the appview response; independent PLC-directory validation is not performed in V1.
- Quote posts are surfaced as a nested embed, not flattened into the parent text.
Input
- Bluesky handles / search terms
- Delivery mode (dataset or webhook)
- Dry-run support for local validation
Input Examples
Example: Keyword search
{"mode": "search","query": "claude AI","limit": 100}
Example: Author timeline
{"mode": "author","handle": "example.bsky.social","limit": 50}
Example: Thread expansion
{"mode": "thread","postUri": "at://did:plc:.../app.bsky.feed.post/abc"}
Output
- Normalized
postsarray metasection with implementation status, feasibility note, V1 scope, warnings, and notes
Local run
npm testnpm start
⭐ Was this helpful?
If this actor saved you time, please leave a ★ rating on Apify Store. It takes 10 seconds, helps other developers discover it, and keeps updates free.
Bug report or feature request? Open an issue on the Issues tab of this actor.