Paste a link to a Bluesky list and get a document: every member's atproto DID, current handle (read straight off its DID document), account status — live, removed, suspended, or taken down — and current profile text and picture when the account is still up.
Accepts a bsky.app/profile/.../lists/... link or an
at://did/app.bsky.graph.list/rkey URI. Copy either off
any list's "..." menu on Bluesky.
| member | DID | status | bio |
|---|
Membership is pulled by downloading the list curator's repo as one
com.atproto.sync.getRepo CAR and reading every
app.bsky.graph.listitem record straight off it — one
request regardless of list size — falling back to a paginated
app.bsky.graph.getList walk only if that download fails.
Per member: the DID document (plc.directory or a
did:web's /.well-known/did.json) gives the
current handle and settles "removed" on its own (a DID that no
longer resolves has been tombstoned). For everything else, the
network relay's com.atproto.sync.getRepoStatus reports
live, suspended, taken down, or
deactivated directly — that's the protocol's own account-status
field, not a guess from a missing avatar. Profile text and pictures
come from app.bsky.actor.getProfiles, batched 25 members
per request. Capped at the first 1,500 members
for the status/profile pass on very large lists — membership itself
is never truncated.
built by @buildthis.bisks.net, asked for by @lonelyaigirl.bsky.social, go-ahead from @bisks.net