Bluesky threads can run thousands of replies deep — here's how to pull every one of them (plus a whole profile's posts) into a clean spreadsheet in a couple of minutes, no login required.

Why export Bluesky comments

Bluesky (bsky.app) runs on the open AT Protocol, and its conversations move fast. A single announcement can collect thousands of nested replies that are impossible to read — let alone analyze — inside the app. Exporting turns that firehose into something you can sort, filter, count and share.

  • Community & sentiment research — pull every reply on a post and measure how people actually reacted, instead of eyeballing the first few.
  • Giveaways & contests — export all replies to a giveaway post, then de-duplicate and pick winners fairly from the full list.
  • Brand & creator monitoring — export a whole profile's posts to track engagement (likes, reposts, quotes) over time in one sheet.
  • Archiving — keep a permanent, offline record of a thread or account before posts get edited or deleted.

Two ways to export from Bluesky

ExportComments supports both Bluesky URL types — it automatically detects which one you paste:

  • A post URL like https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l exports every reply (comment) on that post, walking the full thread tree to any depth.
  • A profile URL like https://bsky.app/profile/bsky.app exports every post from that account's feed.

How to export — step by step

Step 1: Copy the Bluesky URL

Open the post or profile on bsky.app. For a single thread, click the post and copy the address from your browser (or use the post's share button → Copy link). For a whole account, just copy the profile URL. Handles (bsky.app) and DID-based URLs both work.

Step 2: Paste it on ExportComments.com

Go to the Bluesky comments exporter (or the Bluesky posts exporter) and paste the URL into the box. No Bluesky login, cookie or password is needed — Bluesky's public API is read-only and open.

Step 3: Click “Start Export Process”

ExportComments fetches the thread or feed in the background. For comments it follows every branch of the reply tree, including the lower-quality “other replies” that Bluesky tucks away, so nothing is missed. You'll see a live progress count as it runs.

Step 4: Download Excel, CSV or JSON

When it finishes, download the result as Excel (.xlsx), CSV or JSON. Excel and CSV are ready for spreadsheets and pivot tables; JSON is ideal if you're feeding the data into a script or another tool.

Inside the export — what fields you get

Each comment or post is one row, with these columns:

  • message — the post or reply text.
  • time — when it was created (timestamp).
  • name — the author's display name.
  • username — the author's Bluesky handle (e.g. alice.bsky.social).
  • profile_id — the author's stable AT Protocol DID.
  • avatar — the author's profile picture URL.
  • likes — like count.
  • reply_count — number of direct replies to that post.
  • repost_count — reposts.
  • quote_count — quote posts.
  • bookmark_count — bookmarks.
  • language — the post's declared language.
  • permalink — direct link back to the post on bsky.app.
  • parent_id — the post this reply answers (empty for top-level replies), so you can rebuild the conversation.
  • depth — how deep in the thread the reply sits.

Common workflows

  • Pick giveaway winners — export a post's replies, then use username + profile_id to remove duplicates before drawing.
  • Rebuild a conversation — sort by time or use parent_id and depth to reconstruct exactly who replied to whom.
  • Find your top posts — export a profile's feed and sort by likes or repost_count to see what resonated.
  • Track engagement over time — re-export a profile periodically and chart the metrics in a spreadsheet.

Plan limits & API access

The Free tier returns up to 100 results per export. Paid plans raise the cap: Personal 5,000, Premium 50,000 and Business 250,000 results per export. See Pricing for the full breakdown. Need to automate Bluesky exports? The REST API is available on Premium and Business plans, so you can trigger exports and pull results straight from your own code.

Exporting more than one Bluesky URL at once? Bulk URL upload processes each URL as a separate export and bundles the resulting files into a single ZIP — one file per URL.

FAQ

  • Do I need a Bluesky account or login?
    No. Bluesky's public API is open and read-only, so you can export public posts and replies without any login, cookie or password.
  • Does it get every reply, even deeply nested ones?
    Yes. The exporter walks the entire reply tree to any depth and also pulls Bluesky's separate “other replies” bucket, so you get the complete conversation, not just the first level.
  • Can I export all of a profile's posts?
    Yes — paste the profile URL (e.g. https://bsky.app/profile/handle) instead of a post URL and the exporter pulls the account's feed.
  • What's the difference between username and profile_id?
    username is the human-readable handle, which can change; profile_id is the account's permanent AT Protocol DID, which never changes — use it for reliable de-duplication.
  • Which format should I choose?
    Use Excel or CSV for spreadsheets and analysis, and JSON if you're importing the data into another program.
  • Can I automate this?
    Yes — Premium and Business plans include access to the REST API for programmatic exports.