← the zoo

📋 rollcall

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.

🦋 share this census
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