Profiles
Name, bio, verified status, follower count and post count.
Pull Bluesky profiles and posts as JSON. Failed requests are free.
100 free credits. No card needed.
Data
Bluesky has its own open API. Use this one when you want Bluesky in the same JSON shape as your other platforms, on one key. You start from a handle, a DID or a post URL, because there is no search endpoint.
Name, bio, verified status, follower count and post count.
Text, publish date, likes, replies, reposts and bookmarks.
Uses
Put Bluesky next to your other platforms without writing a second integration.
Get a post with its embeds, its counts and its threaded replies.
Compare likes, replies, reposts and bookmarks across an account's posts.
Example
1curl -G "https://api.socialscrape.dev/v1/bluesky/profile" \2 -H "x-api-key: $SOCIALSCRAPE_API_KEY" \3 --data-urlencode "handle=bsky.app"1import os2import requests34params = {5 "handle": "bsky.app",6}7res = requests.get(8 "https://api.socialscrape.dev/v1/bluesky/profile",9 headers={"x-api-key": os.environ["SOCIALSCRAPE_API_KEY"]},10 params=params,11)12body = res.json()1314if body["ok"]:15 print(body["data"])16else:17 print(body["error"]["code"], body["error"]["message"])1const url = new URL("https://api.socialscrape.dev/v1/bluesky/profile");2url.search = new URLSearchParams({3 "handle": "bsky.app"4}).toString();5const res = await fetch(url, {6 headers: { "x-api-key": process.env.SOCIALSCRAPE_API_KEY! },7});8const body = await res.json();910if (body.ok) {11 console.log(body.data);12} else {13 console.error(body.error.code, body.error.message);14}{ "ok": true, "credits_charged": 1, "credits_remaining": 4999, "cached": false, "cached_at": null, "request_id": "req_05f7500f90e3d6adce09a3e3", "data": { "object": "profile", "platform": "bluesky", "id": "did:plc:z72i7hdynmk6r22z27h6tvur", "handle": "bsky.app", "name": "Bluesky", "headline": null, "url": "https://bsky.app/profile/bsky.app", "kind": "person", "bio": "official Bluesky account (check username👆)\n\nBugs, feature requests, feedback: n...", "avatar_url": "https://cdn.bsky.app/img/avatar/plain/did:plc:z72i7hdynmk6r22z27h6tvur/bafkreihw...", "banner_url": "https://cdn.bsky.app/img/banner/plain/did:plc:z72i7hdynmk6r22z27h6tvur/bafkreich...", "verified": false, "is_private": null, "external_url": null ... }, "cursor": null, "has_more": null }
Pricing
Packs never expire. Monthly plans too. See pricing
Reference
FAQ
Most requests cost 1 credit, and transcripts have their own rule; each endpoint page states it. New accounts get 100 free credits. See pricing.
No. You send your SocialScrape key and never a platform password.
Yes. The endpoints are live: built, tested against recorded responses and watched by canaries. Get an API key.