Bluesky Actor Search Scraper
Pricing
from $0.14 / 1,000 profile saveds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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?
| Field | Description |
|---|---|
query | Search keyword that produced the profile. |
mode | searchActors or typeahead. |
rank | Profile rank within the query before duplicate skips. |
did | Bluesky / AT Protocol decentralized identifier. |
handle | Public Bluesky handle. |
displayName | Public display name, when available. |
description | Public profile bio, when available. |
avatar | Avatar image URL, when available. |
createdAt, indexedAt | Public timestamps returned by Bluesky. |
labels, associated, verification, status | Public profile metadata returned by Bluesky. |
sourceUrl | Public bsky.app profile URL. |
scrapedAt | Timestamp when the Actor saved the row. |
rawProfile | Optional raw Bluesky profile JSON. |
Input configuration
| Setting | JSON key | Use it for | Example |
|---|---|---|---|
| Search queries | queries | Keywords to search for in public Bluesky profiles. | ["apify", "climate"] |
| Search mode | mode | Full actor search or typeahead suggestions. | "searchActors" |
| Maximum profiles | maxItems | Cap saved rows and control spend. | 10 |
| Profiles per request | limitPerRequest | API page size, 1-100. | 10 |
| Include raw profile JSON | includeRawProfile | Keep 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: 10until 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:
typeaheadis 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 ApifyClientclient = 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.
Related actors
- Bluesky Profile Feed Scraper
- Bluesky Followers Scraper
- Instagram Search Scraper
- LinkedIn Profile Search Scraper
- Pinterest Search Scraper
FAQ
What data can I export with Bluesky actor search?
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.