# Product Hunt Scraper — Leaderboards & Launch Data (`brick_joey_yto/product-hunt-monitor`) Actor

Scrape Product Hunt daily/weekly/monthly leaderboards and full launch pages — votes, ranks, makers, hunter, links, topics, comments. Monitor for keyword launches. No API key. From $1/1,000 results.

- **URL**: https://apify.com/brick_joey_yto/product-hunt-monitor.md
- **Developed by:** [William Billings](https://apify.com/brick_joey_yto) (community)
- **Categories:** Social media, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 80.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 results

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Product Hunt Scraper — Leaderboards & Launch Data

Scrape Product Hunt's daily, weekly, and monthly leaderboards plus full launch detail pages — **votes, ranks, makers, hunter, links, topics, and comment counts** — anonymously, with no API key. Schedule the `watch` mode to get alerted when launches matching your keywords go live.

### What you get

**Leaderboard modes** (`daily` / `weekly` / `monthly`) — each launch row includes:

- `rank`, `weeklyRank`, `monthlyRank` — position on the board
- `name`, `slug`, `tagline` — product identity
- `votes` — upvote score at scrape time
- `topics` — Product Hunt topic slugs (e.g. `artificial-intelligence`, `developer-tools`)
- `featuredAt`, `url`, `productSlug`

**Product mode** — full launch detail for any slug:

- `votes`, `dailyRank`, `weeklyRank`, `commentsCount`
- `makers` — name, username, headline for every maker
- `hunter` — who hunted the product
- `links` — website, Twitter/X, LinkedIn, app stores
- `website`, `pricingType`, `topics`, `description`

**Watch mode** — scans the last N daily leaderboards (up to 31) and returns only launches whose name/tagline/topics match your keywords, with `matchedKeywords` on each row.

### Use cases

- **Competitive intelligence** — watch a category keyword (`"crm"`, `"ai agent"`) and get every new launch in that space as it trends
- **Lead generation** — scrape daily #1–#35 products; makers' Twitter/LinkedIn links come along for outreach
- **Launch tracking** — monitor a competitor's product slug for vote/rank movement by scheduling `product` mode daily
- **Trend research** — pull monthly leaderboards to see which categories dominate
- **Investor scouting** — founders launching on PH are actively building; watch keywords in your thesis area

### Input

| Field                | Type   | Default | Description                                                              |
| -------------------- | ------ | ------- | ------------------------------------------------------------------------ |
| `mode`               | string | `daily` | `daily`, `weekly`, `monthly`, `product`, or `watch`                      |
| `date`               | string | today   | `YYYY-MM-DD` — board date (daily), ISO week (weekly), or month (monthly) |
| `slugs`              | array  | —       | Product slugs for `product` mode                                         |
| `queries`            | array  | —       | Keywords for `watch` mode                                                |
| `daysBack`           | int    | `7`     | Daily boards to scan in `watch` mode (1–31)                              |
| `maxResults`         | int    | `35`    | Max rows returned                                                        |
| `proxyConfiguration` | object | —       | Optional Apify proxy                                                     |

### Example

```json
{
  "mode": "watch",
  "queries": ["ai agent", "devtools"],
  "daysBack": 14,
  "maxResults": 50
}
```

→ every launch in the last two weeks mentioning "ai agent" or "devtools" in its name, tagline, or topics.

### Pricing

**$1.00 per 1,000 results** (pay-per-event). A full daily leaderboard (~35 launches) costs about $0.035. A 31-day watch scan costs ~$1. Scheduled monitors are cheap.

### Notes

- All data comes from public Product Hunt pages — no API key or account needed
- Product Hunt blocks datacenter IPs — the actor ships with **residential proxy on by default** (charged at Apify's standard residential rate, ~$0.005/page)
- Vote counts reflect the moment of scrape — schedule `product` mode daily to build a vote-history time series

### Example output

```json
{
  "recordType": "watch-hit",
  "board": "daily",
  "rank": 1,
  "weeklyRank": 18,
  "monthlyRank": 65,
  "name": "ZooWork",
  "slug": "zoowork",
  "tagline": "The AI agent delivery platform for FDEs and domain experts",
  "votes": 243,
  "productSlug": "zoowork",
  "productId": 1326155,
  "topics": [
    "productivity",
    "developer-tools",
    "artificial-intelligence"
  ],
  "featuredAt": "2026-10-03T00:01:00-07:00",
  "url": "https://www.producthunt.com/products/zoowork"
}
```

### FAQ

**Does Product Hunt Monitor need a login or API key?** No — every row comes from public endpoints. Provide a proxy only if your network is heavily rate-limited.

**How do I monitor on a schedule?** Attach the actor to an Apify Schedule (daily/weekly) and use the watch/monitor mode if present — each run emits a fresh, diff-able dataset.

**What does each row contain?** See the output fields table above; every row carries a `scrapedAt` timestamp so datasets can be deduped across runs.

**Is it legal to scrape this data?** The actor only accesses publicly available data — the same pages/APIs a browser sees. Scraping public data for research, monitoring, and analysis is common practice, but platform Terms of Service and the rules in your jurisdiction still apply to how you use it. Consult legal counsel for your specific case.

### More from this developer

**Monitors & business intel:** [ATS Jobs Monitor](https://apify.com/brick_joey_yto/ats-jobs-monitor) · [Sports Scores & Odds Monitor](https://apify.com/brick_joey_yto/sports-scores-odds-monitor) · [Prediction Markets Monitor](https://apify.com/brick_joey_yto/prediction-markets-monitor) · [Crypto Token Monitor](https://apify.com/brick_joey_yto/crypto-token-monitor) · [Crypto Derivatives Monitor](https://apify.com/brick_joey_yto/crypto-derivatives-monitor) · [Google News Monitor](https://apify.com/brick_joey_yto/google-news-monitor) · [App Store Monitor](https://apify.com/brick_joey_yto/app-store-monitor) · [Walmart Product Monitor](https://apify.com/brick_joey_yto/walmart-product-monitor) · [Pump.fun Monitor](https://apify.com/brick_joey_yto/memecoin-launch-monitor) · [StockTwits Scraper](https://apify.com/brick_joey_yto/stocktwits-scraper) · [Yahoo Finance Scraper](https://apify.com/brick_joey_yto/yahoo-finance-scraper) · [Hacker News Monitor](https://apify.com/brick_joey_yto/hackernews-monitor) · [AI Visibility Tracker](https://apify.com/brick_joey_yto/ai-brand-monitor)

**Alt-social & OSINT:** [Gab Scraper](https://apify.com/brick_joey_yto/gab-search-scraper) · [BitChute Scraper](https://apify.com/brick_joey_yto/bitchute-search-scraper) · [Truth Social Scraper](https://apify.com/brick_joey_yto/truth-social-scraper) · [Telegram Scraper](https://apify.com/brick_joey_yto/telegram-scraper) · [Discord Scraper](https://apify.com/brick_joey_yto/discord-scraper) · [Rumble Video Scraper](https://apify.com/brick_joey_yto/rumble-video-scraper) · [Odysee Scraper](https://apify.com/brick_joey_yto/odysee-scraper) · [Kick Scraper](https://apify.com/brick_joey_yto/kick-scraper) · [4chan Scraper](https://apify.com/brick_joey_yto/4chan-scraper) · [Bitcointalk Scraper](https://apify.com/brick_joey_yto/bitcointalk-scraper) · [Xiaohongshu / RedNote Scraper](https://apify.com/brick_joey_yto/xiaohongshu-scraper)

**Creator platforms:** [Bluesky Scraper](https://apify.com/brick_joey_yto/bluesky-search-scraper) · [Threads Scraper](https://apify.com/brick_joey_yto/threads-profile-scraper) · [Farcaster Scraper](https://apify.com/brick_joey_yto/farcaster-scraper) · [Spoutible Scraper](https://apify.com/brick_joey_yto/spoutible-scraper) · [Pixelfed Scraper](https://apify.com/brick_joey_yto/pixelfed-scraper) · [Substack Notes Scraper](https://apify.com/brick_joey_yto/substack-notes-scraper) · [Dailymotion Scraper](https://apify.com/brick_joey_yto/dailymotion-scraper) · [Roblox Scraper](https://apify.com/brick_joey_yto/roblox-scraper)

**Gov & regulatory:** [Federal Register Monitor](https://apify.com/brick_joey_yto/federal-register-monitor) · [Federal Court Monitor](https://apify.com/brick_joey_yto/federal-court-monitor) · [FDA Compliance Monitor](https://apify.com/brick_joey_yto/fda-compliance-monitor) · [Clinical Trials Monitor](https://apify.com/brick_joey_yto/clinical-trials-monitor) · [Lobbying Monitor](https://apify.com/brick_joey_yto/lobbying-monitor)

# Actor input Schema

## `mode` (type: `string`):

What to scrape. `daily`/`weekly`/`monthly` = leaderboard pages; `product` = full launch detail pages (makers, links, comments); `watch` = scan recent daily boards for keyword matches.

## `date` (type: `string`):

Board date as YYYY-MM-DD. Daily = that day's board, weekly = the ISO week containing it, monthly = that month. Empty = today.

## `slugs` (type: `array`):

Product Hunt slugs to fetch full launch details for — e.g. \["notion", "zoowork"]. The slug is the last part of producthunt.com/products/<slug>.

## `queries` (type: `array`):

Keywords matched against launch name, tagline and topics — e.g. \["ai agent", "crm", "devtools"]. Case-insensitive.

## `daysBack` (type: `integer`):

How many past daily leaderboards to scan for keyword matches (1-31).

## `maxResults` (type: `integer`):

Maximum rows to return.

## `proxyConfiguration` (type: `object`):

Residential proxy is required — Product Hunt blocks datacenter IPs. Default on.

## Actor input object example

```json
{
  "mode": "daily",
  "daysBack": 7,
  "maxResults": 35,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing Product Hunt launches

# 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 = {
    "mode": "daily",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("brick_joey_yto/product-hunt-monitor").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 = {
    "mode": "daily",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("brick_joey_yto/product-hunt-monitor").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 '{
  "mode": "daily",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call brick_joey_yto/product-hunt-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,brick_joey_yto/product-hunt-monitor"
        }
    }
}
```

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/Qg1WVg5EWShdfY9vg/builds/MoBU5qjoJ12HAeQKs/openapi.json
