Appearance
Post
GET /v1/bluesky/post
Fetches a single Bluesky post by URL, returning the post's record text, author info, embed content, replyCount, repostCount, likeCount, and quoteCount. Also includes a replies array with threaded reply posts.
Authentication
All requests require the x-api-key header. Get your key at scrapecreators.com.
Query Parameters
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
url | string | yes | Bluesky post URL | https://bsky.app/profile/espn.com/post/3lqdfq7fkvm2g |
Example Request
curl
bash
curl 'https://api.scrapecreators.com/v1/bluesky/post?url=https://bsky.app/profile/espn.com/post/3lqdfq7fkvm2g' \
-H 'x-api-key: $SCRAPECREATORS_API_KEY'Node / TypeScript
js
const params = new URLSearchParams({ url: 'https://bsky.app/profile/espn.com/post/3lqdfq7fkvm2g' });
const res = await fetch(`https://api.scrapecreators.com/v1/bluesky/post?${params}`, {
headers: { 'x-api-key': process.env.SCRAPECREATORS_API_KEY }
});
const data = await res.json();
console.log(data);Python
python
import os, requests
r = requests.get(
'https://api.scrapecreators.com/v1/bluesky/post',
headers={'x-api-key': os.environ['SCRAPECREATORS_API_KEY']},
params={'url': 'https://bsky.app/profile/espn.com/post/3lqdfq7fkvm2g'},
)
r.raise_for_status()
print(r.json())CLI
bash
scrapecreators bluesky post --helpExample Response
json
{
"success": true,
"post": {
"uri": "at://did:plc:x7d6j54pm22ufehkes6jo4jf/app.bsky.feed.post/3lqdfq7fkvm2g",
"cid": "bafyreibams5wyqdpg2cmmks7lhf5ccxu7hbu24sfatgc53jmb2nun5k5dm",
"author": {
"did": "did:plc:x7d6j54pm22ufehkes6jo4jf",
"handle": "espn.com",
"displayName": "ESPN",
"avatar": "https://cdn.bsky.app/img/avatar/plain/did:plc:x7d6j54pm22ufehkes6jo4jf/bafkreie4oxawqqsfzvk47ysr3unsnmviedzpylxmwxnpa534to2bzas4ie@jpeg",
"labels": [],
"createdAt": "2024-11-25T21:49:49.345Z",
"verification": {
"verifications": [
{
"issuer": "did:plc:z72i7hdynmk6r22z27h6tvur",
"uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.graph.verification/3lndppjqgb72f",
"isValid": true,
"createdAt": "2025-04-21T10:44:20.398Z"
}
],
"verifiedStatus": "valid",
"trustedVerifierStatus": "none"
}
},
"record": {
"$type": "app.bsky.feed.post",
"createdAt": "2025-05-29T19:01:20.743Z",
"embed": {
"$type": "app.bsky.embed.external",
"card": {
"description": "The Oilers apparently will have defenseman Mattias Ekholm back in their lineup for Game 5 of the Western Conference finals against the Stars.",
"thumb": {
"$type": "blob",
"ref": {
"$link": "bafkreihhffgngv4thcnw7sh7o43qnwwyjvfemdlccwalu76r3vnhlbssle"
},
"mimeType": "image/jpeg",
"size": 158648
},
"title": "Oilers' Ekholm set for return in Game 5 vs. Stars",
"uri": "http://spr.ly/63320N4OEy"
},
"external": {
"description": "The Oilers apparently will have defenseman Mattias Ekholm back in their lineup for Game 5 of the Western Conference finals against the Stars.",
"thumb": {
"$type": "blob",
"ref": {
"$link": "bafkreihhffgngv4thcnw7sh7o43qnwwyjvfemdlccwalu76r3vnhlbssle"
},
"mimeType": "image/jpeg",
"size": 158648
},
"title": "Oilers' Ekholm set for return in Game 5 vs. Stars",
"uri": "http://spr.ly/63320N4OEy"
}
},
"facets": [],
"text": "Oilers' defenseman Mattias Ekholm is set to return to action Thursday for Game 5 of the Western Conference finals against the Stars.\n\nEkholm has been out of the Oilers' lineup since April 11 with an undisclosed injury."
},
"embed": {
"$type": "app.bsky.embed.external#view",
"external": {
"uri": "http://spr.ly/63320N4OEy",
"title": "Oilers' Ekholm set for return in Game 5 vs. Stars",
"description": "The Oilers apparently will have defenseman Mattias Ekholm back in their lineup for Game 5 of the Western Conference finals against the Stars.",
"thumb": "https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:x7d6j54pm22ufehkes6jo4jf/bafkreihhffgngv4thcnw7
... (truncated)Credits
Most ScrapeCreators endpoints consume 1 credit per successful response. Some heavier endpoints (transcripts, AI-driven enrichment, ad detail lookups) may cost more. Check GET /v1/credit-balance for your remaining balance.
Errors
| Status | Meaning | Action |
|---|---|---|
| 200 | Success. | Use the JSON payload. |
| 400 | Invalid or missing parameter. | Verify required parameters and value format. |
| 401 | Missing or invalid x-api-key. | Pass a valid API key in the header. |
| 402 | Out of credits. | Top up at scrapecreators.com or wait for plan reset. |
| 404 | Resource not found or private. | Confirm the handle, URL, or id and that the resource is public. |
| 429 | Rate limited. | Backoff and retry with exponential delay. |
| 500 | Server error or upstream platform failure. | Retry with backoff; report persistent errors to support. |