Bluesky profile viewer

Look up any Bluesky profile by its handle.

SampleRecorded public data, shortened. Run the tool for a live result.

Bluesky

@bsky.app

official Bluesky account (check username👆) Bugs, feature requests, feedback: [email protected]

Followers
35,443,566
Following
32
Posts
901
  • Joined Apr 12, 2023

Open the profile

Free, no signup. A limited number of lookups per visitor each hour. Public data only.

How it works

Bluesky handles are domain names, like name.bsky.social or a domain the person owns. Type the full handle. If you leave off the domain part, the tool tries name.bsky.social. The result shows the public profile, counts and join date.

Use this in your app

This tool calls GET /v1/bluesky/profile. See the reference, or get early access for a key.

curl
curl -G "https://api.socialscrape.io/v1/bluesky/profile" \
  -H "x-api-key: $SOCIALSCRAPE_API_KEY" \
  --data-urlencode "handle=bsky.app"
Python
import os
import requests

params = {
    "handle": "bsky.app",
}
res = requests.get(
    "https://api.socialscrape.io/v1/bluesky/profile",
    headers={"x-api-key": os.environ["SOCIALSCRAPE_API_KEY"]},
    params=params,
)
body = res.json()

if body["ok"]:
    print(body["data"])
else:
    print(body["error"]["code"], body["error"]["message"])
TypeScript
const url = new URL("https://api.socialscrape.io/v1/bluesky/profile");
url.search = new URLSearchParams({
  "handle": "bsky.app"
}).toString();
const res = await fetch(url, {
  headers: { "x-api-key": process.env.SOCIALSCRAPE_API_KEY! },
});
const body = await res.json();

if (body.ok) {
  console.log(body.data);
} else {
  console.error(body.error.code, body.error.message);
}
n8n
{
  "nodes": [
    {
      "name": "SocialScrape Bluesky profile",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        0,
        0
      ],
      "parameters": {
        "method": "GET",
        "url": "https://api.socialscrape.io/v1/bluesky/profile",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "handle",
              "value": "bsky.app"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "x-api-key",
              "value": "={{ $env.SOCIALSCRAPE_API_KEY }}"
            }
          ]
        }
      }
    }
  ],
  "connections": {}
}

Questions

My handle is my own domain.

Type it in full, for example example.com. Only a bare name gets .bsky.social added.

Does it need a Bluesky account?

No. Bluesky profiles are public.

Is this tool free?

Yes. No account and no card. Each visitor gets a limited number of lookups an hour, so it stays free for everyone.

How do I get this data in my own app?

Send GET /v1/bluesky/profile with your key in the x-api-key header. A request costs 1 credit. A repeat of something fetched recently costs 0 credits, and failed requests are free. See the reference.