# Whop Campaign Intelligence & Marketplace Scraper (`hypebridge/whop-campaign-intelligence`) Actor

Collects public Content Rewards campaigns, searches selected parts of the Whop catalog, and joins campaigns to public Whop company profiles. It is designed for campaign research, creator outreach, competitor monitoring, and bounded marketplace discovery

- **URL**: https://apify.com/hypebridge/whop-campaign-intelligence.md
- **Developed by:** [Hypebridge](https://apify.com/hypebridge) (community)
- **Categories:** Developer tools, Other, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.007 / detailed campaign

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/platform/actors/running/actors-in-store#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

### What does Whop Campaign Intelligence & Marketplace Scraper do?

**Whop Campaign Intelligence & Marketplace Scraper** collects public Content Rewards campaigns, searches selected parts of the Whop catalog, and joins campaigns to public Whop company profiles. It is designed for campaign research, creator outreach, competitor monitoring, and bounded marketplace discovery—not as a claim to enumerate every Whop product.

The Actor offers three focused modes:

| Mode | Best for | Result type |
| --- | --- | --- |
| Campaigns | Tracking active or completed Content Rewards opportunities | `campaign` |
| Catalog | Keyword and category research | `catalog` |
| Enriched leads | Joining campaigns to public company owners, websites, social links, and visible products | `lead` |

Campaigns and Enriched leads are mutually exclusive because each lead already contains its campaign. Catalog can be combined with either mode. A strict `maxItems` limit and per-source caps keep every run bounded.

By default, the Actor returns up to 25 active campaigns with full requirements, resources, payouts, views, and performance metrics. This is the most useful first-run output while keeping detail requests and cost bounded.

### Why scrape Whop and Content Rewards?

- **Campaign intelligence**: Compare public budgets, spend, payout rates, platforms, requirements, and performance.
- **Creator and company research**: Find the public company, owner, website, social links, and visible products behind a campaign.
- **Marketplace discovery**: Explore keyword and category slices with explicit pagination and source provenance.
- **Monitoring and analysis**: Export normalized JSON, CSV, or Excel for dashboards and recurring research workflows.

### What data can the Actor extract?

| Field | Description |
| --- | --- |
| `recordType` | `campaign`, `catalog`, or `lead` |
| `title`, `brand`, `status` | Public identity and campaign status |
| `budget`, `pricePerView`, `metrics` | Normalized public campaign values |
| `requirements`, `resources`, `payouts` | Full campaign details when enabled |
| `company`, `owner`, `socialLinks` | Public Whop company enrichment |
| `websiteDomain` | Domain derived only from Whop's returned website link |
| `pricing`, `visibleProducts` | Public catalog and company offers |
| `discovery` | Query, category, page, cursor, and reported source total |
| `sourceUrl`, `scrapedAt` | Traceability for each result |

Unknown values remain `null` or empty arrays. The Actor does not guess email addresses or social accounts. Public links retain their campaign provenance and are never presented as verified company profiles.

### How to scrape Whop campaigns

1. Open the Actor and keep **Campaigns** selected.
2. Use the default Content Rewards discovery URL or paste a direct campaign URL.
3. Keep **Get full campaign details** enabled for complete records, or disable it for a faster broad scan.
4. Increase **Max items** and the detail cap only when you need a larger run.
5. Start the Actor and download results from the Dataset tab.

#### Faster broad scan without details

```json
{
  "startUrls": [{ "url": "https://contentrewards.com/discover" }],
  "modes": ["campaigns"],
  "getCampaignDetails": false,
  "maxItems": 50
}
```

#### Detailed campaign search

```json
{
  "startUrls": [{ "url": "https://contentrewards.com/discover" }],
  "modes": ["campaigns"],
  "campaignSearchQueries": ["gaming"],
  "getCampaignDetails": true,
  "maxCampaignDetails": 25,
  "maxItems": 25
}
```

#### Catalog research and enriched leads

Catalog can be combined with Enriched leads while the global output limit is divided deterministically between them.

```json
{
  "startUrls": [{ "url": "https://contentrewards.com/discover" }],
  "modes": ["enrichedLeads", "catalog"],
  "catalogSearchQueries": ["video editing"],
  "maxEnrichments": 50,
  "maxListings": 50,
  "maxPagesPerQuery": 3,
  "maxItems": 100
}
```

### Input limits and supported URLs

The Actor accepts Content Rewards discovery and campaign detail URLs, Whop search URLs, current `/discover/browse/...` category URLs, and direct public Whop company/product URLs. Invalid individual URLs are skipped with a warning.

Important bounds include `maxItems` (1,000), `maxCampaigns` (1,000), `maxListings` (1,000), `maxCampaignDetails` (500), `maxEnrichments` (500), `maxPagesPerQuery` (50), and `maxResponseBytes` (24 MB). Completed campaigns are off by default because that collection can be large.

The Actor uses direct public requests and does not accept proxy configuration, so runs cannot incur user-selected proxy traffic charges.

### Output and run metadata

Results are stored in the default Dataset. `RUN-METADATA` in the default key-value store explains selected limits, allocation, queries, category pages, duplicates, truncation, billing events, and sanitized error samples. This makes it possible to distinguish an exhausted source from a run stopped by a page, mode, or global cap.

Sample campaign output:

```json
{
  "recordType": "campaign",
  "campaignId": "00000000-0000-4000-8000-000000000000",
  "brand": "Example Brand",
  "title": "Example Short-Form Campaign",
  "status": "active",
  "platforms": ["tiktok", "instagram"],
  "budget": { "total": 10000, "spent": 2500, "currency": "USD" },
  "detailLevel": "basic",
  "sourceUrl": "https://contentrewards.com/discover/00000000-0000-4000-8000-000000000000"
}
```

### How much does it cost?

The Actor uses pay-per-event pricing. Basic campaigns, detailed campaigns, catalog items, and completed enriched leads use separate billing events so the Console can show the configured price before a run. A lead whose company is explicitly not found is returned for traceability but is not charged. Use `maxItems` and the source-specific caps to control the maximum work and output.

### Tips and limitations

- Start with the default 25 detailed campaigns. Disable details only when you need a faster, broader scan.
- Catalog search totals are ranking estimates, not proof of exhaustive marketplace inventory.
- Current Whop category URLs use `/discover/browse/`; stale category URL shapes are rejected rather than guessed.
- Direct campaign and company URLs always request complete detail even when the campaign detail toggle is off.
- Only publicly available data is collected. No login, private community content, or private user data is accessed.

### FAQ

#### Can I select Campaigns and Enriched leads together?

No. A lead already embeds the campaign, so selecting both would duplicate data and billing. Combine Catalog with either one instead.

#### Why did my run return fewer than Max items?

The selected source may have been exhausted, a per-source cap may have been reached, or records may have been deduplicated. Check `RUN-METADATA` for the exact stop reason.

#### Is scraping Whop legal?

The Actor extracts publicly available data. Always review the applicable terms and laws and ensure you have a legitimate purpose.

### Support

- Bugs and feature requests: use the Actor's **Issues** tab.
- Programmatic access: use the **API** tab.

> **Disclaimer**: Results can contain publicly shared personal data. Personal data is protected by the GDPR and other laws. Do not process it without a legitimate reason; consult legal counsel when unsure.

# Actor input Schema

## `startUrls` (type: `array`):

Whop search, browse, company/product, Content Rewards discovery, or campaign detail URLs. Direct detail URLs are always fully enriched.

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

Maximum records across all selected modes.

## `getCampaignDetails` (type: `boolean`):

Fetch requirements, resources, payouts, views, daily metrics, and top earners. Direct campaign URLs are always detailed.

## `modes` (type: `array`):

Campaigns returns campaign records; Catalog searches Whop; Enriched leads joins campaigns to public company data. Campaigns and Enriched leads cannot be combined.

## `campaignSearchQueries` (type: `array`):

Optional public Content Rewards searches.

## `catalogSearchQueries` (type: `array`):

Keywords for bounded Whop catalog search.

## `categoryUrls` (type: `array`):

Whop /discover/browse category URLs. Only Max categories are accepted.

## `includeCompletedCampaigns` (type: `boolean`):

Also fetch the separate, large completed campaign collection.

## `maxSearchQueries` (type: `integer`):

Maximum combined campaign and catalog query count.

## `maxCategories` (type: `integer`):

Maximum Whop categories scheduled.

## `maxPagesPerQuery` (type: `integer`):

Hard page-number pagination cap per catalog query.

## `maxListings` (type: `integer`):

Maximum catalog candidates collected across searches and categories.

## `maxCampaigns` (type: `integer`):

Maximum unique campaigns collected before detail scheduling.

## `maxCampaignDetails` (type: `integer`):

Maximum unique campaigns enriched with full detail.

## `maxEnrichments` (type: `integer`):

Maximum campaign companies joined in Enriched leads mode.

## `maxConcurrency` (type: `integer`):

Global concurrency cap; Content Rewards requests remain capped at two.

## `maxResponseBytes` (type: `integer`):

Abort an unexpectedly large campaign response before it exhausts memory.

## `debugMode` (type: `boolean`):

Enable verbose bounded diagnostics.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://contentrewards.com/discover"
    }
  ],
  "maxItems": 25,
  "getCampaignDetails": true,
  "modes": [
    "campaigns"
  ],
  "campaignSearchQueries": [],
  "catalogSearchQueries": [],
  "categoryUrls": [],
  "includeCompletedCampaigns": false,
  "maxSearchQueries": 5,
  "maxCategories": 10,
  "maxPagesPerQuery": 5,
  "maxListings": 500,
  "maxCampaigns": 500,
  "maxCampaignDetails": 25,
  "maxEnrichments": 100,
  "maxConcurrency": 5,
  "maxResponseBytes": 12582912,
  "debugMode": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

All campaign, catalog, and enriched lead fields.

## `overview` (type: `string`):

Compact cross-mode result view.

## `files` (type: `string`):

RUN-METADATA and bounded debug artifacts.

# 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 = {
    "startUrls": [
        {
            "url": "https://contentrewards.com/discover"
        }
    ],
    "maxItems": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("hypebridge/whop-campaign-intelligence").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 = {
    "startUrls": [{ "url": "https://contentrewards.com/discover" }],
    "maxItems": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("hypebridge/whop-campaign-intelligence").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 '{
  "startUrls": [
    {
      "url": "https://contentrewards.com/discover"
    }
  ],
  "maxItems": 25
}' |
apify call hypebridge/whop-campaign-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hypebridge/whop-campaign-intelligence"
        }
    }
}

```

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/jD4xGn5nPuPJJtzf7/builds/m9ve70xiGeZymK8VM/openapi.json
