Bluesky API

Bluesky Data API for Profiles, Posts, Threads, and Search

Scrape public Bluesky profiles, post feeds, threads, post and user search, follower graphs, and engagement data through simple JSON endpoints powered by the public AT Protocol AppView. No Bluesky account, no OAuth app, no API approval - just an API key and structured Bluesky data.

500 free credits
No card needed
From $0.20 / 1k
Pay as you go
Structured JSON
Ready for apps
API key access
Test in minutes
15
Endpoints
Public
AT Protocol AppView
$0.20
Per 1k requests

Try it now

Make one request. Inspect structured JSON.

Use the first endpoint in this API family with a Scrappa API key. Every account includes 500 free monthly credits, so you can validate the response shape before buying credits.

Request preview
Request
curl -X GET "https://scrappa.co/api/bluesky/profile?actor=bsky.app" \
  -H "Accept: application/json" \
  -H "X-API-KEY: YOUR_API_KEY"
JSON response
{
  "success": true,
  "endpoint": "profile",
  "did": "did:plc:z72i7hdynmk6r22z27h6tvur",
  "handle": "bsky.app",
  "displayName": "Bluesky",
  "description": "The decentralized social network",
  "followersCount": 3000000,
  "followsCount": 500,
  "postsCount": 10000
}

What you can build

Structured data for real applications. Here are some ideas.

Creator & Influencer Research

Collect public Bluesky profiles with follower counts, verification state, post volume, and moderation labels to compare creators across the decentralized social network.

Social Listening & Topic Tracking

Search public Bluesky posts by keyword, hashtag, author, domain, or language and follow the conversation with cursor pagination.

Engagement & Community Analysis

Map follower and following graphs, measure follow relationships between accounts, and pull the likes, quotes, and reposts behind a post.

Conversation Research

Fetch full post threads with replies and parent context to analyse how discussions develop around a specific post.

Bluesky scraping API

Structured Bluesky data from the public AT Protocol network

Scrappa is built for teams searching for a Bluesky API, an AT Protocol data API, or a decentralized social scraping endpoint. Use one API key to collect public profiles, post feeds, full threads, post and user search results, follower graphs, and engagement data as JSON.

Use the profile endpoint when you need follower counts, following counts, biography text, verification state, profile images, and moderation labels.

Use the user posts endpoint when you need post text, media embeds, engagement counts, and cursor pagination for an account.

Use the thread endpoint when you need the full reply tree around a post, and check has_other_replies to detect a truncated result.

Use post search when you need keyword, hashtag, author, domain, or language filtering, and remember that the V1 and V2 generations use different filter names.

Available endpoints

Everything you need in one API.

GET

Bluesky Profile API

/api/bluesky/profile

Get a public Bluesky profile by handle or DID including display name, bio, avatar, banner, follower, following and post counts, verification state and moderation labels

GET

Bluesky User Posts API

/api/bluesky/user-posts

Get a Bluesky actor's post feed with post text, media embeds, engagement counts, labels and opaque cursor pagination

GET

Bluesky Thread API

/api/bluesky/thread

Get a full Bluesky post thread with replies and parent context, including a truncation flag when more replies exist

GET

Bluesky Post Search API

/api/bluesky/search-posts

Search public Bluesky posts by keyword with per-generation author, hashtag, domain, language and media filters

GET

Bluesky User Search API

/api/bluesky/search-users

Search public Bluesky accounts by handle or display name with cursor pagination

GET

Bluesky User Typeahead API

/api/bluesky/typeahead-users

Bluesky account autocomplete for search-as-you-type interfaces

GET

Bluesky Followers API

/api/bluesky/followers

List an actor's Bluesky followers with pagination, and note that sort changes membership rather than order

GET

Bluesky Following API

/api/bluesky/following

List the accounts a Bluesky actor follows, alongside the subject profile

GET

Bluesky Relationships API

/api/bluesky/relationships

Check follow relationships between one Bluesky actor and up to 30 others in a single request

GET

Bluesky Batch Posts API

/api/bluesky/posts

Get up to 25 full Bluesky posts by AT-URI including record text, embeds, counts and labels

GET

Bluesky Handle Resolver API

/api/bluesky/resolve-handle

Resolve a Bluesky handle to its decentralized identifier (DID)

Scrappa vs Official Bluesky AppView API

See how Scrappa compares to the official API.

Access any public profile
Scrappa:
Official Bluesky AppView API: Yes, but raw XRPC JSON
Ready-to-use result shaping
Scrappa:
Official Bluesky AppView API: Raw lexicon output
Pagination cursors
Scrappa: Opaque, echoed per page
Official Bluesky AppView API: Manual handling
Mistyped filter handling
Scrappa: 422 before the request
Official Bluesky AppView API: Silently ignored, unfiltered results
Account required
Scrappa:
Official Bluesky AppView API:
Price per 1k requests
Scrappa: $0.20
Official Bluesky AppView API: Free but unwrapped
Setup time
Scrappa: Minutes
Official Bluesky AppView API: Self-built client
Free tier
Scrappa: 500 credits/month
Official Bluesky AppView API: n/a

Key features

Bluesky API responses for public profiles, post feeds, threads, search results, and social graphs
Full profile data with bio, follower count, following count, post count, verification state, and moderation labels
User posts with record text, media embeds, engagement counts, and opaque pagination cursors
Full thread retrieval with reply trees, parent context, and an explicit truncation flag
Post and user search with author, hashtag, domain, language, and media filters
No Bluesky account or OAuth app required
No API approval process
Simple API key authentication

Frequently asked questions

Yes. Scrappa provides Bluesky API endpoints for public profiles, post feeds, threads, post and user search, follower graphs, and engagement. You can collect profile metadata, post text, media embeds, engagement counts, reply trees, and follow relationships as structured JSON.

No. All Bluesky endpoints read the public AT Protocol AppView, which serves anonymous GET requests for public data. Scrappa never sends an authorization header, never uses cookies, and never requires Bluesky credentials of any kind. Only a Scrappa API key is needed.

Bluesky maintains two search generations. V2 is the current one and accepts sort=top or sort=recent, while the legacy V1 is the only generation that accepts the sort=latest token. Their filter parameters are also named differently: V2 uses plural keys such as authors and hashtags, while V1 uses singular author and tag. Scrappa keeps both generations explicit so a filter is never silently dropped and you always know which one ran.

The request is rejected with a 422 before any upstream call. The public Bluesky AppView silently ignores unknown parameters and answers with unfiltered results, which would otherwise look like a successful but incorrect search. Scrappa validates every parameter locally so a typo fails loudly instead of quietly returning everything.

Yes. Query public Bluesky profiles through the profile endpoint, or up to 25 at once through the batch endpoint, to collect follower counts, following counts, post volume, verification state, and moderation labels for creator research and comparison.

Paginated endpoints return an opaque cursor. Pass that cursor back unchanged as the cursor parameter to fetch the next page. Cursors are never parsed or reconstructed, so they keep working across upstream changes.

Yes. Every Scrappa account gets 500 free credits per month with no credit card required. Test the Bluesky endpoints before committing to paid usage.

Scrappa charges $0.20 per 1,000 requests with no daily caps. All Bluesky endpoints cost the same. The free tier includes 500 credits per month to get started.

Start using the Bluesky API

Sign up and get 500 free credits. No credit card required.