# Bluesky Search API (https://www.socialcrawl.dev/platforms/bluesky/search) > Searches public Bluesky posts by keyword and returns up to 100 posts in one page, in the unified Post shape under `data.items[]`: each item is `{ post: { id, url, content, author, engagement, flags, published_at } }`. `post.id` is the post's record key, `post.url` is its bsky.app permalink, `engagement.likes` / `comments` / `shares` are the like, reply and repost counts, and `published_at` is when the author wrote it. Newest first by default; `sort=top` uses Bluesky's top ranking instead. Narrow with `since` / `until`, `lang` and `author`. There is no cursor: to reach older posts with the default `sort=latest`, call again with `until` set to the oldest `published_at` you received. A query that matches nothing returns an empty `items` list. TL;DR: `GET /v1/bluesky/search` costs 1 credit per call and returns SocialCrawl's unified JSON schema. Single x-api-key auth, 100 free credits on signup. ## Parameters | Parameter | Required | Description | | --- | --- | --- | | `query` | yes | Search terms matched against post text. | | `sort` | no | `latest` (newest first, the default) or `top` (Bluesky's own top ranking, which favours popular posts over recent ones). (latest \| top) | | `since` | no | Only posts written at or after this time. ISO 8601 date (`2026-09-01`) or datetime with a timezone (`2026-09-01T00:00:00Z`); any other shape is rejected with a free 400. | | `until` | no | Only posts written before this time. Same format as `since`. Set it to the oldest `published_at` of your last call to fetch the next older batch; the boundary is compared to the second, so a post from that same second can repeat, and deduplicating on `post.id` removes it. | | `lang` | no | Only posts tagged with this language, as a code such as `en`, `ja` or `ko`. | | `author` | no | Only posts by this account: a handle such as `espn.com` or a `did` such as `did:plc:...`. An account that does not exist returns an empty list. | ## Code example ```bash curl "https://www.socialcrawl.dev/v1/bluesky/search?query=espresso" \ -H "x-api-key: sc_YOUR_API_KEY" ``` See the full Bluesky API: https://www.socialcrawl.dev/platforms/bluesky ## Pricing - Standard endpoints: 1 credit per call - Advanced endpoints: 5 credits per call - Premium endpoints: 10 credits per call - 100 free credits on signup, no credit card required. Cached responses cost 0 credits. Credit packs never expire. - Full pricing: https://www.socialcrawl.dev/pricing