Skip to content

Bulk Block

Open Bulk Block →

Bulk Block takes a list of accounts, checks who each one is, and blocks or mutes the ones you choose in one run, which you can undo from History. It is useful for a list someone shared with you, a block list exported from another tool, or a CSV exported from BskyKit.

Before anything is written, you see every account it found, with badges that say whether you already block, mute, or follow it.

  1. Open Bulk Block and sign in if asked.
  2. Put the accounts in Accounts to block or mute, one way or several:
    • paste them, one per line or separated by commas;
    • type a name or handle in Add an account, pick a suggestion or keep what you typed, and choose Add;
    • choose a file under Or upload a file. Its text replaces the box and is checked at once.
  3. Choose Check accounts. A progress bar shows the lookup.
  4. The accounts found appear under the box, all selected except your own account. Notices under the box list entries that are not accounts, accounts that were not found, and Starter Pack or list links.
  5. In the side column, under For each account, choose Block or Mute. Accounts that the choice already covers are locked and leave the selection.
  6. Untick anyone you want to leave out, or use Select.
  7. Optional: choose Export to download the selected accounts first.
  8. Choose Block selected or Mute selected.
  9. In the confirmation, such as Block 25 accounts?, choose Block 25 accounts (the number matches your selection).
  10. The run starts, or waits behind runs already in the queue. Its progress shows above the button. When it ends, the accounts it took show as Already blocked or Already muted.
Entry Example
Handle alice.bsky.social, @alice.bsky.social, example.com
DID did:plc:…
Profile link https://bsky.app/profile/alice.bsky.social
CSV Any CSV with a header row that has a did column. Only that column is read.

The same account listed twice is checked once. Files can be .csv or .txt.

  • … Starter Pack or list links: these belong in the converter. Open them in the converter opens them there.
  • … entries are not a handle, DID, or profile link: lists the entries that were skipped.
  • … accounts were not found: No Bluesky account answers to these. They may be misspelled, deleted, deactivated, or taken down.

Each notice lists up to 50 entries, then and … more.

Badge Meaning
You Your own account. It is never blocked or muted.
Already blocked You block this account. Locked when Block is chosen.
Already muted You mute this account. Locked when Mute is chosen.
You follow You follow this account. It stays selected; untick it if you want to keep it.
Labeled The account carries a moderation label.

When an entry was not typed as the account’s handle, such as a DID or a link, the row adds from and what you typed.

Choice What it does
Block (default) Blocks each selected account.
Mute Mutes each selected account.

Select offers Select all shown, Select none, and Invert shown. Export downloads the selected accounts as bulk-block.csv or bulk-block.json, with the columns did, handle, display_name, and reasons (Labeled for labeled accounts).

When the selection is more than BskyKit suggests for a day, or more than your server allows in a day, the confirmation asks how much to do now: a part of the selection now, or Start the whole run. The rest stay selected for another day.

Clear empties the box, the file, and the accounts found. Runs already queued go on.

  • Block creates one block record (app.bsky.graph.block) per account on your own Bluesky server. On Bluesky, blocks are public.
  • Mute asks your server to mute each account. Mutes are private and write no record.
  • The accounts are looked up through your own server, which adds whether you block, mute, or follow each one.
  • The box’s text is kept for this tab, so it survives the sign-in redirect and moving between pages. Signing out or switching account clears it. See Data on Your Device.

Undo the run from History:

  • Undoing a block run deletes the blocks it made, for example Deletes the 25 blocks this run made.
  • Undoing a mute run unmutes the accounts it muted.

See History & Undo.

  • Blocks and mutes count toward the 1,000 a day BskyKit suggests, together with follows, unfollows, unblocks, unmutes, and list subscription changes. The meter under the button shows Follows, blocks, and mutes in the last 24 hours.
  • Each block costs three write points, so your server allows about 1,666 blocks an hour and 11,666 a day.
  • Mutes use no write points. BskyKit sends one at a time, about four a second.
  • When a run reaches a limit, it waits and carries on by itself while a BskyKit tab is open.

See Limits & Pacing.

The lookup failed; the message under the title says why. Choose Check accounts again.

The handle may be misspelled, or the account may have changed its handle, or been deleted, deactivated, or taken down. Look it up in Handle & DID Lookup, then paste its DID instead.

It is locked: it is your own account, or the chosen output already covers it (Already blocked for Block, Already muted for Mute).

The browser could not open the file. Save it as plain text or CSV and try again, or paste its contents into the box.

If you blocked the account somewhere else after Check accounts, the run blocks it again, and My Blocks shows both records. Select both there to unblock it completely.