# Farcaster Cast Scraper (`brick_joey_yto/farcaster-scraper`) Actor

Extract casts (posts) from Farcaster, the decentralized Web3 social protocol. Uses the public Warpcast API — no auth needed. Get casts from any user by FID, with full author profiles, engagement metrics, and media.

- **URL**: https://apify.com/brick\_joey\_yto/farcaster-scraper.md
- **Developed by:** [William Billings](https://apify.com/brick_joey_yto) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$30.00 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 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

## Farcaster Cast Scraper — Extract Casts & Profiles From the Leading Web3 Social Protocol

Scrape casts (posts) from Farcaster, the decentralized Web3 social protocol built on Ethereum, at scale for Web3 monitoring, influencer research, and audience analysis. Get clean, structured data with full author profiles, engagement metrics, and media — **no authentication required**. Powered by the public Warpcast API.

### What data can you extract from Farcaster?

For each cast, you get:

- **Cast content** — full text, cast hash, timestamp, cast URL
- **Author profile** — FID, username, display name, avatar, follower/following counts, total cast count
- **Engagement metrics** — likes, recasts, replies, views, and quotes per cast
- **Hashtags & mentions** — parsed and extracted from cast text

### Sample output

```json
{
  "cast_hash": "0xabc123def456789",
  "text": "Decentralized social is the future. Farcaster proves that user-owned data works at scale.",
  "timestamp": "2026-08-01T14:30:00.000Z",
  "author": {
    "fid": 5650,
    "username": "vitalik",
    "display_name": "Vitalik Buterin",
    "avatar": "https://i.imgur.com/example.jpg",
    "follower_count": 125000,
    "following_count": 850,
    "casts_count": 4200
  },
  "like_count": 8900,
  "recast_count": 2100,
  "reply_count": 340,
  "view_count": 45000,
  "quote_count": 120,
  "cast_url": "https://warpcast.com/vitalik/0xabc123def456789",
  "hashtags": ["#Web3", "#Farcaster"],
  "mentions": ["@dwr.eth"]
}
```

### How to use the Farcaster Cast Scraper

1. **Choose how to identify the user** — Provide either a numeric FID (Farcaster ID) or a username (the scraper will auto-resolve it to an FID)
2. **Set max results** — Choose how many casts to extract (up to 10,000)
3. **Run the actor** — Click Start and get your data in seconds
4. **Export** — Download as JSON, CSV, XML, Excel, or HTML

### Input fields

| Field      | Type    | Required             | Default | Description                                            |
| ---------- | ------- | -------------------- | ------- | ------------------------------------------------------ |
| mode       | string  | Yes                  | user    | `user` to get casts from a specific Farcaster user     |
| fid        | integer | Yes (if no username) | —       | Farcaster user ID (FID) for user mode                  |
| username   | string  | Yes (if no fid)      | —       | Farcaster username to resolve to FID (e.g., `vitalik`) |
| maxResults | integer | No                   | 100     | Maximum casts to return (1-10,000)                     |

### Use cases

- **Web3 social monitoring** — Track conversations about your project, token, or DAO on the leading decentralized social platform
- **Influencer research** — Find high-engagement Farcaster creators by analyzing like and recast ratios
- **Audience analysis** — See who is casting about your topic and understand their follower networks
- **Data archival** — Preserve casts for historical analysis and research on decentralized platforms
- **Community health** — Measure engagement and growth within specific Farcaster communities
- **Token sentiment** — Monitor social sentiment around crypto projects through cast analysis
- **Developer research** — Track what Web3 developers and founders are discussing on Farcaster

### How much does it cost to scrape Farcaster?

**$0.03 per result.** You only pay for the data you actually receive — failed or empty requests are not charged.

| Results     | Cost     |
| ----------- | -------- |
| 100 casts   | ~$3.00   |
| 500 casts   | ~$15.00  |
| 1,000 casts | ~$30.00  |
| 5,000 casts | ~$150.00 |

The first run is free under Apify's free tier, so you can test with a small batch before scaling up.

### Is scraping Farcaster legal?

Yes. This scraper only accesses publicly available data through the public Warpcast API. It does not bypass authentication or access private data. Farcaster is a decentralized protocol designed for open data access. Always check Warpcast's Terms of Service for restrictions on how you use the data.

### FAQ

#### What is Farcaster?

Farcaster is a decentralized social protocol built on Ethereum. Users post "casts" (similar to tweets) that are stored on-chain. It is one of the leading Web3 social platforms, with an active user base of crypto-native creators and developers.

#### Do I need a Farcaster account or wallet?

No, the scraper uses the public Warpcast API. No authentication or wallet is required. Just provide a username or FID and the scraper handles the rest.

#### What is an FID?

FID (Farcaster ID) is the numeric identifier for a Farcaster user. You can use either a username or FID as input — the scraper automatically resolves usernames to their corresponding FID by fetching the user's profile page.

#### How many results can I get per run?

You can retrieve up to 10,000 results per run using the `maxResults` parameter. The scraper uses automatic cursor-based pagination to fetch all available casts.

#### Can I get engagement metrics like likes and recasts?

Yes, each cast includes `like_count`, `recast_count`, `reply_count`, `view_count`, and `quote_count` so you can measure engagement and reach for every cast.

#### Can I integrate this with my existing pipeline?

Yes. Apify provides a REST API, webhooks, and integrations with Zapier, Make, Airbyte, and LangChain. You can schedule runs, export to S3 or Google Sheets, and chain actors together.

### Related actors

Check out our other social media scrapers:

| Actor                                                                               | Platform  | Use case                                |
| ----------------------------------------------------------------------------------- | --------- | --------------------------------------- |
| [Bluesky Search Scraper](https://apify.com/brick_joey_yto/bluesky-search-scraper)   | Bluesky   | Decentralized social posts & profiles   |
| [Threads Profile Scraper](https://apify.com/brick_joey_yto/threads-profile-scraper) | Threads   | Meta's text platform                    |
| [Substack Notes Scraper](https://apify.com/brick_joey_yto/substack-notes-scraper)   | Substack  | Writer platform notes                   |
| [BitChute Video Scraper](https://apify.com/brick_joey_yto/bitchute-search-scraper)  | BitChute  | Alternative video platform data         |
| [Spoutible Profile Scraper](https://apify.com/brick_joey_yto/spoutible-scraper)     | Spoutible | Twitter alternative monitoring          |
| [Gab Search Scraper](https://apify.com/brick_joey_yto/gab-search-scraper)           | Gab       | OSINT & alternative platform monitoring |

### Support

Need a custom feature or found a bug? Open an issue on the Actor's page and we'll respond within 24 hours. We can also build custom scrapers for your specific use case — just reach out.

# Actor input Schema

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

Get casts from a specific Farcaster user (no auth needed).

## `fid` (type: `integer`):

Farcaster user ID (FID) for user mode. Required if username is not provided.

## `username` (type: `string`):

Farcaster username to resolve to FID (alternative to providing fid directly, e.g. vitalik)

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

Maximum number of casts to extract

## Actor input object example

```json
{
  "mode": "user",
  "maxResults": 100
}
```

# 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("brick_joey_yto/farcaster-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("brick_joey_yto/farcaster-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 brick_joey_yto/farcaster-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/OVSCGmgheJJoGstTe/builds/lPm60WLq3syyWAAzL/openapi.json
