Bluesky Scraper — Posts, Profiles, Search, Followers avatar

Bluesky Scraper — Posts, Profiles, Search, Followers

Pricing

from $1.00 / 1,000 result items

Go to Apify Store
Bluesky Scraper — Posts, Profiles, Search, Followers

Bluesky Scraper — Posts, Profiles, Search, Followers

Scrape Bluesky posts, profiles, followers, threads, and search results through the official AT Protocol API — fast, reliable, no blocks. Clean flat JSON for spreadsheets, dashboards, and AI pipelines. Pay only per result.

Pricing

from $1.00 / 1,000 result items

Rating

0.0

(0)

Developer

Andreas Lund Helstrøm

Andreas Lund Helstrøm

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Extract data from Bluesky fast and reliably. This scraper talks to Bluesky's official AT Protocol API — no fragile browser automation, no blocks, no proxies needed — and returns clean, flat JSON you can plug straight into spreadsheets, dashboards, databases, or AI pipelines.

What it can do

OperationWhat you getLogin needed?
user-postsAll posts (and optionally replies) from any userNo
user-profilesProfile info: bio, follower/post counts, datesNo
followersWho follows a userNo
followsWho a user followsNo
search-usersFind users matching a keywordNo
post-threadA post plus its full reply treeNo
search-postsFull-text post search with sort and date rangeApp password

Why this scraper

  • Built on the official API — near-100% success rate, fast runs, and results that match what you see on bsky.app.
  • Pay only for results — pricing is per returned item, capped by your maxItemsPerInput setting and your run's charge limit.
  • Clean output — flat fields (text, author.handle, likeCount, url, …) instead of raw protocol blobs.
  • AI-agent ready — callable by AI agents and LLM workflows through Apify's MCP integration, like every actor on the platform.

Quick start

Scrape the latest 200 posts from a few accounts:

{
"operation": "user-posts",
"handles": ["bsky.app", "https://bsky.app/profile/nytimes.com"],
"maxItemsPerInput": 200
}

Handles, DIDs, and profile URLs all work interchangeably.

Example output item (post)

{
"type": "post",
"uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3kexample",
"url": "https://bsky.app/profile/bsky.app/post/3kexample",
"text": "Example post text",
"createdAt": "2026-07-01T12:34:56.000Z",
"author": { "did": "did:plc:z72i…", "handle": "bsky.app", "displayName": "Bluesky" },
"replyCount": 12,
"repostCount": 34,
"likeCount": 567,
"quoteCount": 8,
"images": [],
"externalLink": null,
"isReply": false
}

Profile items carry handle, displayName, description, followersCount, followsCount, postsCount, and createdAt.

Post search (the one operation that needs a login)

Bluesky restricted its post-search endpoint to logged-in sessions platform-wide. To use search-posts:

  1. In the Bluesky app, go to Settings → Privacy and Security → App Passwords and create one (takes a minute).
  2. Enter your handle in bskyIdentifier and the app password in bskyAppPassword (stored encrypted by Apify).

Never enter your main account password. Every other operation works without any login.

{
"operation": "search-posts",
"queries": ["\"climate tech\"", "solar panels"],
"searchSort": "latest",
"since": "2026-06-01T00:00:00Z",
"maxItemsPerInput": 500,
"bskyIdentifier": "you.bsky.social",
"bskyAppPassword": "xxxx-xxxx-xxxx-xxxx"
}

Use cases

  • Brand and topic monitoring — track mentions, threads, and sentiment sources as Bluesky keeps growing.
  • Audience research — follower/following graphs, profile datasets, community mapping.
  • Datasets for AI — feed clean public social data to LLM pipelines, agents, and research projects.
  • Journalism and academia — collect public conversation around events, with date-ranged search.

Fair use, rate limits, and privacy

The scraper only accesses public data through Bluesky's official, documented API, paces its requests politely, and retries gently on rate limits. Nothing is cached server-side: deleted content simply stops being returned. Please respect Bluesky's terms and applicable laws (including data-protection rules) in how you use the output.

Troubleshooting

  • "Post search requires a Bluesky login" — add bskyIdentifier + bskyAppPassword (see above).
  • A handle returns nothing — check the account isn't suspended/deleted; try the profile URL form.
  • Login failed — app passwords are per-account and revocable; generate a fresh one.

Found an issue or missing a feature? Open an issue on the actor page — it gets a fast response.