Get a Bluesky post
Retrieve a public Bluesky post, its author, media metadata, engagement counts and nested replies by HTTPS bsky.app URL with a handle or DID.
/v1/bluesky/postx-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Required HTTPS bsky.app/profile/<handle-or-did>/post/<record-key> URL. No credentials, ports or encoded path segments. Tracking query and fragment are discarded.
max 4096 chars
https://bsky.app/profile/example.test/post/3abcdefghijklRequest correlation identifier.
Source request count, decoded response bytes and elapsed milliseconds.
Always included.
≥ 0
Always included.
≥ 0
Always included.
≥ 0
True when usable data is returned; inspect status and coverage for omissions.
success, partial, failed, or challenged. HTTP 200 can be partial.
one of: success, partial
Canonical profile or post URL.
absolute HTTPS URL
UTC retrieval time.
Complete means this bounded page or thread was returned without known omissions. It does not imply all historical posts or replies.
Always included.
Always included.
Always included.
Complete primary post view, including record, author, embeds and source engagement counts.
Always included.
Always included.
min 1 chars
Always included.
Always included.
max 2048 chars
Always included.
min 1 chars
Always included.
Always included.
Always included.
Always included.
Always included.
≥ 0
Always included.
≥ 0
Always included.
≥ 0
Always included.
≥ 0
Always included.
Nested source thread nodes with post and replies. Missing, blocked or restricted reply posts are omitted with a coverage warning.
up to 100 items
No fields match.
HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.
| HTTP | failure.code | Meaning |
|---|---|---|
| 200 | partial | Usable data with restricted_posts_omitted, unavailable_replies_omitted, replies_incomplete, or reply_limit warnings. Batch omissions use unavailable_records or restricted_records_omitted warnings. |
| 400 | invalid_request | Missing, duplicate, ambiguous, unsafe or unsupported parameters. |
| 401 | unauthorized | Missing or invalid worker API key. |
| 403 | restricted_page | The primary account or post is restricted or unavailable. |
| 404 | not_found | The source reports a missing profile or post. |
| 404 | unavailable_records | No requested batch record is available from the public source; no empty success is returned. |
| 429 | upstream_rate_limited | Source throttling; no automatic retry. |
| 502 | upstream_challenged | Source rejected the unauthenticated request. |
| 502 | unsupported_page | Malformed, missing or mismatched source data. |
| 502 | response_too_large payload_too_complex | Response exceeded byte or parsing limits. |
| 502 | unsafe_redirect request_limit upstream_error | Bounded source retrieval could not complete. |
| 503 | busy | All worker slots are occupied. |
| 504 | timeout | Total request deadline expired. |