Product Hunt Scraper

Export Product Hunt launches by daily, weekly, monthly, or yearly leaderboard, date, topic, category, and product URL, with optional makers, votes, comments, reviews, launch history, media, built-with data, and website metadata.

Data fields

FieldTypeDescription
ranknumberRank exported in the dataset view.
titletextProduct exported in the dataset view.
taglinetextTagline exported in the dataset view.
productUrllinkProduct Hunt URL exported in the dataset view.
outboundUrllinkWebsite exported in the dataset view.
launchDatetextLaunch date exported in the dataset view.
votesCountnumberPoints exported in the dataset view.
commentsCountnumberComments exported in the dataset view.

Input preview

discoveryWindowDiscovery window
windowDateWindow date
maxItemsMaximum launches
topicsTopics
categoriesCategories
launchDateExact launch date (legacy compatible)

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Export Product Hunt launches from the latest feed, archived launch history, or explicit product URLs, with optional rankings, comments, review totals, media, launch history, and website metadata.

Use this Actor to collect startup launch data for market scans, lead lists, competitive research, newsletter research, product discovery, and daily launch dashboards. Results can be downloaded as CSV, JSON, Excel, XML, RSS, or used through the Apify Dataset API.

At a glance

  • Launch discovery: Export recent Product Hunt launches by date or Product Hunt URL.
  • Startup data rows: Collect product names, taglines, launch dates, Product Hunt links, outbound links, and cache status.
  • Freshness control: Use cache TTL and forceFresh settings to balance freshness and cost.
  • Lead research: Build startup, maker, product, and category research lists from public launch pages.
  • API export: Send launch rows to spreadsheets, CRMs, BI tools, research workflows, or AI agents.

What can it do?

Product Hunt Scraper exports public Product Hunt launch records and saves one dataset row per product.

  • Collect launch rows: Save product names, taglines, Product Hunt URLs, launch dates, and outbound links.
  • Use date input: Pull launches for a specific public launch date when available.
  • Reuse URLs: Paste Product Hunt URLs when you already know target launches.
  • Control freshness: Choose cache-aware runs or force fresh reads.
  • Export repeatable datasets: Use Apify downloads, API calls, schedules, webhooks, and integrations.

Common workflows

  • Startup lead lists: Build lists of recently launched products and companies.
  • Market research: Track launches in a category, trend, or competitor space.
  • Growth dashboards: Feed daily Product Hunt launch rows into spreadsheets or BI tools.
  • Newsletter research: Collect new product examples for editorial workflows.
  • Competitive monitoring: Watch launch dates, taglines, and outbound links over time.
  • AI enrichment: Send product rows into classification, summary, or lead-scoring workflows.

What data can you extract?

The Actor returns one dataset row per public Product Hunt product launch.

Field Description
title Product name
tagline Product tagline or short description
launchDate Product Hunt launch date when available
productUrl Public Product Hunt product URL
outboundUrl Outbound product website URL when enabled and available
source Exact feed, Hunted.Space history, or product fallback page used for the row
discoveryWindow Latest, daily, weekly, monthly, or yearly discovery mode
cacheStatus Whether the row came from cache or a fresh read
scrapedAt Timestamp when the row was saved

Example input

{
  "maxItems": 25,
  "launchDate": "2026-07-03",
  "includeRedirectUrl": true,
  "cacheTtlHours": 24,
  "forceFresh": false
}

Example output

{
  "title": "Example Product",
  "tagline": "A useful product for modern teams",
  "launchDate": "2026-07-03",
  "productUrl": "https://www.producthunt.com/products/example-product",
  "outboundUrl": "https://example.com",
  "source": "https://www.producthunt.com/feed",
  "discoveryWindow": "latest",
  "cacheStatus": "fresh",
  "scrapedAt": "2026-07-03T12:00:00.000Z"
}

How to run it

  1. Open the Actor on Apify.
  2. Set maxItems.
  3. Optionally choose a launch date or Product Hunt URLs.
  4. Decide whether to include outbound redirect URLs.
  5. Choose cache settings.
  6. Start the run and export the dataset.

Search tips

  • Use date-specific runs: Launch-date inputs make daily dashboards easier to compare.
  • Keep cache on for routine checks: Cache-aware runs reduce repeated work when freshness is not critical.
  • Force fresh for current reporting: Use forceFresh when you need the latest public launch rows.
  • Review outbound links: Enable includeRedirectUrl when lead research needs product websites.
  • Start small: Test with 10-25 rows before scheduling larger scans.

Limits and caveats

  • The Actor extracts publicly visible Product Hunt launch data only.
  • It does not collect private maker contact data, emails, or logged-in-only fields.
  • Freshness depends on public Product Hunt availability and cache settings.
  • Outbound links may be unavailable for some products.
  • Explicit URLs are isolated in bounded batches. If one URL is unavailable, successful URLs are still saved and RUN_SUMMARY.status is PARTIAL.
  • The default 240-second work budget leaves time to save RUN_CHECKPOINT and RUN_SUMMARY before the Actor's 300-second platform timeout. Increase both limits together only when a larger enrichment run needs it.
  • A completed filter with no matching launch fails loudly. A runtime cutoff after some rows have been saved exits successfully as a partial run and reports the remaining work.

API usage

Node.js:

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/product-hunt-scraper').call({
  discoveryWindow: 'daily',
  maxItems: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python:

import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/product-hunt-scraper").call(
    run_input={"discoveryWindow": "daily", "maxItems": 25}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

cURL:

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~product-hunt-scraper/runs?token=YOUR_APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"maxItems":25,"includeRedirectUrl":true}'

MCP and AI agents

This Actor can be used through the official Apify MCP server at https://mcp.apify.com.

For a focused single-Actor tool setup, use:

https://mcp.apify.com?tools=fetch_cat/product-hunt-scraper

Claude Code:

claude mcp add --transport http apify-product-hunt 'https://mcp.apify.com?tools=fetch_cat/product-hunt-scraper'

JSON MCP configuration:

{
  "mcpServers": {
    "apify-product-hunt": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=fetch_cat/product-hunt-scraper"
    }
  }
}

Use the same JSON keys shown in the input configuration table, such as maxItems, launchDate, startUrls, includeRedirectUrl, cacheTtlHours, and forceFresh.

Example prompts:

  • “Find the top Product Hunt launches from the latest published daily leaderboard.”
  • “Export launches in Artificial Intelligence and include launch history.”
  • “Inspect these Product Hunt product URLs and keep successful rows if one URL is unavailable.”

Support

If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.

Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.

Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses the inputs you provide and the public records needed to produce the documented dataset to produce the output dataset and sends requests to public Product Hunt pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.

Common questions

Questions and answers reused from the canonical actor README.

Can I scrape older Product Hunt launch dates?

Use launchDate when the public Product Hunt page exposes that date's launch data.

Does this collect emails?

No. It exports public launch metadata and links only.

How do I avoid stale rows?

Set forceFresh to true or reduce cacheTtlHours.

Can I export to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, JSON, Excel, XML, RSS, HTML, or accessed through the API.