Disclosure: I built the Apify Actor linked at the end and charge per result. The raw endpoints below are free and need no account.
Bluesky serves read-only data from public.api.bsky.app. No auth is needed for profiles and author feeds.
1. Profile and follower count
curl -s "https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=bsky.app"
Checked 2026-10-31: the response includes did, handle, displayName, followersCount (35,471,536 at the time) and postsCount (907). actor accepts a handle or a DID.
2. Recent posts from one account
curl -s "https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?actor=bsky.app&limit=50&filter=posts_no_replies"
Checked 2026-10-31: returns a feed array; each item has post.uri, post.record.text, post.record.createdAt and like/repost counts.
Gotchas
- Results are paged: pass the returned
cursorback ascursor=to get the next page.limitmaxes at 100. -
filtercan beposts_no_replies,posts_with_replies,posts_with_mediaorposts_and_author_threads. - Post search (
app.bsky.feed.searchPosts) returned 403 from my server when I tested it, so don't assume it is open to anonymous clients. - Be polite with request rates.
Hosted version
If you'd rather not script it, I packaged profile, follower and post-feed collection as an Apify Actor (pay per result, no subscription): https://apify.com/northgrid-data/bluesky-profiles-posts-followers
Feedback welcome in the Actor's issues.
Top comments (0)