Whop Content Rewards Scraper | Clipping Campaign Finder avatar

Whop Content Rewards Scraper | Clipping Campaign Finder

Pricing

from $1.05 / 1,000 results

Go to Apify Store
Whop Content Rewards Scraper | Clipping Campaign Finder

Whop Content Rewards Scraper | Clipping Campaign Finder

Scrape every Whop Content Rewards campaign: reward per 1K views, budget left, plus daily burn rate, days of budget left and payout per creator - so you can tell campaigns that really pay from ones just parking a big budget. HTTP-only = fast & cheap. MCP/AI-agent ready.

Pricing

from $1.05 / 1,000 results

Rating

0.0

(0)

Developer

Mr Zack

Mr Zack

Maintained by Community

Actor stats

0

Bookmarked

197

Total users

55

Monthly active users

a day ago

Last modified

Share

Whop Content Rewards Scraper — Clipping Campaign Finder

Get every Whop Content Rewards campaign as clean structured data in one run: reward per 1,000 views, total budget, budget already spent, budget left, progress %, accepted platforms, campaign type, category, creator count and status.

Then — and this is the part no other Whop scraper does — the Actor tells you how fast each campaign is actually paying out, computed from that single run: daily burn rate, days of budget left, average payout per creator, and a 0-100 opportunity score.

Whop's own discover feed shows only about 50 campaigns at a time — you can't see the rest, compare rates, or tell which budgets are actually moving. This Actor returns the full directory (~500–600 campaigns per run), filterable, scored and sorted — ready for spreadsheets, dashboards, alerts, or your AI agent.

Need more than Whop? Clipping Campaigns Aggregator merges Whop, Promote.fun and Vyro into one ranked feed with the same scoring — same account, same pricing model.

Who is this for?

  • Clippers & clipping agencies — find the best-paying campaigns before they saturate. Sort by opportunity score, filter by payout-per-creator, cap the competition with max creators. Fresh campaigns with real burn and few creators = early-mover advantage.
  • Creators & brands running campaigns — benchmark your reward rate, budget and burn rate against every other live campaign in your category.
  • Analysts & builders — the creator-economy "gig board" as a dataset: track new campaign launches, budget burn-rates and platform trends over time.
  • AI agents (MCP) — pay-per-event Actors are callable as tools by AI agents. "Find me active gaming clipping campaigns paying ≥ $2/1K with ≥ $10K budget left and under 300 creators" becomes a single tool call.

What makes this Actor different

Burn-rate intelligence from your first run, not your second.

Other Whop scrapers can tell you what changed between two runs — which means run #1 teaches you nothing. This Actor derives payout velocity from data the site already publishes (fundedAt + budgetSpent + creators), so the very first run answers the question that actually matters:

Question a clipper asksField that answers it
Is this campaign actually paying, or just advertising a big budget?dailyBurnUsd — USD paid out per day since funding
Will the money still be there when my clip gains traction?estimatedDaysLeft — runway at the current burn rate
What did an average clipper here actually earn?payoutPerCreatorUsd — budget spent ÷ creators
Can I realistically compete with the people already in?viewsPerCreator, creators
Is the budget actually moving, or just posted?budgetPace, dailyBurnUsd
How many more views will this campaign pay for at all?estimatedViewsRemaining
Just tell me what to clip tonight.opportunityScore — 0-100, sortable

No snapshot, no state, no second run, no extra charge.

Output (one item per campaign)

FieldExampleNotes
titleCall of Duty MW4 — DMZ Clipping
brandCall of Duty
opportunityScore63.40-100 composite — see scoring below
rewardPerThousandViews1.5USD per 1,000 views
totalBudgetUsd40000
budgetSpentUsd4447
budgetLeftUsd35553computed — the "is it still worth posting" signal
dailyBurnUsd4000USD/day paid out since funding
estimatedDaysLeft52.5runway at the current burn rate — uncapped, so a huge number means "stalled"
budgetPacehealthythat runway as a bucket: draining / healthy / slow / stalled
payoutPerCreatorUsd12.5what an average creator has earned so far
viewsPerCreator7250competition/feasibility signal
estimatedViewsRemaining140000000views the leftover budget can still pay for
progressPercentage11% of budget consumed
ageDays10days since funding
ageIsApproximatetruetrue when the site only published a relative age ("1mo", "3w") — burn/runway are then bucket-midpoint estimates
statusactiveor ended with status: "all" input
campaignTypeclippingclipping / ugc / …
categoryGaming
platforms["tiktok","instagram","youtube"]
creators845competition signal
totalViews2900000views submitted so far (successRatePct / engagement are null since the site stopped publishing them on 30 Aug 2026 — kept for compatibility)
listedAt, campaignCreatedAt2026-08-21T13:37:39.000Zexact ISO launch date — free on every row since 0.1.23
approvedSubmissions, paidOutUsd38293, 47058.71the campaign's real ledger — free on every row since 0.1.23
effectiveRewardPerThousandViews0.035paidOutUsd ÷ totalViews × 1000 — what 1K views has actually paid so far; far below the headline rate = most views pending/rejected
fundedAt2026-06-01T12:00:00.000Z or "3w"spot fresh campaigns (the site switched to relative labels on 30 Aug 2026; ISO is emitted whenever it is available)
campaignUrlhttps://whop.com/mw4-dmz-clipping/jump straight to the campaign
descriptionfull rules texthook/format/whitelist requirements
raworiginal stringsexact values as displayed on the site

Any field the site doesn't publish for a given campaign comes back null — never a fabricated zero.

How the opportunity score works

Deliberately simple, documented, and reproducible so you can argue with it:

  • 35% reward rate — $/1K views, saturating at $5/1K
  • 25% budget headroom — budget left, saturating at $25,000
  • 25% low competition — decays as creators pile in (100 creators ≈ half marks). Capped at half marks while a campaign has never paid anyone: an empty board that has paid $0 is untested, not uncontested, and the data cannot tell those apart
  • 15% payout velocity — full marks for 3–60 days of runway; penalised both when a campaign drains within a day and when it's effectively stalled (huge budget, almost nothing paid out — a big budget nobody is being paid from is not an opportunity)

Campaigns with no reward rate or no budget data score null rather than a misleading number.

Unproven campaigns are not hidden — a fresh board with a good rate and real budget is a genuine opportunity, and it still ranks. It just doesn't outrank a campaign that is provably paying out. On the live board (12 Aug 2026) this moved campaigns that had paid $0 from 10 of the top 15 slots down to 4.

Input highlights

  • status — active (default) or all
  • minRewardPerThousand, minBudgetLeftUsd, maxProgressPercentage — the classic three
  • maxCreators — cap the competition (e.g. 200 = campaigns clippers haven't found yet)
  • minPayoutPerCreatorUsd — only campaigns with proof of payout (e.g. 5)
  • minEstimatedDaysLeft — skip campaigns that will drain before your clip lands
  • minOpportunityScore — one number instead of five filters
  • platforms, campaignTypes, categories, searchText — slice the directory
  • sortBy — budgetLeft (default), opportunity, reward, payoutPerCreator, burn, daysLeft, fewestCreators, newest, progress
  • maxItems — you are only charged for returned results
  • New (Sep 2026): trackTrends — observed budget/creator changes vs your previous run (trendSignal, burnAcceleration); onlyNew — monitor mode, returns only campaigns you have never seen before; maxAgeDays — approximate age cut-off; enrichDetails + maxEnrich — per-campaign detail enrichment; listedAfter — exact launch-date cut-off (with enrichDetails)

Monitor mode: only what's new since your last run (onlyNew)

{ "onlyNew": true, "sortBy": "opportunity", "maxItems": 50 }

The Actor remembers every campaign it has seen in your account (named key-value store whop-cr-seen-campaigns). The first run returns the full board as a baseline; every run after that returns — and charges for — only campaigns that launched since. Put it on an hourly schedule with a Slack/Discord webhook and you get pinged the moment a new campaign appears, at a cost of cents per day. Zero new campaigns = zero results = $0.01 for the run start, nothing else.

Trend tracking: which campaigns are paying out FASTER than yesterday (trackTrends)

{ "trackTrends": true, "sortBy": "opportunity", "maxItems": 100 }

Single-run burn rate is derived (budget spent ÷ campaign age). With trackTrends the Actor also compares every campaign against the snapshot your previous run saved, and adds what actually happened in between:

FieldMeaning
budgetLeftChangeUsd / budgetLeftChangePctbudget movement since your last run (negative = money paid out)
observedBurnUsdPerDayreal payout speed measured between the two runs
burnAccelerationobserved ÷ derived burn — above 1.5 = paying out faster than its history suggests
creatorsChangehow many clippers joined since last run
hoursSinceLastRunage of the comparison
trendSignalone word for a spreadsheet filter: accelerating · steady · slowing · stalled · crowding (clippers joining but no money moving — the classic saturation warning)

The first run only saves the baseline (trendStatus: "baseline"); every run after that is comparable. Works with any filter and alongside onlyNew. Honest limit: observedBurnUsdPerDay extrapolates the gap between two runs to a full day, so runs a few minutes apart are noisy — a daily or hourly schedule gives the reliable signal. No extra charge — it reuses the same named store, and the snapshot is written only after the run has delivered its rows.

Detail enrichment: what the campaign page knows (enrichDetails)

{ "sortBy": "opportunity", "maxItems": 25, "enrichDetails": true, "maxEnrich": 25 }

For the first maxEnrich campaigns the Actor also opens the campaign page and adds:

FieldWhat it tells you
listedAt, campaignCreatedAtExact ISO launch date (the board only shows "2w")
payouts[] + payoutRateMinUsd / payoutRateMaxUsd / maxPayoutPerSubmissionUsdPer-platform rate, minimum payout and max payout per submission (the cap that decides whether a viral clip is worth $200 or $2,500)
totalViews, approvedSubmissions, paidOutUsdThe campaign's real ledger
effectiveRewardPerThousandViewspaidOutUsd ÷ totalViews × 1000 — what 1K submitted views has actually paid so far. A $1.75/1K campaign paying $0.20 effective means most views are pending or rejected
viewsLast7d, submissionsLast7d, viewsPerDay7d7-day velocity from the campaign's own chart — is it heating up or dying
topEarners[], topEarnerUsdHandles, earnings, views and approved clips of the top 3 — proof of what winners make
referenceMaterials[], retainerSpotsTotal, isPrivateBrief links, retainer slots, private flag

Un-enriched rows carry enriched: false. Enrichment adds roughly 0.3 s per campaign and does not change the price — it is the same $1.50/1,000 results.

Example: the low-competition, proven-payer query

{
"status": "active",
"minRewardPerThousand": 2,
"minPayoutPerCreatorUsd": 5,
"maxCreators": 300,
"minEstimatedDaysLeft": 3,
"sortBy": "opportunity",
"maxItems": 25
}

Campaigns paying at least $2/1K, that have already paid an average creator $5+, with fewer than 300 people in, and at least 3 days of budget runway — ranked best first.

Campaign boards rot fast: budgets drain, new campaigns launch daily, and the good ones saturate within hours. A scheduled run is how you get there first.

  1. Run the Actor once with the input you want and check the results.
  2. On the Actor page click ⋯ → Schedule Actor (or go to Schedules → Create new).
  3. Set the cron expression:
    • 0 */6 * * * — every 6 hours. Good default for most clippers.
    • 0 * * * * — hourly. Use when you're competing for fresh, high-CPM campaigns.
    • 0 7 * * * — once every morning. Cheapest useful cadence.
  4. Attach the saved input. A tight input (maxItems: 25, sortBy: "opportunity") keeps every scheduled run to a few cents.
  5. Add an integration so you don't have to check manually: Integrations → Slack / Webhook / Google Sheets / Zapier / Make, triggered on Run succeeded. Your feed of fresh, ranked campaigns arrives on its own.

Catching launches: combine sortBy: "newest" with maxItems: 20 on an hourly schedule — new campaigns surface at the top before the creator count climbs. Add maxCreators: 100 and every item that lands in your inbox is a campaign nobody has piled into yet.

Why this Actor

  • HTTP-only, no browser → fast (seconds, not minutes) and cheap to run.
  • Defensive parser → tolerates site structure drift; failures degrade gracefully instead of crashing mid-run.
  • Pay per event → tiny flat start fee + per-campaign fee. A typical "active campaigns" run costs well under a dollar. Filtered runs cost cents.
  • No free-plan cap. Free-plan users get the same full directory as everyone else — the Actor does not throttle results by plan.

FAQ

Is this legal? The Actor only reads the public campaign directory — the same data anyone sees in a browser without logging in. No login, no private data, no bypassing access controls. Review Whop's terms for your specific use case.

How fresh is the data? Each run fetches the live directory at that moment. See the scheduling section above for a hands-off setup.

Do I need a second run for the burn-rate fields? No. That's the point — dailyBurnUsd, estimatedDaysLeft and payoutPerCreatorUsd are all derived from a single run.

Why is estimatedDaysLeft null on some campaigns? Nothing has been paid out yet, so the burn rate is genuinely unknown. We report null instead of pretending the runway is infinite.

Why is estimatedDaysLeft sometimes in the thousands? Because it is real. The budget is barely moving, which means almost nobody is being paid — budgetPace calls that stalled, and opportunityScore penalises it just as hard as a campaign that drains tonight. Earlier versions clamped this at 999; that hid the difference between a stalled board and a genuine long runway, so the cap is gone.

A field came back null? Some campaigns genuinely omit fields (e.g. UGC campaigns without a per-view rate). Original display strings are always preserved under raw.

Found a bug, or want another field? Open a ticket on the Issues tab — it's read every session.

Changelog

  • 0.1.30 (24 Sep 2026) — Reliability: when contentrewards.com has a short outage, the run now waits and retries on its own (up to a few minutes) instead of failing at once, and a run close to its timeout stops early and keeps every campaign found so far. No price or field change.
  • 0.1.29 (23 Sep 2026) — Honest message when contentrewards.com itself is down. On 22–23 Sep the site returned HTTP 502 on every page for a while; runs failed with a developer-style hint about proxies. Now the run says plainly that the site is unavailable, that only the Actor start fee was charged, and that a retry in 10–30 minutes (or the next scheduled run) is all that is needed. No price change, no field removed, defaults unchanged.
  • 0.1.28 (19 Sep 2026) — Typo guard on input. Apify accepts input fields an Actor does not know without complaining, so a misspelled option (e.g. maxItem instead of maxItems) used to produce a successful run with the setting silently inactive. The run log now warns for every unknown field and suggests the closest real one.
  • 0.1.27 (19 Sep 2026) — Every row now carries the full campaign detail, for free. The board response already contained the daily view chart, per-platform payout rates, top earners and the best-performing clip; the Actor was throwing them away and only rebuilding them when you ticked enrichDetails (one extra page request per campaign). New on every row: viewsLast7d, viewsPrev7d, viewsTrend7dPct, momentum (accelerating / steady / slowing inside a single run — no second run needed), topEarnerUsername, topClipUrl, topClipViews, topClipPlatform, topClipUsername, detailSource. enrichDetails still works and is now instant (nothing left to fetch). Price unchanged, no field removed. The always-empty successRatePct column was dropped from the default table view (Whop stopped publishing it on 30 Aug 2026); the field itself stays in the data for compatibility.
  • 0.1.25 (12 Sep 2026) — Fix: category was rendered as [object Object] on ~44 % of rows since 0.1.22 (the API publishes categories as {id,name} objects), which also made the categories input filter miss everything — now the category name. 0.1.23 — Campaign ledger on every row, free: listedAt, campaignCreatedAt, approvedSubmissions, paidOutUsd, effectiveRewardPerThousandViews now come straight from the board API (previously only with enrichDetails). listedAfter works without enrichDetails and is applied before maxItems, so maxItems: 5, listedAfter: "2026-09-01" returns the 5 best campaigns listed since 1 Sep — filtered-out campaigns are not charged. README now states plainly that successRatePct / engagement are null (the site stopped publishing them). No price change, no field removed, defaults unchanged.
  • 0.1.22 (11 Sep 2026) — Full board again via the site's JSON API (640 campaigns). A site redeploy removed the pagination server action and runs had silently dropped to the ~47 campaigns embedded in the page; the SSR path is now only a fallback and warns loudly when the board looks truncated. Bonus from the API: ageDays is exact (ageIsApproximate: false) and totalViews is populated for every campaign.
  • 0.1.18 (10 Sep 2026) — trackTrends: opt-in run-over-run comparison — budgetLeftChangeUsd, observedBurnUsdPerDay, burnAcceleration, creatorsChange, hoursSinceLastRun, trendSignal (accelerating / steady / slowing / stalled / crowding). First run saves the baseline, no extra charge. Run log now ends with a short summary and links to related Actors; README states the ~50-visible vs full-directory gap plainly. No price change, no field removed, defaults unchanged.
  • 0.1.16 (9 Sep 2026) — Flattened payout view on enriched rows: payoutCount, payoutPlatformsCsv, rateTiktokUsd, rateInstagramUsd, rateYoutubeUsd, rateXUsd — sort or filter per-platform CPM in a spreadsheet without unpacking payouts[]. Requires enrichDetails: true. No price change, no field removed.
  • 0.3 (6 Sep 2026) — Monitor mode onlyNew (cross-run memory, pay only for new campaigns), maxAgeDays filter, optional enrichDetails (exact listedAt, per-platform payouts with min/max payout per submission, totalViews, paidOutUsd, effectiveRewardPerThousandViews, 7-day view velocity, top earners, brief links) capped by maxEnrich, and listedAfter exact launch-date filter. All opt-in, defaults unchanged. No price change, no field removed.
  • 0.1.13 (2 Sep 2026) — Burn-rate fields are back after the contentrewards.com redesign: dailyBurnUsd, estimatedDaysLeft, budgetPace and ageDays are derived again from the site's relative age label (flagged with ageIsApproximate). Full board restored via infinite-scroll pagination (~470 campaigns/run instead of ~45). No price change, no field removed.
  • 0.2 — Single-run burn-rate intelligence: dailyBurnUsd, estimatedDaysLeft, payoutPerCreatorUsd, viewsPerCreator, estimatedViewsRemaining, ageDays, opportunityScore. Four new filters (maxCreators, minPayoutPerCreatorUsd, minEstimatedDaysLeft, minOpportunityScore) and five new sort orders. Typed output schema and dataset table updated. No price change.
  • 0.1 — Initial release: full Content Rewards directory, HTTP-only, pay-per-event.

Was this Actor useful?

If it saved you an afternoon of scrolling the discover feed, a short review on the Reviews tab of this Store page takes 30 seconds and helps other clippers decide whether to try it. Reviews are the only signal buyers have before they spend anything — and this Actor has none yet, so yours would be the first.

Related Actors from the same account

If something is wrong instead, please open a ticket on the Issues tab rather than leaving it broken - field requests and parser bugs get fixed.