DEV Community

Cover image for The Complete Guide to Bluesky AT Protocol: 4 Free Tools for Developers
Алексей Спинов
Алексей Спинов

Posted on

The Complete Guide to Bluesky AT Protocol: 4 Free Tools for Developers

Bluesky has grown from 10M to 41M users in one year (+302%). Built on the AT Protocol, it is the only major social network with a completely open, free API — no API keys, no rate limits on public data, no approval process.

Here are 4 free tools I built for working with Bluesky data, plus code examples you can use right now.

Why Bluesky for Developers?

  • Open protocolpublic.api.bsky.app is free and open
  • No auth for public data — profiles, posts, feeds are all accessible without login
  • Decentralized — data is portable, not locked to one platform
  • Growing fast — 41M+ users and counting
  • JSON API — clean, structured responses

The AT Protocol Basics

Every Bluesky user has a DID (Decentralized Identifier) and a handle (like a username). The flow:

Handle → DID → Profile/Posts/Feed
Enter fullscreen mode Exit fullscreen mode

Step 1: Resolve Handle to DID

const res = await fetch(
  `https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=bsky.app`
);
const { did } = await res.json();
// did: \"did:plc:z72i7hdynmk6r22z27h6tvur\"
Enter fullscreen mode Exit fullscreen mode

Step 2: Get Profile

const profile = await fetch(
  `https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=${did}`
).then(r => r.json());

console.log(profile.displayName);    // \"Bluesky\"
console.log(profile.followersCount); // 32,420,172
console.log(profile.postsCount);     // 725
Enter fullscreen mode Exit fullscreen mode

Step 3: Get Posts (Feed)

const feed = await fetch(
  `https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?actor=${did}&limit=50`
).then(r => r.json());

for (const item of feed.feed) {
  const post = item.post;
  console.log(post.record.text);
  console.log(`Likes: ${post.likeCount}, Reposts: ${post.repostCount}`);
}
Enter fullscreen mode Exit fullscreen mode

4 Free Bluesky Tools

1. Bluesky Scraper

The main tool. Enter handles → get full profiles + posts with engagement data. Supports pagination for 1000+ posts per profile.

2. Bluesky Feed Monitor

Track engagement metrics over time. See which posts get the most likes, reposts, and replies.

  • Great for brand monitoring and content strategy

3. Bluesky Hashtag Tracker

Discover trending hashtags and topics. Monitor specific hashtags for volume and engagement.

  • Perfect for trend analysis and content research

4. Bluesky Profile Batch

Look up 100+ profiles at once. Get follower counts, bio, avatar, DID for bulk analysis.

  • Ideal for influencer research and migration tracking

Use Cases

  1. Brand monitoring — track mentions of your brand on Bluesky
  2. Influencer research — find and analyze top Bluesky creators
  3. Migration analysis — track which Twitter/X users moved to Bluesky
  4. AI training data — build NLP datasets from public conversations
  5. Sentiment analysis — analyze public opinion on trending topics
  6. Content research — discover what topics get the most engagement

Post Search (Requires Auth)

For searching posts by keyword, you need a Bluesky App Password:

  1. Go to Bluesky Settings → App Passwords
  2. Create a new password
  3. Use it with the search endpoint:
// Login
const session = await fetch(\"https://bsky.social/xrpc/com.atproto.server.createSession\", {
  method: \"POST\",
  headers: { \"Content-Type\": \"application/json\" },
  body: JSON.stringify({ identifier: \"your.handle\", password: \"app-password\" })
}).then(r => r.json());

// Search
const results = await fetch(
  `https://bsky.social/xrpc/app.bsky.feed.searchPosts?q=javascript&limit=25`,
  { headers: { Authorization: `Bearer ${session.accessJwt}` } }
).then(r => r.json());
Enter fullscreen mode Exit fullscreen mode

Resources


Part of 60+ free web scraping tools. Also: 15 MCP servers for AI agents and free market research reports.

Top comments (0)