Get a Bluesky profile
Retrieve a public Bluesky profile by handle with its DID, display name, bio, images, follower/following/post counts, verification and published profile metadata.
/v1/bluesky/profilex-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Required domain-style Bluesky handle, without @ or a profile URL. Custom domain handles are supported.
min 3 chars · max 253 chars
example.testStable Bluesky account identifier.
max 2048 chars
Required domain-style Bluesky handle, without @ or a profile URL. Custom domain handles are supported.
min 1 chars
Published display name when present.
Published bio when present.
Published avatar URL; media is not downloaded.
Published banner URL when present.
Current source follower count.
≥ 0
Current source following count.
≥ 0
Current source post count.
≥ 0
Source moderation labels; access restrictions are honoured.
Request 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.
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. |