# Bluesky Scraper (`red.cars/bluesky-scraper`) Actor

Scrape Bluesky profiles, posts, and threads without authentication. Extract user data, posts with engagement metrics, search results, and full conversation threads from the decentralized social network.

- **URL**: https://apify.com/red.cars/bluesky-scraper.md
- **Developed by:** [AutomateLab](https://apify.com/red.cars) (community)
- **Categories:** Social media, Developer tools
- **Stats:** 13 total users, 1 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: 1.00 out of 5 stars

## Pricing

$19.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Bluesky Scraper

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-blue?logo=apify)](https://apify.com/red.cars/bluesky-scraper)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

> Scrape Bluesky profiles, posts, and threads without authentication

### Description

Scrape Bluesky profiles, posts, and threads without authentication. Extract user data, posts with engagement metrics, search results, and full conversation threads from the decentralized social network.

### Features

📌 Status
🧠 Context
\[2026-03-12] — outputSchema description added (spec-005)

### How It Works

This actor uses intelligent extraction with Apify's proxy infrastructure to gather public data from Bluesky Scraper. It handles authentication, pagination, and error recovery automatically.

### Quick Start

```bash
## Run via Apify API
apify run -a red.cars/bluesky-scraper

## Or configure input and click Run on:
## https://apify.com/red.cars/bluesky-scraper
```

#### Using as an MCP Tool

#### Running on Apify Platform

Set `APIFY_API_KEY` in your Apify Console secrets, configure input via the Actor input schema UI, and click **Run**.

### Input Schema

| Parameter | Type | Description | Default |
|-----------|------|-------------|---------|
| `mode` | string | Type of Bluesky content to extract<br>Options: `profile`, `posts`, `search`, `thread` | profile |
| `handles` | array | List of Bluesky handles to scrape (e.g., 'paul.domains', 'username.bsky.social') | paul.domains |
| `maxItems` | integer | Maximum number of posts/items to extract per handle or search | 20 |
| `maxResults` | integer | Maximum total number of items to extract across all targets | 50 |
| `proxyType` | string | Choose your preferred balance of cost vs reliability. Standard (Datacenter) is faster; Premium (Residential) is most reliable for high-security targets.<br>Options: `DATACENTER`, `RESIDENTIAL` | DATACENTER |
| `debugMode` | boolean | Enable minimal extraction for health checks and testing. Guarantees success within 300s. | false |
| `outputFormat` | string | Choose output format for easy integration<br>Options: `json`, `csv`, `xlsx`, `markdown` | json |
| `checkOnly` | boolean | When true, returns immediately with capability metadata without scraping. Used by AI agents to verify availability before committing to a paid run. Free, <5 seconds. | false |

### Output Schema

| Field | Type | Description |
|-------|------|-------------|
| `results` | string | Bluesky decentralized social network posts and profiles. Each result contains: handle, displayName, bio, followersCount, followingCount, postsCount (profiles) or text, author, createdAt, likeCount, repostCount, replyCount, url, hashtags (posts). Use for decentralized social monitoring, audience research, brand listening. AI agents: search by handle, keyword, or hashtag. |

### Example Output

```json
{
  "results": [
    {
      "url": "https://example.com/profile",
      "username": "example_user",
      "fullName": "Example User",
      "followersCount": 10000,
      "followingCount": 500,
      "postsCount": 250,
      "isVerified": false,
      "biography": "Example bio text",
      "latestPosts": [],
      "scrapedAt": "2026-03-23T13:24:11.540Z"
    }
  ]
}
```

### Pricing

### Use Cases

- **Influencer Research**: Identify and evaluate potential influencers by engagement metrics and audience quality
- **Competitor Monitoring**: Track competitor presence and activity on Target Platform
- **Lead Generation**: Build targeted lead lists from public profiles and contact information
- **Market Intelligence**: Gather market intelligence and trend data for business decisions
- **Content Aggregation**: Collect content for analysis, archiving, or republication

### FAQ

#### Do I need an API key?

No, this actor does not require an API key. It uses Apify proxy infrastructure for reliable extraction.

#### How does pricing work?

This actor uses Apify's Pay-Per-Event model. You are charged per successful result returned. No charge for queries that return zero results.

#### What are the rate limits?

Rate limits depend on your Apify plan. Higher-tier plans provide more compute units and faster extraction.

#### How do I increase success rate?

- Enable **Premium (Residential)** proxy for high-security targets
- Reduce concurrency for rate-limited profiles
- Use debug mode to test before full extraction

#### Can I run this on a schedule?

Yes, use Apify Scheduler to run this actor on a cron schedule for continuous monitoring.

#### How do I export to CRM?

Set `exportFormat` to `salesforce` or `hubspot` for direct CRM import format.

### Troubleshooting

| Error | Cause | Fix |
|-------|-------|-----|
| NETWORK\_ERROR | Network connectivity issue | Check internet connection, retry with proxy |
| VALIDATION\_ERROR | Invalid input parameters | Review input schema and retry |
| PLATFORM\_ERROR | Instagram platform issue | Instagram may be experiencing issues, try again later |

### Known Limitations

- **Private accounts**: Cannot extract data from private accounts without following
- **Rate limiting**: Platform may temporarily block repeated requests from same IP
- **Data freshness**: Extracted data reflects moment of extraction; historical data may be limited
- **Proxy requirements**: High-security targets may require residential proxy for reliable extraction
- **Content limits**: Platform-imposed limits on historical post retrieval

### Legal

**Data Source**: the target platform (the target platform.com)

**Terms of Service**: This actor is provided for legitimate data collection purposes only. Users must comply with the target platform's Terms of Service and applicable laws. Red.cars is not responsible for misuse of this tool.

**Privacy**: All extracted data is processed in accordance with applicable privacy laws. Do not use this tool for unauthorized data collection or privacy-violating activities.

**Attribution**: When using the target platform data, comply with their attribution requirements and data policies.

***

*red.cars Intelligence Fleet • [apify.com/red.cars](https://apify.com/red.cars)*

# Actor input Schema

## `mode` (type: `string`):

Type of Bluesky content to extract

## `handles` (type: `array`):

List of Bluesky handles to scrape

## `urls` (type: `array`):

Direct Bluesky URLs to scrape

## `searchQuery` (type: `string`):

Search term for finding posts

## `maxResults` (type: `integer`):

Total number of items to extract

## `outputFormat` (type: `string`):

Choose output format

## `proxyType` (type: `string`):

Choose proxy reliability

## Actor input object example

```json
{
  "mode": "profile",
  "handles": [
    "paul.domains"
  ],
  "maxResults": 50,
  "outputFormat": "json",
  "proxyType": "DATACENTER"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("red.cars/bluesky-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("red.cars/bluesky-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call red.cars/bluesky-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=red.cars/bluesky-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/dXHaHpUAGy5zIqZjA/builds/6eetPkRSV7B4yx3qo/openapi.json
