Social listening and trend tracking
Use Bluesky endpoints to turn social listening and trend tracking into repeatable API requests with documented inputs and JSON responses.
Turn Bluesky's public AT Protocol data into structured social data — account search, full public profiles, an account's post feed, followers and follows, a post's full reply thread, and platform-wide trending topics, all as normalized JSON. Credential-free, no auth required.
Search Bluesky accounts and get profiles, posts, follower/following lists, post threads, and trending topics as structured JSON.
Endpoint families
6
Documented params
36
Examples
11
Live catalog snapshot
Active endpoints
11
Methods
GET
Required params
21
Schema refs
11
{
"platform": "Bluesky",
"endpoint": "bluesky-search-actors",
"method": "GET",
"path": "/bluesky/search-actors",
"auth": "apiKey"
}Use cases
Search Bluesky accounts and get profiles, posts, follower/following lists, post threads, and trending topics as structured JSON.
Use Bluesky endpoints to turn social listening and trend tracking into repeatable API requests with documented inputs and JSON responses.
Use Bluesky endpoints to turn creator and account research into repeatable API requests with documented inputs and JSON responses.
Use Bluesky endpoints to turn conversation and thread analysis into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Bluesky endpoint catalog — 11 endpoints, 36 documented request parameters, and 11 published response schemas — the same catalog Docs and Playground run against.
11 documented Bluesky endpoints, grouped into 11 request families — Author Feed, Followers and Follows, plus 8 more.
36 request parameters are documented across those Bluesky endpoints, 21 of them required — the full input contract is public before you write any integration code.
11 of the 11 Bluesky endpoints ship a recorded example response, and 11 carry a documented response schema — you can code against the real JSON before the first request.
Bluesky endpoints document their error responses (400, 404, 429, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
11 hosted MCP tools back the Bluesky endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
/bluesky/author-feed
/bluesky/followers
/bluesky/follows
/bluesky/post-likes
/bluesky/post-quotes
/bluesky/post-reposted-by
Endpoint catalog
/bluesky/search-actorsReturns Bluesky accounts matching a query against display name, handle, and profile description.
Response notes
- Each result's `handle` (or `did`) is usable directly as the `actor` parameter to [`/bluesky/profile`](bluesky-profile.md), [`/bluesky/author-feed`](bluesky-author-feed.md), [`/bluesky/followers`](bluesky-followers.md), or [`/bluesky/follows`](bluesky-follows.md).
MCP tool bluesky_search_actors
/bluesky/profileReturns a Bluesky account's public profile: display name, description, avatar/banner images, and follower/follows/posts counts.
Response notes
- An unknown handle/DID returns `404`.
MCP tool bluesky_profile
/bluesky/author-feedReturns a page of a Bluesky account's posts, newest first, including text, engagement counts, and any attached images/link card/quoted post.
Response notes
- Each result's `uri` is usable directly as the `uri` parameter to [`/bluesky/post-thread`](bluesky-post-thread.md). - A post embeds at most one of `images`, `external`, or `quoted_post_uri` (a quote-post-with-media embed sets both `images`/`external` and `quoted_post_uri`).
MCP tool bluesky_author_feed
/bluesky/followersReturns a page of a Bluesky account's followers. `actor` is required and is a handle such as `bsky.app` or a DID. `limit` is 1 to 100 (default 25); pass the returned `cursor` back to continue. Each follower has `did`, `handle`, `display_name`, `description`, `avatar_url` and `created_at`, and `subject` describes the account itself.
MCP tool bluesky_followers
/bluesky/followsReturns a page of the accounts a Bluesky account follows.
MCP tool bluesky_follows
/bluesky/post-threadReturns a Bluesky post along with its nested replies (and, when the post is itself a reply, its parent chain), up to `depth` levels deep.
Response notes
- `uri` must start with `at://`; otherwise `400` is returned before any upstream request is made. - A deleted, blocked, or otherwise inaccessible reply is silently dropped from `replies` rather than surfaced as an empty entry. - A post that no longer exists returns `404`.
MCP tool bluesky_post_thread
/bluesky/trending-topicsReturns Bluesky's current trending topics and suggested feeds, each with a link to its feed. This surface is less stable than the rest of this family -- Bluesky may change its shape without notice.
Response notes
- This surface is sourced from AT Protocol's `app.bsky.unspecced.*` namespace, which is less stable than the rest of this family — Bluesky may change its shape without notice.
MCP tool bluesky_trending_topics
/bluesky/post-likesLists the accounts that liked a Bluesky post, identified by its `at://` post `uri`, which is required. `limit` defaults to 25 and is capped at 100; pass the returned `cursor` back for the next page. Each actor has `did`, `handle`, `display_name`, `description`, `avatar_url` and `created_at`.
MCP tool bluesky_post_likes
/bluesky/post-quotesLists the Bluesky posts that quote a given post, identified by its `at://` post `uri`, which is required. `limit` defaults to 25 and is capped at 100; pass the returned `cursor` back for the next page. Each post has its `text`, `author`, `created_at`, `langs`, like, quote, reply and repost counts, `images` and `external` link card.
MCP tool bluesky_post_quotes
/bluesky/post-reposted-byLists the accounts that reposted a Bluesky post, identified by its `at://` post `uri`, which is required. `limit` defaults to 25 and is capped at 100; pass the returned `cursor` back for the next page. Each actor has `did`, `handle`, `display_name`, `description`, `avatar_url` and `created_at`.
MCP tool bluesky_post_reposted_by
/bluesky/postsReturns public Bluesky posts for 1-25 at:// post URIs. Missing, deleted, or blocked posts are omitted when the public AppView omits them.
MCP tool bluesky_posts
Related APIs
Social & Creator Platforms
Build creator intelligence, video research, transcript, and audience-comment workflows without maintaining YouTube scrapers.
Social & Creator Platforms
Turn Twitch's public channel, stream, clip, and team data into structured JSON — live status and viewer counts, top games, clips, VODs, and team rosters — as normalized JSON. Credential-free.
Social & Creator Platforms
Track creator and video activity, discover sounds and LIVE streams, and study public ad creatives through documented TikTok API routes.
How to scrape Bluesky
Crawlora's Bluesky endpoints return profiles, feeds, follower graphs, threads, and trending topics as normalized JSON with one API key — no Bluesky account or auth token required.
Send a keyword to /bluesky/search-actors, or a handle or DID to /bluesky/profile — bsky.app resolves as readily as its did:plc identifier. A profile returns snake_case counters including followers_count and posts_count.
Pass a handle or DID as actor to /bluesky/author-feed for their posts, or to /bluesky/followers and /bluesky/follows for their social graph.
search-actors, author-feed, followers and follows all take limit and cursor. Pass the cursor from the previous response to continue — there is no page number, and a large account's follower list is only reachable this way.
Pass a post's AT-URI to /bluesky/post-thread for that post and its reply tree, with an optional depth to bound how far down you walk.
/bluesky/trending-topics takes no parameters and returns the platform's current trending topics — around ten at a time, phrased as short headlines rather than hashtags.
FAQ
Send a keyword to Crawlora's /bluesky/search-actors endpoint and get matching account profiles as structured JSON — no Bluesky account required.
No Bluesky login or auth token is required from the caller — Bluesky's AT Protocol AppView exposes this data with zero auth, and Crawlora only requires your own API key.
Yes — /bluesky/post-thread returns a post and its nested reply tree as structured JSON, and an optional depth parameter bounds how deep it walks so a very long conversation does not return more than you need.
With the cursor, not a page number. /bluesky/followers, /bluesky/follows, /bluesky/author-feed and /bluesky/search-actors each accept limit and cursor and return a cursor for the next page — keep passing it back until none is returned. This matters on large accounts: bsky.app alone reports over 34 million followers, so a cursor loop is the only way through.
Either form works. The actor parameter accepts a handle such as bsky.app or the underlying did:plc identifier, because both resolve through the same AT Protocol AppView. Handles can change while DIDs are stable, so store the DID if you are tracking an account over time.