# Bluesky (/docs/bluesky) Bluesky [#bluesky] Public Bluesky data on the AT Protocol network: an account snapshot, its feed, and any single post together with the replies underneath it. Three endpoints, all 1 credit, no OAuth and no app password. Base URL: `/v1/bluesky/...` There is no search endpoint on this platform, and no separate comments endpoint — `/v1/bluesky/post` returns a post together with its reply thread, or not at all. Start from a handle you already hold. Bluesky identifies accounts two ways. The **handle** is the readable one and is usually a domain — `espn.com`, `bsky.app` — because Bluesky lets you verify a domain as your handle. The **`did`** is the permanent identifier, in the form `did:plc:x7d6j54pm22ufehkes6jo4jf`. A handle can change; a `did` cannot, so store the `did` if you are tracking an account over time. Getting started [#getting-started] Every endpoint is a `GET` with query parameters and an `x-api-key` header. ```bash # 1. The account curl "https://www.socialcrawl.dev/v1/bluesky/profile?handle=espn.com" \ -H "x-api-key: $SOCIALCRAWL_API_KEY" # 2. What it posted curl "https://www.socialcrawl.dev/v1/bluesky/user/posts?handle=espn.com" \ -H "x-api-key: $SOCIALCRAWL_API_KEY" ``` `user/posts` accepts either `handle` or `user_id` (the `did`) — one of the two is required, and sending neither is a `400` before billing. What each endpoint gives you [#what-each-endpoint-gives-you] `profile` returns display name, description, avatar, follower, following and post counts, join date and verified status. `user/posts` returns the account's feed, each post with its text, author, attachments and the four engagement counts Bluesky publishes: replies, reposts, likes and **quotes**. Quote counts are their own number here rather than being folded into reposts, which is a distinction most platforms do not make. `post` takes a post URL and returns that post **plus its reply thread** in the same call. That is worth knowing because there is no separate comments endpoint on this platform — the replies come back with the post or not at all. ```bash curl "https://www.socialcrawl.dev/v1/bluesky/post?url=https://bsky.app/profile/espn.com/post/3lqdfq7fkvm2g" \ -H "x-api-key: $SOCIALCRAWL_API_KEY" ``` Endpoints [#endpoints] Read this before you build [#read-this-before-you-build] **There is no search endpoint on this platform.** Keyword discovery on Bluesky is not covered here — start from a handle you already know, or find accounts elsewhere and pivot in. **Handles look like domains and that is correct.** Do not strip a `.com` off a Bluesky handle the way you would strip an `@` elsewhere; the domain *is* the handle. **Reposts and quotes are different numbers.** A repost carries no new text; a quote does. Adding them together double-counts the amplification. Notes [#notes] * All endpoints use `GET` with query parameters * Authentication via the `x-api-key` header * Responses follow the unified SocialCrawl schema * All three endpoints are 1 credit * `user_id` is the AT Protocol `did`, not a numeric id