# Whop Content Rewards + Vyro Clipping Campaigns Scraper (`literate_universe/whop-content-rewards-scraper`) Actor

Scrape live clipping / UGC campaign boards (Whop Content Rewards, Vyro): CPM pay rates, budget left, freshness, platforms, open-vs-application. Ranked by opportunity score. No login required.

- **URL**: https://apify.com/literate\_universe/whop-content-rewards-scraper.md
- **Developed by:** [John Rutherford](https://apify.com/literate_universe) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 75.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 campaign rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Whop Content Rewards + Vyro Clipping Campaigns Scraper

Every live **clipping / UGC campaign** on the public boards of **Whop Content Rewards** (contentrewards.com) and **Vyro** (vyro.com), normalised to one row each and ranked by opportunity. No login, no account.

Built for clippers, clipping agencies and creator-economy researchers who want to know, right now, which campaigns pay the most per 1,000 views, which still have budget, and which are open without an application.

### What you get

| Field | Meaning |
|---|---|
| `source` | `ContentRewards` or `Vyro` |
| `title`, `url`, `id` | Campaign |
| `cpm_usd_per_1k` | Advertised pay per 1,000 views, USD |
| `net_cpm_usd_per_1k`, `venue_fee_pct` | Pay after the venue's creator fee (Content Rewards takes 10%; Vyro 0%) |
| `budget_left_pct` | Remaining budget, where the venue publishes it |
| `funded_ago`, `age_days` | How fresh the campaign is |
| `requires_application` | `false` = join instantly |
| `platforms` | e.g. `tiktok`, `youtube`, `instagram`, `x` |
| `opportunity_score` | Net CPM weighted by freshness, budget left and openness. Higher is better. |

Sample row:

```json
{
  "source": "ContentRewards",
  "title": "Fundingpips Campaign",
  "cpm_usd_per_1k": 5,
  "net_cpm_usd_per_1k": 4.5,
  "budget_left_pct": 36,
  "funded_ago": "3mo",
  "requires_application": false,
  "platforms": ["instagram", "tiktok", "youtube"],
  "opportunity_score": 1.58,
  "url": "https://contentrewards.com/discover/..."
}
```

### Input

| Option | What it does |
|---|---|
| **Venues** | Content Rewards, Vyro, or both (default) |
| **Min CPM** | Skip campaigns below this pay rate |
| **Open campaigns only** | Skip application-gated campaigns |
| **Platforms** | Keep campaigns accepting at least one of these |
| **Min budget left %** | Skip nearly-depleted campaigns |
| **Max campaigns** | Stop after N rows |

### Pricing

Pay per event: one small charge per campaign row. Filters apply before charging.

### Notes and limits

- Content Rewards: reads the campaigns embedded in the public discover page (currently the first page, around 50 campaigns). Deeper pages load through a private endpoint and are not included yet.
- Vyro: reads the public campaigns page (a handful of campaigns at any time).
- Rates, budgets and freshness are whatever the venue displays at scrape time. Venues can change rates mid-campaign.
- Schedule it hourly to catch new campaigns in the first 24 to 48 hours, which is where the best budget is.

# Actor input Schema

## `venues` (type: `array`):

Which campaign boards to scrape.

## `minCpm` (type: `number`):

Skip campaigns paying less than this per 1k views.

## `openOnly` (type: `boolean`):

Skip campaigns that require an application to join.

## `platforms` (type: `array`):

Keep only campaigns accepting at least one of these platforms (e.g. tiktok, youtube, instagram, x). Empty = all.

## `minBudgetLeftPct` (type: `integer`):

Skip campaigns whose remaining budget is below this percentage. Venues that do not publish budget are kept.

## `maxItems` (type: `integer`):

Stop after this many campaigns.

## Actor input object example

```json
{
  "venues": [
    "contentrewards",
    "vyro"
  ],
  "minCpm": 0,
  "openOnly": false,
  "minBudgetLeftPct": 0,
  "maxItems": 1000
}
```

# Actor output Schema

## `campaigns` (type: `string`):

All campaign rows as JSON. Append ?format=csv for CSV.

## `summary` (type: `string`):

Per-venue counts and the scrape timestamp.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("literate_universe/whop-content-rewards-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("literate_universe/whop-content-rewards-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call literate_universe/whop-content-rewards-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,literate_universe/whop-content-rewards-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/gkno7PFuoFhHNsKjQ/builds/H2psB0pMCUaB33aaK/openapi.json
