Bluesky Starter Pack Scraper icon

Social media

Bluesky Starter Pack Scraper

Export full member lists from any Bluesky Starter Pack via the AT Protocol API — pack metadata and member profiles with follower counts — to JSON or CSV. No login needed; we page through every member so none are missed.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

Bluesky Starter Packs are curated community lists that drove 43% of all follows during Bluesky's 2024 growth surge (EurekAlert, 2024). This Bluesky starter pack scraper reaches the AT Protocol AppView API (https://public.api.bsky.app/xrpc/) to export every member of any starter pack — by URI or by creator handle. We do the heavy lifting against three chained endpoints; you get one clean denormalized dataset.

Target endpoints:

What we handle for you

  • Two collection modes — scrape a single pack by URI/URL, or bulk-export every pack owned by a creator handle up to 100 packs per run.
  • Denormalized output — every row carries pack metadata and the member profile in one flat record. No joins needed when you drop it into a spreadsheet or CRM.
  • Bluesky web URLs accepted — paste https://bsky.app/starter-pack/handle/rkey directly; we normalize it to AT URI form.
  • Follower counts on every rowmember_followers_count, member_following_count, and member_posts_count are denormalized onto each member row.
  • Configurable member cap — 1–5,000 members per pack; keep test runs cheap.
  • PPE pricing — you pay only for rows emitted, not for idle compute.

Use cases

  • B2B growth marketing — identify niche audiences (e.g. "AI researchers on Bluesky") and build targeted outreach lists from curated community packs.
  • Bluesky audience research — map which accounts are recommended by influential pack curators in your industry before you invest in the platform.
  • Bluesky followers list export — enumerate the full member graph of a peer group and compare follower counts, post activity, and engagement ratios.
  • Academic research — map community topology and influencer networks; starter packs are the AT Protocol's primary community-formation mechanism.
  • Competitive intelligence — track which handles appear across multiple packs in your niche.
  • Journalism and OSINT — document community formation around a topic or event.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
starterPackUri string no AT URI (at://did:plc:.../app.bsky.graph.starterpack/...) or Bluesky web URL (https://bsky.app/starter-pack/handle/rkey) of the pack to scrape. Use this for single-pack mode. Mutually exclusive with Creator handle.
creatorHandle string no Bluesky handle (e.g. pfrazee.com) or DID of a starter-pack creator. The Actor lists every pack owned by that user via app.bsky.graph.getActorStarterPacks and scrapes each. Mutually exclusive with Starter pack URI.
maxPacks integer no Maximum number of starter packs to process when using creator mode. Ignored in single-pack mode. Default 10.
maxMembersPerPack integer no Maximum number of member rows emitted per starter pack. Acts as a client-side cap; pagination stops when this limit is reached. Default 500.
{
  "starterPackUri": "at://did:plc:ragtjsm2j2vknwkz3zp4oxrd/app.bsky.graph.starterpack/3l2stmy4ote2b",
  "maxPacks": 10,
  "maxMembersPerPack": 500,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

pack_uripack_namepack_descriptionpack_creator_handlemember_didmember_handlemember_display_namemember_followers_countmember_following_countmember_posts_countmember_indexed_atscraped_at

{
  "pack_uri": "at://did:plc:abc123/app.bsky.graph.starterpack/xyz789",
  "pack_name": "AI Researchers on Bluesky",
  "pack_description": "Curated list of ML/AI researchers who migrated from Twitter.",
  "pack_creator_handle": "alice.bsky.social",
  "member_did": "did:plc:def456",
  "member_handle": "bob.bsky.social",
  "member_display_name": "Bob Smith",
  "member_followers_count": 1204,
  "member_following_count": 380,
  "member_posts_count": 841,
  "member_indexed_at": "2024-11-14T09:22:01.000Z",
  "scraped_at": "2026-05-16T12:00:00.000Z"
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Member row emitted$0.0020Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

FAQ

Do I need a Bluesky account to use this?
No. The AT Protocol public AppView API (https://public.api.bsky.app/xrpc/) supports unauthenticated access. No login, no API key, no OAuth required from you — we handle authentication with the platform on our end.
Can I scrape multiple packs in one run?
Yes — use creator mode (creatorHandle) to export every pack published by a Bluesky user, up to 100 packs per run.
How do I find a pack's AT URI?
Paste the Bluesky web URL (https://bsky.app/starter-pack/<handle>/<rkey>) directly into starterPackUri. We normalize it to AT URI form automatically.
Why are some follower counts null?
The AT Protocol API returns profile viewer stats inline in list member objects. If a profile is new or those fields are absent from the API response, we emit the row with those fields set to null rather than dropping the row — so your row count stays accurate.
Is this a bluesky followers list for any user?
No — this Actor scopes to starter pack membership. It exports who is _in a pack_, not the full follower graph of an arbitrary user. For Bluesky feed and post data, see our companion Bluesky Feed Posts Actor.
Is scraping Bluesky starter packs compliant with the Terms of Service?
Yes. The AT Protocol is an open protocol explicitly designed for interoperability and data portability. Bluesky has publicly proposed a scraping standard for AI training datasets (Slashdot, 2025). The public AppView API is the official mechanism for unauthenticated access to pack data.
What happens if I provide both starterPackUri and creatorHandle?
The Actor raises a validation error before making any network call and exits with a non-zero status and a clear error message.
Can I use this for bluesky audience research before investing in the platform?
Yes — that is a core use case. Export a pack curated by someone active in your niche, analyse follower counts and post cadence, and decide whether the audience is worth engaging before you build a presence.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run