Farcaster Casts Scraper: Posts, Authors & Engagement
Pricing
from $6.80 / 1,000 results
Farcaster Casts Scraper: Posts, Authors & Engagement
Scrape Farcaster casts (posts) by username, FID or keyword search. Each cast has the text, timestamp, author profile (username, display name, follower count, bio, avatar), and engagement (replies, reactions, recasts, quotes, views), plus embeds and a Warpcast URL. Export to JSON, CSV or Excel.
Pricing
from $6.80 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Farcaster Casts Scraper: Posts, Authors & Engagement
Here is one real result, with every field the actor returns:
{"hash": "0x90e7296b09e080603ae64d844ad33ba3c168f7a2","text": "degenfers (degen-EFF-ers) are mfers who have put on their top hats. They are /degen. They live on /base. 10,000+ unique PFPs minting via /farcaster Frame. This the first 10K PFP mint via Frame. 1 free (no gas) mint per user. Recast first. Be degen. https://degenfers.art/f.html","castedAt": "2024-03-14T13:37:40.000Z","timestamp": 1710423460000,"authorFid": 8685,"authorUsername": "markcarey","authorDisplayName": "Mark Carey 🎩🫂","authorFollowerCount": 10032,"authorFollowingCount": 1555,"authorBio": "mini app developer, web3 developer, long distance runner /streme /pixelnouns /frm /degendogs /degenfers /toka /maxis","authorPfpUrl": "https://imagedelivery.net/BXluQx4ige9GuW0Ia56BHw/75d9d223-c4c7-4b40-f6f4-f1bc9548cc00/original","replyCount": 96,"reactionCount": 7471,"recastCount": 8238,"quoteCount": 318,"watchCount": 0,"viewCount": 62900,"combinedRecastCount": 8556,"isReply": false,"parentHash": null,"threadHash": "0x90e7296b09e080603ae64d844ad33ba3c168f7a2","imageCount": 0,"firstImageUrl": null,"embedUrlCount": 1,"firstEmbedUrl": "https://degenfers.art/f.html","tags": ["degenfers"],"warpcastUrl": "https://warpcast.com/markcarey/0x90e7296b","sourceType": "search","sourceValue": "base","source": "Farcaster (Warpcast)","observedAt": "2026-08-06T17:40:12.485Z"}
The most complete Farcaster cast scraper available. It returns every field a public cast exposes, including full author profile and follower counts, all engagement metrics with a combined recast total, thread and reply structure, embedded images and links, channel tags, plus optional AI enrichment, and gives you username, FID and keyword inputs to target exactly the casts you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor collects public Farcaster casts by username, by numeric FID, or by keyword search, and writes one normalized record per cast to the run's dataset. Each record carries the cast hash and text, the cast time (ISO and epoch), the full author profile (FID, username, display name, follower and following counts, bio, avatar), all engagement metrics (replies, reactions, recasts, quotes, watches, views, and a combined recast total), the thread and reply structure, embedded image and link counts with the first of each, channel tags, and the Warpcast URL. You can require a minimum reaction count and choose whether replies are included. Missing source values are returned as null.
Two opt-in AI add-ons (paid Apify plans only) can classify each cast's sentiment (withAiSentiment) and tag it with topics (withAiTopics).
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 15 recent casts from two accounts plus a keyword search, replies included.
{"usernames": ["dwr.eth", "vitalik.eth"],"searchQueries": ["base"],"maxCasts": 15,"includeReplies": true}
Provide at least one of usernames, fids, or searchQueries. All inputs combine into one run, and each record is tagged with the sourceType/sourceValue that produced it.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
usernames | string[] | no | ["dwr.eth"] | Farcaster usernames to fetch casts from, with or without @. One run does the whole list. |
fids | string[] | no | (empty) | Farcaster IDs (numeric) to fetch casts from, as an alternative to usernames. |
searchQueries | string[] | no | (empty) | Keywords or phrases to search casts for, for example base, ethereum, AI agents. |
includeReplies | boolean | no | true | Include reply casts. Turn off to keep only top-level casts. |
minReactions | integer | no | (none) | Keep only casts with at least this many reactions (likes). |
maxCasts | integer | no | 50 | Maximum casts to collect across all inputs. Free Apify plans are capped at 10 per run. |
withAiSentiment | boolean | no | false | Paid AI add-on. Classify each cast's sentiment (positive/neutral/negative) with a score. |
withAiTopics | boolean | no | false | Paid AI add-on. Tag each cast with 1 to 5 topics. |
Provide at least one of usernames, fids, or searchQueries.
Output reference
One dataset item per cast. Types: string, integer, boolean, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
hash | string | Cast hash (unique per cast). |
text | string | Full cast text. |
castedAt | string | ISO 8601 time the cast was published. |
timestamp | integer | Cast time as epoch milliseconds. |
authorFid | integer | Author Farcaster ID. |
authorUsername | string | Author username. |
authorDisplayName | string | Author display name. |
authorFollowerCount | integer | Author follower count. |
authorFollowingCount | integer | Author following count. |
authorBio | string | Author bio text. |
authorPfpUrl | string | Author profile picture URL. |
replyCount | integer | Number of replies. |
reactionCount | integer | Number of reactions (likes). |
recastCount | integer | Number of recasts. |
quoteCount | integer | Number of quote casts. |
watchCount | integer | Number of watches. |
viewCount | integer | Number of views. |
combinedRecastCount | integer | Recasts plus quotes combined. |
isReply | boolean | Whether the cast is a reply. |
parentHash | string | Hash of the parent cast when it is a reply, else null. |
threadHash | string | Hash of the thread root. |
imageCount | integer | Number of embedded images. |
firstImageUrl | string | URL of the first embedded image, or null. |
embedUrlCount | integer | Number of embedded links. |
firstEmbedUrl | string | First embedded link URL, or null. |
tags | string[] | Channel tags the cast is posted in. |
warpcastUrl | string | Warpcast permalink for the cast. |
sourceType | string | Which input produced the cast: username, fid, or search. |
sourceValue | string | The specific username, FID, or keyword that produced the cast. |
source | string | Always Farcaster (Warpcast). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
aiSentiment | string | AI sentiment label (only with withAiSentiment), else absent. |
aiTopics | string[] | AI topic tags (only with withAiTopics), else absent. |
error | string | Present only on a failed run: a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"usernames": ["dwr.eth", "vitalik.eth"], "searchQueries": ["base"], "maxCasts": 15, "includeReplies": true}):
{"hash": "0x90e7296b09e080603ae64d844ad33ba3c168f7a2","text": "degenfers (degen-EFF-ers) are mfers who have put on their top hats. They are /degen. They live on /base. 10,000+ unique PFPs minting via /farcaster Frame. This the first 10K PFP mint via Frame. 1 free (no gas) mint per user. Recast first. Be degen. https://degenfers.art/f.html","castedAt": "2024-03-14T13:37:40.000Z","timestamp": 1710423460000,"authorFid": 8685,"authorUsername": "markcarey","authorDisplayName": "Mark Carey 🎩🫂","authorFollowerCount": 10032,"authorFollowingCount": 1555,"authorBio": "mini app developer, web3 developer, long distance runner /streme /pixelnouns /frm /degendogs /degenfers /toka /maxis","authorPfpUrl": "https://imagedelivery.net/BXluQx4ige9GuW0Ia56BHw/75d9d223-c4c7-4b40-f6f4-f1bc9548cc00/original","replyCount": 96,"reactionCount": 7471,"recastCount": 8238,"quoteCount": 318,"watchCount": 0,"viewCount": 62900,"combinedRecastCount": 8556,"isReply": false,"parentHash": null,"threadHash": "0x90e7296b09e080603ae64d844ad33ba3c168f7a2","imageCount": 0,"firstImageUrl": null,"embedUrlCount": 1,"firstEmbedUrl": "https://degenfers.art/f.html","tags": ["degenfers"],"warpcastUrl": "https://warpcast.com/markcarey/0x90e7296b","sourceType": "search","sourceValue": "base","source": "Farcaster (Warpcast)","observedAt": "2026-08-06T17:40:12.485Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~farcaster-casts-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"usernames":["dwr.eth"],"maxCasts":25,"includeReplies":false}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~farcaster-casts-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQueries":["base","AI agents"],"minReactions":50,"maxCasts":200}'
Apify CLI:
apify call scrapers_lat/farcaster-casts-scraper \--input '{"usernames":["vitalik.eth"],"maxCasts":10}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per cast returned (
resultevent). See the pricing tab for the current per-result price. - AI add-ons bill separately. Sentiment and topics are opt-in, off by default, and each carry their own per-item charge.
- No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxCasts.
FAQ and troubleshooting
A run returned 0 records. Why?
The usernames or FIDs may have no matching casts under your filters (for example minReactions too high, or replies excluded), or the keyword matched nothing. Loosen the filters. Zero-result runs are not charged.
Can I mix usernames, FIDs and keywords?
Yes. All three inputs combine into one run and each record is tagged with the sourceType and sourceValue that produced it.
How do I get only high-engagement casts?
Set minReactions to a threshold; only casts with at least that many reactions are kept.
What is combinedRecastCount?
Recasts plus quote casts, so you can rank by total amplification in one number.
Is this an official Farcaster or Warpcast tool? No. This actor is independent and has no affiliation with Farcaster or Warpcast. It reads only publicly available cast data.
Related scrapers
- X (Twitter) Tweets & Profiles Scraper: public tweets, profiles and engagement.
- Reddit Posts Scraper: Full Text, Scores & Awards: posts, scores and awards without an API key.
- Hacker News Scraper - Stories, Points & Comments: stories, points and comment threads.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Farcaster or Warpcast. Accesses only publicly available cast data.
