If you clip for Whop Content Rewards campaigns, you've seen the pitch: "$1 per 1,000 views", "$2 per 1K", budget $100,000. What the board never shows next to that number is how much of it has actually been paid to creators.
It turns out the site's own JSON API does publish that — per campaign: paidOutCents, approvedSubmissionCount, totalViews, and the exact listedAt timestamp. So this week I made my scraper emit those on every row for free (no per-campaign detail fetch) and ran it over the full board: 658 active campaigns, $3.52M of advertised budget.
The numbers (12 Sep 2026, single snapshot)
- Paid out so far: $510,929 — 14.5% of advertised budget. "Budget spent" (which includes pending/held amounts) is $1.54M, three times the paid figure.
- 369 of 658 campaigns (56%) have paid $0 to anyone. 254 of those already show more than 100,000 submitted views.
- For the 289 campaigns that have paid something, I computed
effectiveRewardPerThousandViews = paidOut / totalViews × 1000and divided by the headline CPM:- median: 0.12 — the typical campaign has paid 12 cents for every dollar its CPM promises per view.
- 25th percentile 0.04, 75th percentile 0.28.
- 72% pay under a quarter of headline. 3% pay 80% or more.
That doesn't mean 88% of views are stolen. Views get rejected (rules, watermarks, reposts), payouts lag approvals, and per-submission caps clip viral outliers. But it does mean the CPM on the card is a ceiling, and the floor is usually much closer to the ground.
Same $1/1K, very different campaigns
| campaign | headline | paid out | views | effective /1K |
|---|---|---|---|---|
| Roblox game (ForgeGUI) | $1.00 | $96,403 | 252M | $0.38 |
| French creator (Yomi Denzel) | $1.00 | $47,059 | 1,357M | $0.035 |
| Backyard Breaks | $2.00 | $20,123 | 21M | $0.97 |
| Daimon X Syndicate | $1.00 | $18,463 | 31M | $0.59 |
Two campaigns, same $1 CPM, 10× difference in what a thousand views has actually been worth. If you're deciding where to spend a week of clipping, that column matters more than the headline.
What I'd do with it as a clipper
- Filter to
paidOutUsd > 0— someone has already been paid, so the pipeline works. - Sort by
effectiveRewardPerThousandViewsand ignore anything under ~0.25× headline unless the budget is huge and young. - Use
listedAt(exact now, not "2w") to catch campaigns under 7 days old — 92 on the board today — where you're competing with fewer creators.
How
Everything above is one run of my Apify Actor (Whop Content Rewards Scraper, pay-per-result, default input, ~20 seconds). New this week: listedAt, campaignCreatedAt, approvedSubmissions, paidOutUsd, effectiveRewardPerThousandViews on every row; listedAfter now works without the enrichment mode; and a bug I found while auditing it — category had been rendering as [object Object] for a day because the API started shipping categories as objects. The scraper has two more regression gates now, because "run succeeded" told me nothing about either.
If you use it, a review on the Store page is the thing that actually helps an indie actor get found. Method notes are in the README.
Top comments (0)