Bluesky Profile Details Scraper avatar

Bluesky Profile Details Scraper

Pricing

from $6.00 / 1,000 bluesky profile scrapeds

Go to Apify Store
Bluesky Profile Details Scraper

Bluesky Profile Details Scraper

Fetch public Bluesky profile details from handles, DIDs, or bsky.app URLs for influencer research and identity resolution. Not for posts, follower lists, or private data. Returns DID, handle, bio, counts, verification, media, labels, and timestamps. $0.006/profile + $0.00005 start; usage extra.

Pricing

from $6.00 / 1,000 bluesky profile scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

21 hours ago

Last modified

Share

Fetch public Bluesky profile details from handles, AT Protocol DIDs, or bsky.app profile URLs. This Actor is built for influencer research, identity reconciliation, audience sizing, community analysis, and AI-agent enrichment workflows that need one stable, typed record per account.

Use it when you already know which Bluesky profiles you want to enrich. Do not use it for keyword search, posts, replies, follower/following lists, private data, or authenticated actions.

What data can you extract?

FieldWhat it means
didPermanent AT Protocol decentralized identifier
handle, displayName, descriptionCurrent public identity and bio
followersCount, followsCount, postsCountPublic audience and activity counts at collection time
verificationStatus, trustedVerifierStatusBluesky verification signals
verificationCount, isVerified, isTrustedVerifierNormalized verification fields
listsCount, feedGeneratorsCount, starterPacksCountAssociated public Bluesky resources
avatarUrl, bannerUrl, pinnedPostUriProfile media and pinned post reference
labelsPublic moderation label values
createdAt, indexedAt, scrapedAtAccount, indexing, and collection timestamps
sourcebluesky-public-api or scrapecreators fallback

Every row uses the same field set. Missing optional values are explicit null values, so JSON, CSV, spreadsheet, database, and MCP consumers receive a predictable schema.

Pricing

This Actor uses Pay per event + usage:

EventPrice
Actor start$0.00005 per run (memory-scaled, one-event minimum)
Validated profile saved$0.006 per profile
Apify platform usageAdditional compute usage reported separately by Apify

Examples: 10 profiles cost up to $0.06005 in event charges; 100 profiles cost up to $0.60005, plus platform usage. Missing, malformed, duplicate, or rejected profile values are not charged as profile records. The run status shows the maximum event charge before the first billable row is written.

Input

{
"profiles": [
"bsky.app",
"@apify.com",
"did:plc:z72i7hdynmk6r22z27h6tvur",
"https://bsky.app/profile/npr.org"
],
"maxConcurrency": 8,
"deduplicate": true,
"ignoreInvalidProfiles": true
}

profiles accepts 1–500 handles, DIDs, or direct profile URLs. Post URLs and non-Bluesky URLs are rejected. deduplicate removes repeated normalized handles or DIDs. ignoreInvalidProfiles lets a mixed batch preserve valid results while recording skipped values in RUN_SUMMARY.

Output

{
"requestedProfile": "bsky.app",
"did": "did:plc:z72i7hdynmk6r22z27h6tvur",
"handle": "bsky.app",
"displayName": "Bluesky",
"description": "see what's next",
"profileUrl": "https://bsky.app/profile/bsky.app",
"avatarUrl": "https://cdn.bsky.app/img/avatar/plain/did:plc:...@jpeg",
"bannerUrl": "https://cdn.bsky.app/img/banner/plain/did:plc:...@jpeg",
"followersCount": 34110804,
"followsCount": 11,
"postsCount": 802,
"listsCount": 16,
"feedGeneratorsCount": 7,
"starterPacksCount": 13,
"isLabeler": false,
"verificationStatus": "none",
"trustedVerifierStatus": "valid",
"verificationCount": 0,
"isVerified": false,
"isTrustedVerifier": true,
"labels": [],
"pinnedPostUri": "at://did:plc:.../app.bsky.feed.post/3abc",
"createdAt": "2023-04-12T04:53:57.057Z",
"indexedAt": "2025-10-27T21:05:26.152Z",
"source": "bluesky-public-api",
"scrapedAt": "2026-07-15T12:00:00.000Z"
}

The dataset contains profile rows only. OUTPUT provides the stable terminal outcome and billing totals; RUN_SUMMARY includes input normalization, provider attempts, fallback reasons, validation counts, warnings, errors, storage IDs, and charge-cap state. Control and error records never pollute the dataset.

Reliability and data sources

The primary route is Bluesky's cached public AppView endpoint at public.api.bsky.app, which Bluesky recommends for public-web use cases. The Actor retries transient timeouts, rate limits, and server errors with bounded backoff. If those attempts fail and the owner-managed ScrapeCreators secret is available, it uses the probed Bluesky profile endpoint as a field-compatible fallback.

Profile-not-found responses are treated as valid empty inputs rather than fabricated rows. A batch with some useful profiles and some failures ends PARTIAL while preserving the valid data. When all required routes fail and no useful data exists, the run ends honestly as UPSTREAM_FAILED with actionable diagnostics.

Counts and profile fields can change after collection. Use scrapedAt for freshness and did rather than handle when you need a persistent identity key.

API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('khadinakbar/bluesky-profile-details-scraper').call({
profiles: ['bsky.app', 'apify.com'],
maxConcurrency: 8,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Use with AI agents through MCP

Connect the public Actor through the Apify MCP Server. The tool accepts a small list of explicit profiles and returns flat, typed records suitable for enrichment, comparison, and identity resolution. Paginate larger datasets with the dataset ID returned by the Actor run.

Example agent requests:

  • “Get the DIDs, bios, follower counts, and verification status for these Bluesky handles.”
  • “Resolve these bsky.app profile URLs into stable account records.”
  • “Compare the audience sizes and account ages of these public Bluesky profiles.”

Limitations and responsible use

  • Public profile data only; no login, cookies, app password, DMs, or private records.
  • No post content, keyword search, follower/following lists, or hidden contact data.
  • Bluesky and fallback-provider response fields can evolve; schema drift is reported rather than hidden.
  • Profiles that are deleted, invalid, unavailable, or not visible to the public API produce no dataset row.
  • Use public data in accordance with applicable laws, privacy rules, and Bluesky's terms. This Actor is not affiliated with or endorsed by Bluesky PBC.

Support

For a reproducible issue, include the Actor run ID and a non-sensitive example handle. Do not post API tokens, cookies, or private data in an issue.