Whop Content Rewards Scraper for Campaigns avatar

Whop Content Rewards Scraper for Campaigns

Pricing

$0.01 / 1,000 campaigns

Go to Apify Store
Whop Content Rewards Scraper for 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é

Maxime Dupré

Maintained by Community

Actor 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

📊 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.

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

FieldTypeWhat it does
findCampaignsByselectRequired. Choose directory to scan the public campaign board or campaignUrls to read the public pages you provide.
campaignUrlsarray of objectsIn campaignUrls mode, add one or more public Whop campaign page URLs. The list is ignored in directory mode.
campaignUrls[].urlURL stringThe public Whop campaign page URL to read.
campaignTypeselectChoose clipping, ugc, or all. The default is all.
campaignStatusselectChoose active, paused, or activeAndPaused. The default is active, and the source status stays unchanged in each row.
platformsarray of stringsReturn campaigns that accept at least one listed platform. Leave it empty to allow all platforms.
categoriesarray of stringsReturn campaigns whose public category matches one of the listed names. Leave it empty to allow all categories.
brandstringMatch this text against the public brand name. Leave it empty to allow every brand.
hasPublicResourcesbooleanReturn only campaigns that publish at least one public brief or resource link.
searchTextstringSearch the campaign title, brand, category, and description with a case-insensitive substring match. Use one search scope per run.
fundedAfterdate stringReturn campaigns funded on or after this calendar date.
fundedBeforedate stringReturn campaigns funded on or before this calendar date.
minimumPayoutPerThousandViewsnumberReturn campaigns with a payout rate at or above this amount per 1,000 views. Use the source currency.
minimumRemainingBudgetnumberReturn campaigns with at least this much public budget left. Use the source currency.
maximumBudgetSpentProgressnumberReturn campaigns whose spent budget is at or below this percentage. Enter a number from 0 to 100.
maximumParticipatingCreatorsintegerReturn campaigns with no more than this many participating creators.
minimumAveragePayoutPerCreatornumberReturn campaigns whose derived average payout per participating creator is at least this amount. Use the source currency.
minimumEstimatedRunwayDaysnumberReturn campaigns with at least this many estimated days of budget runway at the current pace.
minimumOpportunityScorenumberReturn campaigns with an opportunity score at or above this value. Use the score scale shown in the results.
orderByselectOrder matches by payout, remaining budget, recency, progress, competition, payout velocity, runway, or opportunity. The default is opportunity.
maxItemsintegerStop 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

FieldTypeWhat it does
campaignIdstringRequired. Stable public campaign ID.
titlestringRequired. Public campaign title.
brandstringOptional. Public brand or company named by the campaign.
statusstringRequired. Public status, such as active or paused.
typestringOptional. Public type: clipping, ugc, or mixed.
categorystringOptional. Public campaign category.
descriptionstringOptional. Public campaign description.
acceptedPlatformsarray of stringsOptional. Social platforms accepted by the campaign.
fundingTimerelative time stringOptional. Relative time since the campaign was funded, as shown by the source.
campaignUrlURI stringRequired. Public campaign page URL.
publicLinksarray of objectsOptional. Public media or company links connected to the campaign.
publicLinks[].kindstringLink kind, such as media or company.
publicLinks[].urlURI stringPublic link URL.
publicLinks[].titlestringOptional. Public title of the linked item.
economicsobjectRequired. Public payout and budget values.
economics.payoutPerThousandViewsobjectRequired. Payout for 1,000 views.
economics.payoutPerThousandViews.amountnumberNormalized payout amount.
economics.payoutPerThousandViews.currencystringCurrency used for the payout.
economics.payoutPerThousandViews.displaystringOptional. Payout as shown by the source.
economics.totalBudgetobjectRequired. Total public campaign budget.
economics.totalBudget.amountnumberNormalized total budget amount.
economics.totalBudget.currencystringCurrency used for the total budget.
economics.totalBudget.displaystringOptional. Total budget as shown by the source.
economics.spentBudgetobjectRequired. Public budget spent so far.
economics.spentBudget.amountnumberNormalized spent budget amount.
economics.spentBudget.currencystringCurrency used for the spent budget.
economics.spentBudget.displaystringOptional. Spent budget as shown by the source.
economics.remainingBudgetobjectRequired. Public budget that remains.
economics.remainingBudget.amountnumberNormalized remaining budget amount.
economics.remainingBudget.currencystringCurrency used for the remaining budget.
economics.budgetProgressnumberRequired. Percentage of the budget spent so far.
economics.estimatedPayableViewsintegerRequired. Estimated views that can still earn a payout under the remaining budget.
performanceobjectOptional. Published performance and competition data.
performance.participatingCreatorCountintegerNumber of creators taking part in the campaign.
performance.totalViewsintegerTotal published views reported for the campaign.
performance.verificationStatusstringPublic verification state for the campaign brand.
insightsobjectRequired. Single-run measures derived from the campaign economics and performance data.
insights.dailyBudgetBurnobjectEstimated budget spent per day.
insights.dailyBudgetBurn.amountnumberEstimated daily budget amount.
insights.dailyBudgetBurn.currencystringCurrency used for the daily budget amount.
insights.estimatedRunwayDaysnumberOptional. Estimated days before the remaining budget runs out at the current pace.
insights.averagePayoutPerCreatorobjectOptional. Estimated average payout per participating creator.
insights.averagePayoutPerCreator.amountnumberEstimated average payout amount.
insights.averagePayoutPerCreator.currencystringCurrency used for the average payout.
insights.viewsPerCreatornumberOptional. Estimated average published views per creator.
insights.budgetPacenumberEstimated percentage of the total budget spent per day.
insights.opportunityScorenumberRequired. Score used to rank campaigns by current opportunity.
newSincePreviousRunbooleanOptional. Whether the campaign first appeared after the previous run when a comparison is available.
spendChangeobjectOptional. Change in spent budget since the previous run when a comparison is available.
spendChange.amountobjectRequired when spendChange is present. Normalized change in spent budget.
spendChange.amount.amountnumberChange in the spent budget amount.
spendChange.amount.currencystringCurrency used for the spend change.
spendChange.amount.displaystringOptional. Spend change as shown by the source or comparison.
spendChange.percentnumberOptional. 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

FieldTypeWhat it does
campaignIdstringRequired. Stable public campaign ID.
titlestringRequired. Public campaign title.
brandstringOptional. Public brand or company named by the campaign.
statusstringRequired. Public status, such as active or paused.
typestringOptional. Public type: clipping, ugc, or mixed.
categorystringOptional. Public campaign category.
descriptionstringOptional. Public campaign description.
acceptedPlatformsarray of stringsOptional. Social platforms accepted by the campaign.
fundingTimerelative time stringOptional. Relative time since the campaign was funded, as shown by the source.
campaignUrlURI stringRequired. Public campaign page URL.
publicLinksarray of objectsOptional. Public media or company links connected to the campaign.
publicLinks[].kindstringLink kind, such as media or company.
publicLinks[].urlURI stringPublic link URL.
publicLinks[].titlestringOptional. Public title of the linked item.
economicsobjectRequired. Public payout and budget values.
economics.payoutPerThousandViewsobjectRequired. Payout for 1,000 views.
economics.payoutPerThousandViews.amountnumberNormalized payout amount.
economics.payoutPerThousandViews.currencystringCurrency used for the payout.
economics.payoutPerThousandViews.displaystringOptional. Payout as shown by the source.
economics.totalBudgetobjectRequired. Total public campaign budget.
economics.totalBudget.amountnumberNormalized total budget amount.
economics.totalBudget.currencystringCurrency used for the total budget.
economics.totalBudget.displaystringOptional. Total budget as shown by the source.
economics.spentBudgetobjectRequired. Public budget spent so far.
economics.spentBudget.amountnumberNormalized spent budget amount.
economics.spentBudget.currencystringCurrency used for the spent budget.
economics.spentBudget.displaystringOptional. Spent budget as shown by the source.
economics.remainingBudgetobjectRequired. Public budget that remains.
economics.remainingBudget.amountnumberNormalized remaining budget amount.
economics.remainingBudget.currencystringCurrency used for the remaining budget.
economics.budgetProgressnumberRequired. Percentage of the budget spent so far.
economics.estimatedPayableViewsintegerRequired. Estimated views that can still earn a payout under the remaining budget.
performanceobjectOptional. Published performance and competition data.
performance.participatingCreatorCountintegerNumber of creators taking part in the campaign.
performance.totalViewsintegerTotal published views reported for the campaign.
performance.verificationStatusstringPublic verification state for the campaign brand.
insightsobjectRequired. Single-run measures derived from the campaign economics and performance data.
insights.dailyBudgetBurnobjectEstimated budget spent per day.
insights.dailyBudgetBurn.amountnumberEstimated daily budget amount.
insights.dailyBudgetBurn.currencystringCurrency used for the daily budget amount.
insights.estimatedRunwayDaysnumberOptional. Estimated days before the remaining budget runs out at the current pace.
insights.averagePayoutPerCreatorobjectOptional. Estimated average payout per participating creator.
insights.averagePayoutPerCreator.amountnumberEstimated average payout amount.
insights.averagePayoutPerCreator.currencystringCurrency used for the average payout.
insights.viewsPerCreatornumberOptional. Estimated average published views per creator.
insights.budgetPacenumberEstimated percentage of the total budget spent per day.
insights.opportunityScorenumberRequired. Score used to rank campaigns by current opportunity.
detailsobjectOptional. Extra public campaign details when the run provides them.
details.platformPayoutRulesarray of objectsPublic payout rules and payout limits for accepted platforms.
details.platformPayoutRules[].platformstringPlatform covered by the payout rule.
details.platformPayoutRules[].payoutPerThousandViewsobjectPayout for 1,000 views on that platform.
details.platformPayoutRules[].payoutPerThousandViews.amountnumberNormalized platform payout amount.
details.platformPayoutRules[].payoutPerThousandViews.currencystringCurrency used for the platform payout.
details.platformPayoutRules[].payoutPerThousandViews.displaystringOptional. Platform payout as shown by the source.
details.platformPayoutRules[].maximumPayoutobjectOptional. Maximum payout for the platform rule.
details.platformPayoutRules[].maximumPayout.amountnumberNormalized maximum payout amount.
details.platformPayoutRules[].maximumPayout.currencystringCurrency used for the maximum payout.
details.platformPayoutRules[].maximumPayout.displaystringOptional. Maximum payout as shown by the source.
details.publicResourceLinksarray of objectsPublic resource links for the campaign.
details.publicResourceLinks[].urlURI stringPublic resource URL.
details.publicResourceLinks[].titlestringOptional. Public title of the resource.
newSincePreviousRunbooleanOptional. Whether the campaign first appeared after the previous run when a comparison is available.
spendChangeobjectOptional. Change in spent budget since the previous run when a comparison is available.
spendChange.amountobjectRequired when spendChange is present. Normalized change in spent budget.
spendChange.amount.amountnumberChange in the spent budget amount.
spendChange.amount.currencystringCurrency used for the spend change.
spendChange.amount.displaystringOptional. Spend change as shown by the source or comparison.
spendChange.percentnumberOptional. Percentage change in spent budget.
viewHistoryarray of objectsOptional. Public campaign view activity by day or source reporting period.
viewHistory[].perioddate-time stringThe day or reporting period named by the source.
viewHistory[].viewsintegerPublic views reported for that period.
brandReputationobjectOptional. Public brand rating, review, membership, tenure, and link details.
brandReputation.ratingnumberPublic rating of the campaign brand.
brandReputation.reviewCountintegerNumber of public reviews for the brand.
brandReputation.memberCountintegerPublic number of members linked to the brand.
brandReputation.tenurestringPublic length of time the brand has been active, as shown by the source.
brandReputation.publicLinksarray of objectsPublic links connected to the brand.
brandReputation.publicLinks[].urlURI stringPublic URL connected to the brand.
brandReputation.publicLinks[].titlestringOptional. 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 🫡

These public Store actors cover closely related campaign research:

Made with ❤️ by Maxime Dupré