--- title: "Bluesky" description: "Enumeration, search operators, API endpoints and tools for investigating Bluesky accounts." tags: ["osint", "bluesky", "social-media", "enumeration"] publishDate: 2026-04-29 --- ## Key Concepts Bluesky is built on the **AT Protocol**. Every account has two identifiers: - **Handle**: `user.bsky.social` or a custom domain (can change) - **DID**: `did:plc:ewvi7nxzyoun6zhxrhs64oiz` (permanent, survives handle changes) All public content is accessible **without an account**. Follower/following lists are also public by default. ## Account Enumeration ### Resolve handle → DID ``` https://bsky.social/xrpc/com.atproto.identity.resolveHandle?handle=$HANDLE ``` ### Resolve DID → history (all past handles, keys, creation date) ``` https://plc.directory/$DID ``` ### Get profile metadata ``` https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=$HANDLE ``` Returns: DID, display name, description, follower/following count, creation date, avatar URL. ### Followers / following ``` https://public.api.bsky.app/xrpc/app.bsky.graph.getFollowers?actor=$HANDLE&limit=100 https://public.api.bsky.app/xrpc/app.bsky.graph.getFollows?actor=$HANDLE&limit=100 ``` Paginate with the `cursor` field from the response. ## Search Operators Bluesky's full-text search supports these operators (combinable): | Operator | Example | Effect | | ----------- | ----------------------------- | ----------------------------- | | `"..."` | `"exact phrase"` | Exact match | | `from:` | `from:handle.bsky.social` | Posts by user | | `mentions:` | `mentions:handle.bsky.social` | Posts mentioning user | | `since:` | `since:2024-01-01` | After date (UTC, YYYY-MM-DD) | | `until:` | `until:2024-06-30` | Before date (UTC, YYYY-MM-DD) | | `lang:` | `lang:fr` | Language (ISO 639-1) | | `domain:` | `domain:github.com` | Posts linking to domain | | `#tag` | `#osint` | Hashtag | #### API equivalent ``` https://public.api.bsky.app/xrpc/app.bsky.feed.searchPosts?q={QUERY}&author={HANDLE}&since=2024-01-01&until=2024-12-31&lang=en&limit=25 ``` ## Google Dorks Bluesky is heavily indexed by Google. Useful for finding profiles and posts without touching the platform: ``` site:bsky.app "$TARGET_NAME" site:bsky.app "$TARGET_NAME" inurl:profile site:bsky.app "$KEYWORD" since:2024-01-01 ``` ## Tools ### BlueSkyNet Web app for searching and exporting Bluesky data to CSV. Wraps the public API with a UI for advanced search filters. - [github.com/jakecreps/blueskynet](https://github.com/jakecreps/blueskynet) ### ClearSky Shows block lists, blocking history, and who blocked a given account. Useful for mapping relationships and adversarial clusters. - [clearsky.app](https://clearsky.app) ### plc.directory Official DID PLC directory. Lookup a DID to get full account history: creation date, all past handles, key rotations. - [plc.directory](https://plc.directory)