Bluesky Actor Search Scraper avatar

Bluesky Actor Search Scraper

Pricing

from $0.14 / 1,000 profile saveds

Go to Apify Store
Bluesky Actor Search Scraper

Bluesky Actor Search Scraper

Search public Bluesky profiles by keyword and export handles, DIDs, bios, avatars, labels, verification metadata, and profile URLs.

Pricing

from $0.14 / 1,000 profile saveds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Discover public Bluesky profiles by keyword using the official public Bluesky actor search API. Export profile handles, DIDs, bios, avatars, labels, verification metadata, and profile URLs for social listening, source discovery, and lead research.

At a glance

  • Primary job: Find public Bluesky profiles that match keywords before downstream feed, follower, or profile enrichment.
  • Input: Search queries, search mode, and a maximum profile limit.
  • Output: One dataset row per unique public Bluesky profile.
  • Best for: Brand monitoring, journalist/source discovery, community mapping, influencer prospecting, and research workflows.

Who is it for?

Social listening teams, journalists, community managers, influencer researchers, and developers can use this Bluesky profile search workflow to find public accounts and export stable handles and DIDs. This Bluesky scraper also fits scheduled monitoring and Bluesky API enrichment pipelines.

Common workflows

  • Social listening discovery: Search product, brand, or community terms to find relevant Bluesky accounts.
  • Journalist and expert sourcing: Find profiles that mention beats, topics, organizations, or credentials.
  • Lead and influencer prospecting: Export handles and DIDs for downstream CRM, follower, or feed analysis.
  • Automation: Schedule repeat runs and export datasets through CSV, JSON, Excel, API, webhooks, or MCP tools.

Input recipes

  • Brand discovery: queries: ["apify", "web scraping"], mode: "searchActors", maxItems: 50.
  • Topic experts: queries: ["climate", "science journalist"], mode: "searchActors", maxItems: 75.
  • Typeahead suggestions: queries: ["open source", "marketing"], mode: "typeahead", maxItems: 20, includeRawProfile: true.

What data can you extract?

FieldDescription
querySearch keyword that produced the profile.
modesearchActors or typeahead.
rankProfile rank within the query before duplicate skips.
didBluesky / AT Protocol decentralized identifier.
handlePublic Bluesky handle.
displayNamePublic display name, when available.
descriptionPublic profile bio, when available.
avatarAvatar image URL, when available.
createdAt, indexedAtPublic timestamps returned by Bluesky.
labels, associated, verification, statusPublic profile metadata returned by Bluesky.
sourceUrlPublic bsky.app profile URL.
scrapedAtTimestamp when the Actor saved the row.
rawProfileOptional raw Bluesky profile JSON.

Input configuration

SettingJSON keyUse it forExample
Search queriesqueriesKeywords to search for in public Bluesky profiles.["apify", "climate"]
Search modemodeFull actor search or typeahead suggestions."searchActors"
Maximum profilesmaxItemsCap saved rows and control spend.10
Profiles per requestlimitPerRequestAPI page size, 1-100.10
Include raw profile JSONincludeRawProfileKeep Bluesky's raw profile object for advanced use.false

Example input

{
"queries": ["apify", "climate"],
"mode": "searchActors",
"maxItems": 10,
"limitPerRequest": 10,
"includeRawProfile": false
}

Example output

{
"query": "apify",
"mode": "searchActors",
"rank": 1,
"did": "did:plc:example",
"handle": "apify.com",
"displayName": "Apify",
"description": "Web scraping and automation platform.",
"avatar": "https://cdn.bsky.app/img/avatar/...",
"createdAt": "2024-01-01T00:00:00.000Z",
"indexedAt": "2026-07-24T00:00:00.000Z",
"labels": [],
"associated": {},
"verification": null,
"status": null,
"sourceUrl": "https://bsky.app/profile/apify.com",
"scrapedAt": "2026-07-24T08:00:00.000Z",
"rawProfile": null
}

Pricing

The Run start event is charged once when a valid run begins. The Profile saved event is charged for each unique public profile written to the dataset; duplicates and failed queries are not charged as profiles. See the live Pricing tab for current rates and plan-tier discounts.

Tips for best results

  • Start small: Use maxItems: 10 until output quality and pricing are verified.
  • Use focused keywords: Brand names, topics, occupations, and communities work better than very broad words.
  • Use typeahead for suggestions: typeahead is best for quick autocomplete-style candidates, not exhaustive discovery.
  • Use downstream actors: Feed/follower/profile actors can enrich handles or DIDs found here.

API usage

Node.js:

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor("fetch_cat/bluesky-actor-search-scraper").call({
queries: ["apify"],
mode: "searchActors",
maxItems: 10
});
console.log(run.defaultDatasetId);

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("fetch_cat/bluesky-actor-search-scraper").call(run_input={
"queries": ["apify"],
"mode": "searchActors",
"maxItems": 10,
})
print(run["defaultDatasetId"])

cURL:

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~bluesky-actor-search-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["apify"],"mode":"searchActors","maxItems":10}'

MCP and AI agents

Use this Actor from MCP-compatible tools through the official Apify MCP Server.

$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/bluesky-actor-search-scraper"

MCP server JSON configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/bluesky-actor-search-scraper",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}

Example prompt: "Run Bluesky Actor Search Scraper for climate journalists and summarize the top profile handles."

Limits and caveats

  • Scope: This Actor searches public profiles only. It does not scrape posts, replies, DMs, logged-in viewer state, or private data.
  • Completeness: Bluesky search ranking and available fields are controlled by Bluesky's public API.
  • Rate limits: Very large or frequent runs may be throttled by the public API; the Actor uses bounded retries.

Legality and responsible use

Process only data that users are allowed to access. Follow Bluesky's terms, Apify's terms, and applicable laws.

FAQ

You can export public profile handles, DIDs, display names, descriptions, avatars, labels, verification metadata, profile URLs, and optional raw profile data. Apify datasets support JSON, CSV, Excel, XML, RSS, and API access.

Can I run Bluesky Actor Search Scraper through an API, schedule, or MCP client?

Yes. Run it through the Apify API or SDK, schedule recurring searches in Console, or connect it to an MCP-compatible AI client using the setup above.

How much does a run cost?

Runs charge once at startup and per unique profile saved. Check the live Pricing tab for current rates and plan-tier discounts.

Why are some fields empty?

Bluesky profiles are sparse and the public API does not expose every field for every account. The Actor leaves unavailable fields empty instead of guessing.

Support

Open an issue from the Actor page if a run fails or output looks wrong: https://apify.com/fetch_cat/bluesky-actor-search-scraper/issues. Include the run ID or run URL, a reproducible public URL or example public URL, input JSON, expected output, and actual output.