tangled
alpha
login
or
join now
mackuba.eu
/
label-scanner
4
fork
atom
A small web tool for showing what Bluesky moderation labels are assigned to a profile
blue.mackuba.eu/scanner/
4
fork
atom
overview
issues
pulls
pipelines
added readme
mackuba.eu
11 months ago
e7dbd18b
ac277fce
+18
1 changed file
expand all
collapse all
unified
split
README.md
+18
README.md
reviewed
···
1
1
+
# Bluesky label scanner 🏷️ 🔍
2
2
+
3
3
+
This is the source code of my Label Scanner tool hosted as https://blue.mackuba.eu/scanner/. It lets you enter a Bluesky post URL or profile handle and see what moderation labels have been assigned to it (by Bluesky or third party labellers):
4
4
+
5
5
+
<p align="center"><img width="560" src="https://github.com/user-attachments/assets/874966e1-aa26-440f-98ea-6c0d30e86d3f"></p>
6
6
+
7
7
+
The tool is actually very simple, it's just some HTML and a couple of pages of JS. There isn't even any backend (apart from the JSON data with a list of labeller DIDs).
8
8
+
9
9
+
The trick is that the Bluesky AppView API includes all label info in JSON responses on endpoints like `getProfile`, `getPosts`, or `getPostThread`, related to up to 20 labellers that the user has opted in to. However, that list of labellers to apply labels from isn't something that is read from your account settings, but from a request header named `atproto-accept-labelers`.
10
10
+
11
11
+
So the scanner just takes the complete list of labeller DIDs, divides them into groups of 20, and runs multiple requests to e.g. `getProfile` for the same subject in parallel, each passing a different group of labellers in the header. Then, labels returned in all responses are combined together into the result list.
12
12
+
13
13
+
14
14
+
## Credits
15
15
+
16
16
+
Copyright © 2025 Kuba Suder ([@mackuba.eu](https://bsky.app/profile/mackuba.eu)).
17
17
+
18
18
+
The code is available under the terms of the [zlib license](https://choosealicense.com/licenses/zlib/) (permissive, similar to MIT).