Whop Content Rewards Scraper for Campaigns
Pricing
$0.01 / 1,000 campaigns
Whop Content Rewards Scraper for Campaigns
Find current public Whop Content Rewards campaigns from the directory or public campaign URLs. Filter by type, platform, category, payout, budget, competition, runway, or opportunity score. Review campaign economics, performance, insights, and optional public details.
Pricing
$0.01 / 1,000 campaigns
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
3
Monthly active users
8 days ago
Last modified
Categories
Share
🎯 Find public Whop campaigns with clear payout signals
For clippers, UGC creators, campaign researchers, and brands, this Actor finds current public Whop Content Rewards campaigns and saves structured dataset rows. Each row can include the campaign page, brand, status, type, accepted platforms, budget and payout values, performance, single-run insights, public details, view history, and brand reputation data when available. Use the filters to narrow the board and decide which campaign pages to review.
Use cases
- Start with Content Rewards Campaigns to see the main public campaign directory.
- Find high-payout opportunities with High Paying Creator Campaigns.
- Find campaigns with fewer competing creators using Low Competition Creator Campaigns.
- Focus on accepted YouTube channels with YouTube Campaigns.
- Focus on accepted TikTok channels with TikTok Campaigns.
- Browse short-form clipping work with Clipping Campaigns.
- Browse user-generated content work with UGC Campaigns.
- Review campaign opportunities for creators with Content Creator Campaigns.
📊 Campaign economics and public details
The output schema exposes campaignResults, a link to the default dataset. Dataset rows include a campaign ID, title, status, campaign URL, economics, and insights. When available, a row also includes type, brand, category, description, accepted platforms, funding time, public links, performance, repeated-run signals, public details, view history, and brand reputation data.
▶️ Run a focused campaign search
Choose Public directory to scan the public campaign board, or choose Campaign URLs to read the public pages you provide. Set status, type, platform, category, brand, funding dates, text, resource, threshold, and ordering options as needed. Leave Maximum campaigns empty to return all available results until the public source is exhausted. Set a value when you want to control the number of matching campaign rows and related campaign charges.
⚙️ Input
The required field is findCampaignsBy. The other fields refine the public campaign search. The default status is active, the default type is all, and the default order is opportunity.
Input fields
| Field | Type | What it does |
|---|---|---|
findCampaignsBy | select | Required. Choose directory to scan the public campaign board or campaignUrls to read the public pages you provide. |
campaignUrls | array of objects | In campaignUrls mode, add one or more public Whop campaign page URLs. The list is ignored in directory mode. |
campaignUrls[].url | URL string | The public Whop campaign page URL to read. |
campaignType | select | Choose clipping, ugc, or all. The default is all. |
campaignStatus | select | Choose active, paused, or activeAndPaused. The default is active, and the source status stays unchanged in each row. |
platforms | array of strings | Return campaigns that accept at least one listed platform. Leave it empty to allow all platforms. |
categories | array of strings | Return campaigns whose public category matches one of the listed names. Leave it empty to allow all categories. |
brand | string | Match this text against the public brand name. Leave it empty to allow every brand. |
hasPublicResources | boolean | Return only campaigns that publish at least one public brief or resource link. |
searchText | string | Search the campaign title, brand, category, and description with a case-insensitive substring match. Use one search scope per run. |
fundedAfter | date string | Return campaigns funded on or after this calendar date. |
fundedBefore | date string | Return campaigns funded on or before this calendar date. |
minimumPayoutPerThousandViews | number | Return campaigns with a payout rate at or above this amount per 1,000 views. Use the source currency. |
minimumRemainingBudget | number | Return campaigns with at least this much public budget left. Use the source currency. |
maximumBudgetSpentProgress | number | Return campaigns whose spent budget is at or below this percentage. Enter a number from 0 to 100. |
maximumParticipatingCreators | integer | Return campaigns with no more than this many participating creators. |
minimumAveragePayoutPerCreator | number | Return campaigns whose derived average payout per participating creator is at least this amount. Use the source currency. |
minimumEstimatedRunwayDays | number | Return campaigns with at least this many estimated days of budget runway at the current pace. |
minimumOpportunityScore | number | Return campaigns with an opportunity score at or above this value. Use the score scale shown in the results. |
orderBy | select | Order matches by payout, remaining budget, recency, progress, competition, payout velocity, runway, or opportunity. The default is opportunity. |
maxItems | integer | Stop after this many matching campaigns. Leave this empty to return all available results until the public source is exhausted. |
Default input
This is the public input from the successful current-beta default run:
{"findCampaignsBy": "directory","campaignType": "all","campaignStatus": "active","hasPublicResources": false,"orderBy": "opportunity","maxItems": 50}
🧾 Output
The campaignResults output link opens the default dataset. The tables below describe a standard campaign row and a row with optional public enrichments seen in current-beta runs. Optional fields may be absent when the source or the selected input does not provide them.
Standard campaign row
| Field | Type | What it does |
|---|---|---|
campaignId | string | Required. Stable public campaign ID. |
title | string | Required. Public campaign title. |
brand | string | Optional. Public brand or company named by the campaign. |
status | string | Required. Public status, such as active or paused. |
type | string | Optional. Public type: clipping, ugc, or mixed. |
category | string | Optional. Public campaign category. |
description | string | Optional. Public campaign description. |
acceptedPlatforms | array of strings | Optional. Social platforms accepted by the campaign. |
fundingTime | relative time string | Optional. Relative time since the campaign was funded, as shown by the source. |
campaignUrl | URI string | Required. Public campaign page URL. |
publicLinks | array of objects | Optional. Public media or company links connected to the campaign. |
publicLinks[].kind | string | Link kind, such as media or company. |
publicLinks[].url | URI string | Public link URL. |
publicLinks[].title | string | Optional. Public title of the linked item. |
economics | object | Required. Public payout and budget values. |
economics.payoutPerThousandViews | object | Required. Payout for 1,000 views. |
economics.payoutPerThousandViews.amount | number | Normalized payout amount. |
economics.payoutPerThousandViews.currency | string | Currency used for the payout. |
economics.payoutPerThousandViews.display | string | Optional. Payout as shown by the source. |
economics.totalBudget | object | Required. Total public campaign budget. |
economics.totalBudget.amount | number | Normalized total budget amount. |
economics.totalBudget.currency | string | Currency used for the total budget. |
economics.totalBudget.display | string | Optional. Total budget as shown by the source. |
economics.spentBudget | object | Required. Public budget spent so far. |
economics.spentBudget.amount | number | Normalized spent budget amount. |
economics.spentBudget.currency | string | Currency used for the spent budget. |
economics.spentBudget.display | string | Optional. Spent budget as shown by the source. |
economics.remainingBudget | object | Required. Public budget that remains. |
economics.remainingBudget.amount | number | Normalized remaining budget amount. |
economics.remainingBudget.currency | string | Currency used for the remaining budget. |
economics.budgetProgress | number | Required. Percentage of the budget spent so far. |
economics.estimatedPayableViews | integer | Required. Estimated views that can still earn a payout under the remaining budget. |
performance | object | Optional. Published performance and competition data. |
performance.participatingCreatorCount | integer | Number of creators taking part in the campaign. |
performance.totalViews | integer | Total published views reported for the campaign. |
performance.verificationStatus | string | Public verification state for the campaign brand. |
insights | object | Required. Single-run measures derived from the campaign economics and performance data. |
insights.dailyBudgetBurn | object | Estimated budget spent per day. |
insights.dailyBudgetBurn.amount | number | Estimated daily budget amount. |
insights.dailyBudgetBurn.currency | string | Currency used for the daily budget amount. |
insights.estimatedRunwayDays | number | Optional. Estimated days before the remaining budget runs out at the current pace. |
insights.averagePayoutPerCreator | object | Optional. Estimated average payout per participating creator. |
insights.averagePayoutPerCreator.amount | number | Estimated average payout amount. |
insights.averagePayoutPerCreator.currency | string | Currency used for the average payout. |
insights.viewsPerCreator | number | Optional. Estimated average published views per creator. |
insights.budgetPace | number | Estimated percentage of the total budget spent per day. |
insights.opportunityScore | number | Required. Score used to rank campaigns by current opportunity. |
newSincePreviousRun | boolean | Optional. Whether the campaign first appeared after the previous run when a comparison is available. |
spendChange | object | Optional. Change in spent budget since the previous run when a comparison is available. |
spendChange.amount | object | Required when spendChange is present. Normalized change in spent budget. |
spendChange.amount.amount | number | Change in the spent budget amount. |
spendChange.amount.currency | string | Currency used for the spend change. |
spendChange.amount.display | string | Optional. Spend change as shown by the source or comparison. |
spendChange.percent | number | Optional. Percentage change in spent budget. |
This genuine standard row comes from the successful current-beta default run with maxItems set to 50. It shows campaign economics, performance, and single-run insights for an active campaign.
{"campaignId": "0107610f-42d9-4c86-b42e-161b430c832a","title": "TDJ — GET PAID TO GET CLIPPED! $3.50 CPM","status": "active","campaignUrl": "https://contentrewards.com/discover/0107610f-42d9-4c86-b42e-161b430c832a","economics": {"payoutPerThousandViews": {"amount": 3.5,"currency": "USD","display": "$3.50 per 1,000 views"},"totalBudget": {"amount": 1000,"currency": "USD","display": "$1000.00"},"spentBudget": {"amount": 3.9,"currency": "USD","display": "$3.90"},"remainingBudget": {"amount": 996.1,"currency": "USD"},"budgetProgress": 0.39,"estimatedPayableViews": 284600},"performance": {"participatingCreatorCount": 44,"totalViews": 122212,"verificationStatus": "unverified"},"insights": {"dailyBudgetBurn": {"amount": 0.8104862683816174,"currency": "USD"},"estimatedRunwayDays": 1229.0152700415479,"averagePayoutPerCreator": {"amount": 0.08863636363636364,"currency": "USD"},"viewsPerCreator": 2777.5454545454545,"budgetPace": 0.08104862683816175,"opportunityScore": 100},"brand": "Clipr Agency","category": "Music","description": "DJ — Viral Clipping Campaign\n\nGet paid to turn TDJ’s most exciting trance moments into viral short-form content.\n\nCreate a dedicated trance / dance music fan page and clip moments from TDJ’s A State of Trance Mexico 2025 performance for TikTok, Instagram Reels, and YouTube Shorts.","acceptedPlatforms": ["instagram","tiktok","youtube"],"fundingTime": "4 days ago","publicLinks": [{"kind": "company","url": "https://whop.com/discover/ebf36fd7-cfe5-5598-a99f-d1a56d863234","title": "Clipr Agency"}],"newSincePreviousRun": true}
Campaign row with optional public enrichments
| Field | Type | What it does |
|---|---|---|
campaignId | string | Required. Stable public campaign ID. |
title | string | Required. Public campaign title. |
brand | string | Optional. Public brand or company named by the campaign. |
status | string | Required. Public status, such as active or paused. |
type | string | Optional. Public type: clipping, ugc, or mixed. |
category | string | Optional. Public campaign category. |
description | string | Optional. Public campaign description. |
acceptedPlatforms | array of strings | Optional. Social platforms accepted by the campaign. |
fundingTime | relative time string | Optional. Relative time since the campaign was funded, as shown by the source. |
campaignUrl | URI string | Required. Public campaign page URL. |
publicLinks | array of objects | Optional. Public media or company links connected to the campaign. |
publicLinks[].kind | string | Link kind, such as media or company. |
publicLinks[].url | URI string | Public link URL. |
publicLinks[].title | string | Optional. Public title of the linked item. |
economics | object | Required. Public payout and budget values. |
economics.payoutPerThousandViews | object | Required. Payout for 1,000 views. |
economics.payoutPerThousandViews.amount | number | Normalized payout amount. |
economics.payoutPerThousandViews.currency | string | Currency used for the payout. |
economics.payoutPerThousandViews.display | string | Optional. Payout as shown by the source. |
economics.totalBudget | object | Required. Total public campaign budget. |
economics.totalBudget.amount | number | Normalized total budget amount. |
economics.totalBudget.currency | string | Currency used for the total budget. |
economics.totalBudget.display | string | Optional. Total budget as shown by the source. |
economics.spentBudget | object | Required. Public budget spent so far. |
economics.spentBudget.amount | number | Normalized spent budget amount. |
economics.spentBudget.currency | string | Currency used for the spent budget. |
economics.spentBudget.display | string | Optional. Spent budget as shown by the source. |
economics.remainingBudget | object | Required. Public budget that remains. |
economics.remainingBudget.amount | number | Normalized remaining budget amount. |
economics.remainingBudget.currency | string | Currency used for the remaining budget. |
economics.budgetProgress | number | Required. Percentage of the budget spent so far. |
economics.estimatedPayableViews | integer | Required. Estimated views that can still earn a payout under the remaining budget. |
performance | object | Optional. Published performance and competition data. |
performance.participatingCreatorCount | integer | Number of creators taking part in the campaign. |
performance.totalViews | integer | Total published views reported for the campaign. |
performance.verificationStatus | string | Public verification state for the campaign brand. |
insights | object | Required. Single-run measures derived from the campaign economics and performance data. |
insights.dailyBudgetBurn | object | Estimated budget spent per day. |
insights.dailyBudgetBurn.amount | number | Estimated daily budget amount. |
insights.dailyBudgetBurn.currency | string | Currency used for the daily budget amount. |
insights.estimatedRunwayDays | number | Optional. Estimated days before the remaining budget runs out at the current pace. |
insights.averagePayoutPerCreator | object | Optional. Estimated average payout per participating creator. |
insights.averagePayoutPerCreator.amount | number | Estimated average payout amount. |
insights.averagePayoutPerCreator.currency | string | Currency used for the average payout. |
insights.viewsPerCreator | number | Optional. Estimated average published views per creator. |
insights.budgetPace | number | Estimated percentage of the total budget spent per day. |
insights.opportunityScore | number | Required. Score used to rank campaigns by current opportunity. |
details | object | Optional. Extra public campaign details when the run provides them. |
details.platformPayoutRules | array of objects | Public payout rules and payout limits for accepted platforms. |
details.platformPayoutRules[].platform | string | Platform covered by the payout rule. |
details.platformPayoutRules[].payoutPerThousandViews | object | Payout for 1,000 views on that platform. |
details.platformPayoutRules[].payoutPerThousandViews.amount | number | Normalized platform payout amount. |
details.platformPayoutRules[].payoutPerThousandViews.currency | string | Currency used for the platform payout. |
details.platformPayoutRules[].payoutPerThousandViews.display | string | Optional. Platform payout as shown by the source. |
details.platformPayoutRules[].maximumPayout | object | Optional. Maximum payout for the platform rule. |
details.platformPayoutRules[].maximumPayout.amount | number | Normalized maximum payout amount. |
details.platformPayoutRules[].maximumPayout.currency | string | Currency used for the maximum payout. |
details.platformPayoutRules[].maximumPayout.display | string | Optional. Maximum payout as shown by the source. |
details.publicResourceLinks | array of objects | Public resource links for the campaign. |
details.publicResourceLinks[].url | URI string | Public resource URL. |
details.publicResourceLinks[].title | string | Optional. Public title of the resource. |
newSincePreviousRun | boolean | Optional. Whether the campaign first appeared after the previous run when a comparison is available. |
spendChange | object | Optional. Change in spent budget since the previous run when a comparison is available. |
spendChange.amount | object | Required when spendChange is present. Normalized change in spent budget. |
spendChange.amount.amount | number | Change in the spent budget amount. |
spendChange.amount.currency | string | Currency used for the spend change. |
spendChange.amount.display | string | Optional. Spend change as shown by the source or comparison. |
spendChange.percent | number | Optional. Percentage change in spent budget. |
viewHistory | array of objects | Optional. Public campaign view activity by day or source reporting period. |
viewHistory[].period | date-time string | The day or reporting period named by the source. |
viewHistory[].views | integer | Public views reported for that period. |
brandReputation | object | Optional. Public brand rating, review, membership, tenure, and link details. |
brandReputation.rating | number | Public rating of the campaign brand. |
brandReputation.reviewCount | integer | Number of public reviews for the brand. |
brandReputation.memberCount | integer | Public number of members linked to the brand. |
brandReputation.tenure | string | Public length of time the brand has been active, as shown by the source. |
brandReputation.publicLinks | array of objects | Public links connected to the brand. |
brandReputation.publicLinks[].url | URI string | Public URL connected to the brand. |
brandReputation.publicLinks[].title | string | Optional. Public title of the linked brand item. |
This genuine enriched row comes from a successful current-beta run using a public campaign page. It shows per-platform payout limits, a public resource link, view history, and brand context.
{"campaignId": "0107610f-42d9-4c86-b42e-161b430c832a","title": "TDJ — GET PAID TO GET CLIPPED! $3.50 CPM","status": "active","campaignUrl": "https://contentrewards.com/discover/0107610f-42d9-4c86-b42e-161b430c832a","economics": {"payoutPerThousandViews": {"amount": 3.5,"currency": "USD","display": "$3.50 per 1,000 views"},"totalBudget": {"amount": 1000,"currency": "USD","display": "$1000.00"},"spentBudget": {"amount": 3.9,"currency": "USD","display": "$3.90"},"remainingBudget": {"amount": 996.1,"currency": "USD"},"budgetProgress": 0.39,"estimatedPayableViews": 284600},"performance": {"participatingCreatorCount": 44,"totalViews": 122212,"verificationStatus": "unverified"},"insights": {"dailyBudgetBurn": {"amount": 0.8101540948143081,"currency": "USD"},"estimatedRunwayDays": 1229.5191820616692,"averagePayoutPerCreator": {"amount": 0.08863636363636364,"currency": "USD"},"viewsPerCreator": 2777.5454545454545,"budgetPace": 0.08101540948143081,"opportunityScore": 100},"brand": "Clipr Agency","category": "Music","description": "DJ — Viral Clipping Campaign\n\nGet paid to turn TDJ’s most exciting trance moments into viral short-form content.\n\nCreate a dedicated trance / dance music fan page and clip moments from TDJ’s A State of Trance Mexico 2025 performance for TikTok, Instagram Reels, and YouTube Shorts.","acceptedPlatforms": ["instagram","tiktok","youtube"],"fundingTime": "4 days ago","publicLinks": [{"kind": "company","url": "https://whop.com/clipr-agency-b7f8","title": "Clipr Agency"}],"details": {"platformPayoutRules": [{"platform": "tiktok","payoutPerThousandViews": {"amount": 3.5,"currency": "USD","display": "$3.50 per 1,000 views"},"maximumPayout": {"amount": 175,"currency": "USD","display": "$175.00 maximum"}},{"platform": "instagram","payoutPerThousandViews": {"amount": 3.5,"currency": "USD","display": "$3.50 per 1,000 views"},"maximumPayout": {"amount": 175,"currency": "USD","display": "$175.00 maximum"}},{"platform": "youtube","payoutPerThousandViews": {"amount": 3.5,"currency": "USD","display": "$3.50 per 1,000 views"},"maximumPayout": {"amount": 175,"currency": "USD","display": "$175.00 maximum"}}],"publicResourceLinks": [{"url": "https://docs.google.com/document/d/1-x_LfpZTdGqlhufnX7hlZ8tyu1QNMAAa/edit?usp=sharing&ouid=115808081879974824832&rtpof=true&sd=true","title": "brandAsset"}]},"viewHistory": [{"period": "2026-08-13T00:00:00.000Z","views": 0},{"period": "2026-08-14T00:00:00.000Z","views": 0},{"period": "2026-08-15T00:00:00.000Z","views": 0},{"period": "2026-08-16T00:00:00.000Z","views": 0},{"period": "2026-08-17T00:00:00.000Z","views": 0},{"period": "2026-08-18T00:00:00.000Z","views": 0},{"period": "2026-08-19T00:00:00.000Z","views": 0},{"period": "2026-08-20T00:00:00.000Z","views": 0},{"period": "2026-08-21T00:00:00.000Z","views": 0},{"period": "2026-08-22T00:00:00.000Z","views": 0},{"period": "2026-08-23T00:00:00.000Z","views": 0},{"period": "2026-08-24T00:00:00.000Z","views": 0},{"period": "2026-08-25T00:00:00.000Z","views": 0},{"period": "2026-08-26T00:00:00.000Z","views": 0},{"period": "2026-08-27T00:00:00.000Z","views": 0},{"period": "2026-08-28T00:00:00.000Z","views": 0},{"period": "2026-08-29T00:00:00.000Z","views": 0},{"period": "2026-08-30T00:00:00.000Z","views": 0},{"period": "2026-08-31T00:00:00.000Z","views": 0},{"period": "2026-09-01T00:00:00.000Z","views": 0},{"period": "2026-09-02T00:00:00.000Z","views": 0},{"period": "2026-09-03T00:00:00.000Z","views": 0},{"period": "2026-09-04T00:00:00.000Z","views": 0},{"period": "2026-09-05T00:00:00.000Z","views": 0},{"period": "2026-09-06T00:00:00.000Z","views": 0},{"period": "2026-09-07T00:00:00.000Z","views": 11124},{"period": "2026-09-08T00:00:00.000Z","views": 23197},{"period": "2026-09-09T00:00:00.000Z","views": 27768},{"period": "2026-09-10T00:00:00.000Z","views": 33596},{"period": "2026-09-11T00:00:00.000Z","views": 22528},{"period": "2026-09-12T00:00:00.000Z","views": 3999}],"brandReputation": {"rating": 3.25,"reviewCount": 16,"memberCount": 1320,"tenure": "0.4 years","publicLinks": [{"url": "https://whop.com/clipr-agency-b7f8"}]},"newSincePreviousRun": false,"spendChange": {"amount": {"amount": 0,"currency": "USD","display": "+$0.00"},"percent": 0}}
💳 Pricing
This Actor uses pay per event. The primary event charges once for each campaign row saved to the dataset. Set maxItems when you want to control the number of matching rows and the related campaign charges. An empty or no-result run has no campaign row for this primary event. See the Apify pricing panel for the current rate.
🔌 Integrations
Use the campaignResults dataset link in your Apify workflow or your own tools. See the Actor workflow video here:
❓ FAQ
How do I scan the public directory?
Choose Public directory in findCampaignsBy. Leave campaignUrls empty and add filters only when you want to narrow the board.
When should I use Campaign URLs?
Choose Campaign URLs when you already have one or more public Whop campaign pages. Add each page under campaignUrls.
What can public campaign details include?
When available, public campaign details can include platform payout rules, maximum payouts, and public resource links.
When are optional public fields present?
A row can include public campaign details, view history, brand reputation, and comparison fields when the source and run provide them.
What happens when Maximum campaigns is empty?
The Actor returns all available results until the public source is exhausted. Set maxItems to stop after a chosen number of matching campaigns.
What status can a campaign row have?
Each row includes the public campaign status, such as active or paused. Choose activeAndPaused when you want both scopes.
How should I read the insight fields?
The insight values are derived from the current campaign economics and performance data. Runway and opportunity score help compare campaigns at that time, but they do not guarantee approval, payout, campaign longevity, or creator earnings.
How do repeated runs show changes?
When a comparison is available, newSincePreviousRun can show that a campaign appeared after the previous run, and spendChange can show a change in spent budget.
Does this Actor apply to campaigns or pay rewards?
No. It reads and returns public campaign information. It does not apply to campaigns, submit clips, manage creator accounts, or settle rewards.
📝 Changelog
v1.2 (12-09-2026)
- Campaign searches can filter for active campaigns, paused campaigns, or both.
- Campaign results use the current public source and keep each campaign's status in the output.
v1.1 (09-09-2026)
- Campaign searches can filter by brand, public resources, and funding dates.
- Directory searches with a result limit can choose the best matching campaigns across the public directory before reading their pages.
- Results can include public view history and brand reputation when the source provides them.
v1.0 (02-09-2026)
- Campaign searches now use the current public Content Rewards directory and campaign pages for source-backed economics, performance, and optional public details.
- Directory results support consistent filtering, ordering, pagination, and result limits across the available public campaign list.
v0.0
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
These public Store actors cover closely related campaign research:
- Influencer Scraper: Build public creator shortlists across TikTok, Instagram, and YouTube for campaign outreach.
- YouTube Channel Search Scraper: Find public YouTube channels to review for creator campaigns.
- TikTok Creator Analytics Scraper: Compare public TikTok creator reach and recent post metrics before outreach.
- Whop Content Rewards Scraper | Clipping Campaign Finder: Compare public Whop campaign payout, budget, and clipping signals.
- Whop Content Rewards Scraper: Review public Whop clipping and UGC campaigns with payout and requirement details.
Made with ❤️ by Maxime Dupré