Product Hunt Scraper (with Emails)
Pricing
from $0.40 / 1,000 product scrapeds
Product Hunt Scraper (with Emails)
Scrape Product Hunt launches, leaderboards, categories, and topics. Extract product names, taglines, upvotes, ranks, makers, reviews, comments, and emails. Export as JSON, CSV, Excel.
Pricing
from $0.40 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Product Hunt Scraper
Extract Product Hunt launches, leaderboard rankings, and product data from daily, weekly, monthly, yearly, category, and topic pages — including upvotes, comments, reviews, makers, built-with tools, launch history, and optional website email enrichment.
| Scrape any Product Hunt leaderboard or category page — get product names, taglines, upvotes, ranks, maker profiles, reviews, comments, launch history, and website emails in structured rows ready for lead generation, market research, or competitor monitoring. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Product Hunt Scraper (parsebird/product-hunt-scraper) extracts Product Hunt launches and product data. Call via ApifyClient: client.actor("parsebird/product-hunt-scraper").call(run_input={"maxNbItemsToScrape": 25}). Inputs: maxNbItemsToScrape (int, 0=all), shouldIncludePromotedListings (bool), shouldScrapeOnlyFeaturedLaunches (bool), shouldScrapeListingDetails (bool — adds comments, reviews, built-with, launches), shouldScrapeWebsite (bool — fetches external website + emails), startDate (YYYY-MM-DD), endDate (YYYY-MM-DD), startWeek (YYYY-WW), endWeek (YYYY-WW), startMonth (YYYY-MM), endMonth (YYYY-MM), startYear (int), endYear (int), categorySlugs (string[]), topicSlugs (string[]), productHuntPageUrls (string[]), proxyConfiguration (object). Output fields: isPromoted, name, url, tagline, categories, followers, upvotesCount, commentsCount, reviewsCount, launchesCount, dayRank, weekRank, monthRank, yearRank, launchDate, description, links, xAccountHandle, imageUrls, videoUrls, tags, team, builtWith, launches, comments, reviews, website (url, title, description, emails, rawText). Leave all target sections empty for today's California-time daily leaderboard. Get API token: https://console.apify.com/account#/integrations. Pricing: $0.50/1,000 products (standard), $0.40/1,000 (Gold). Listing details: $1.00/1,000 (standard), $0.80/1,000 (Gold). Email enrichment: $2.00/1,000 (standard), $1.60/1,000 (Gold).
What does Product Hunt Scraper do?
Product Hunt Scraper extracts structured product data from Product Hunt leaderboards, categories, and topics at scale — no API key or account required.
- 🗓️ Daily, weekly, monthly, and yearly leaderboards — Scrape any Product Hunt leaderboard page with date ranges
- 🏷️ Category and topic pages — Extract products from any Product Hunt category or topic by slug
- 🔗 Direct URL support — Paste leaderboard, category, or topic page URLs directly
- 📊 Rankings and engagement — Get day/week/month/year ranks, upvotes, comments, and follower counts
- 💬 Listing details enrichment — One toggle to add comments, reviews, built-with tools, and launch history per product
- 🌐 Website enrichment with emails — Three-pass email discovery: fetches main page, contact/about pages, and deep links to find public email addresses
- ⚡ Defaults to today — Leave all fields empty and the actor scrapes today's California-time daily leaderboard automatically
- 📦 Export anywhere — Download as JSON, CSV, Excel, or HTML directly from the Apify platform
What data can you extract from Product Hunt?
Each product row includes core Product Hunt data with optional enrichments. Missing scalars are null and missing lists are [].
| Data Field | Type | Description |
|---|---|---|
| isPromoted | boolean | true for sponsored Product Hunt placements, false for organic |
| name | string | Product name from Product Hunt |
| url | string | Product Hunt product URL |
| tagline | string | One-line product pitch |
| description | string | Full product description |
| categories | string[] | Product Hunt categories/topics for the product |
| upvotesCount | number | Total upvote count |
| followers | number | Product follower count |
| commentsCount | number | Total comment count |
| reviewsCount | number | Total review count |
| launchesCount | number | Number of Product Hunt launches |
| dayRank, weekRank, monthRank, yearRank | number | Leaderboard rankings |
| launchDate | string | ISO YYYY-MM-DD launch date |
| links | string[] | External company links from Product Hunt |
| xAccountHandle | string | X (Twitter) account handle |
| imageUrls | string[] | Product Hunt gallery images |
| videoUrls | string[] | Product Hunt video links |
| team | array | Maker/team member objects with name, username, avatar |
| builtWith | array | Built-with product objects (with listing details enrichment) |
| launches | array | Launch history with ranks, dates, upvotes (with listing details enrichment) |
| comments | array | Comment objects with user, text, upvotes (with listing details enrichment) |
| reviews | array | Review objects with user, rating, text (with listing details enrichment) |
| website | object | External website with url, title, description, emails, rawText (with website enrichment) |
How to scrape Product Hunt
- Open the Actor — Go to Product Hunt Scraper on Apify Console
- Choose your target — Pick one target section: daily dates, weekly, monthly, yearly, category slugs, topic slugs, or page URLs. Leave all empty for today's leaderboard.
- Set your limit — Enter a number in "Maximum items across the whole run" (prefilled to 25 for a starter run)
- Toggle enrichments — Enable "Listing details" for comments, reviews, built-with, and launches. Enable "Website enrichment" for email extraction.
- Click Start — The Actor scrapes Product Hunt pages and emits one row per product to your dataset
- Download your data — Export results as JSON, CSV, Excel, or HTML from the dataset tab
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| maxNbItemsToScrape | integer | No | 0 (all) | Cap across the whole run. Prefilled to 25. |
| shouldIncludePromotedListings | boolean | No | false | Include sponsored Product Hunt placements |
| shouldScrapeOnlyFeaturedLaunches | boolean | No | false | Keep only featured launches |
| shouldScrapeListingDetails | boolean | No | false | Add comments, reviews, built-with, launches |
| shouldScrapeWebsite | boolean | No | false | Fetch external website + emails |
| startDate / endDate | string | No | — | Daily pages in YYYY-MM-DD format |
| startWeek / endWeek | string | No | — | Weekly pages in YYYY-WW format |
| startMonth / endMonth | string | No | — | Monthly pages in YYYY-MM format |
| startYear / endYear | integer | No | — | Yearly pages |
| categorySlugs | string[] | No | [] | Product Hunt category slugs |
| topicSlugs | string[] | No | [] | Product Hunt topic slugs |
| productHuntPageUrls | string[] | No | [] | Direct leaderboard/category/topic URLs |
| proxyConfiguration | object | No | Datacenter | Proxy settings (datacenter by default) |
Output example
This example shows a product extracted from the daily leaderboard with all enrichments enabled:
{"isPromoted": false,"thumbnailUrl": "https://ph-files.imgix.net/4a7fea51-7b89-4347-9455-8423058ba07a.png?auto=compress&codec=mozjpeg&cs=strip&auto=format&w=64&h=64&fit=crop&frame=1","name": "Mina Meeting Assistant","url": "https://www.producthunt.com/products/mina-meeting-assistant","tagline": "Your AI Teammate now responds and executes during your calls","categories": ["Productivity", "Artificial Intelligence", "No-Code"],"followers": 1629,"commentsCount": 138,"reviewsCount": 5,"launchesCount": 1,"dayRank": 1,"weekRank": 8,"monthRank": 16,"yearRank": null,"launchDate": "2026-06-01","description": "Mina is an AI meeting assistant that actively participates in meetings, responds in real time, pulls context from your tools, and helps move work forward while the conversation is still happening.","upvotesCount": 502,"links": ["https://getmina.ai"],"xAccountHandle": "@heyminaai","imageUrls": ["https://ph-files.imgix.net/4a7fea51-7b89-4347-9455-8423058ba07a.png?auto=format", "..."],"videoUrls": [],"tags": ["Productivity", "Artificial Intelligence", "No-Code"],"team": [],"builtWith": [],"launches": [],"comments": [],"reviews": [],"website": {"url": "https://getmina.ai","title": "Mina - AI Meeting Assistant | Talks, Listens & Works for You","description": "Mina, your AI Meeting Assistant - listens, speaks, follows directions & executes tasks live to make every meeting more productive.","emails": ["hello@getmina.ai"],"rawText": "..."}}
Download results in JSON, CSV, Excel, or HTML directly from the Apify dataset.
Tips for scraping Product Hunt leaderboards and categories
Pick one target section per run. Start date, Start week, Start month, and Start year open date-based leaderboard pages. Category slugs and Topic slugs open slug pages. Product Hunt page URLs can mix supported daily, weekly, monthly, yearly, category, and topic URLs in one run. Leave every target section empty for today's California-time daily leaderboard, or fill only one target section.
Product Hunt shows ~20 products per leaderboard page. Daily leaderboard pages include approximately 20 items in their server-rendered payload (typically 17 organic + 3 promoted). If you need more than 20 products, use date ranges to scrape multiple days, or enable promoted listings.
Scrape a single past leaderboard day in depth: Set Start date to 2026-03-20, Maximum items to 3, and enable both enrichment toggles. This is the quickest way to inspect one historical Product Hunt daily leaderboard with full product details.
Scrape a Product Hunt category: Set Category slugs to ["ai-code-editors"] and Maximum items to 20. Category pages return products sorted by relevance on Product Hunt.
Scrape multiple Product Hunt pages in one run: Set Product Hunt page URLs to ["https://www.producthunt.com/leaderboard/daily/2026/5/1/all", "https://www.producthunt.com/topics/developer-tools"] and Maximum items to 25. The actor scrapes each supported page sequentially.
First run: Leave every target section empty, set Maximum items to 5, and leave enrichments off. This returns today's top Product Hunt launches in seconds with minimal cost.
How much does it cost to scrape Product Hunt?
Product Hunt Scraper uses pay-per-event pricing — you only pay for products delivered, not compute time.
| Event | Free / Silver / Bronze | Gold |
|---|---|---|
| Scraped product | $0.50 / 1,000 | $0.40 / 1,000 |
| Listing details (add-on) | $1.00 / 1,000 | $0.80 / 1,000 |
| Email enrichment (add-on) | $2.00 / 1,000 | $1.60 / 1,000 |
- Scraped product — Charged per product row saved to your dataset.
- Listing details — Charged when the listing details toggle is enabled (adds comments, reviews, built-with, launches).
- Email enrichment — Charged only when website enrichment finds at least one public email address for a saved row. If no emails are found, no email enrichment charge applies.
Example: Scraping 1,000 Product Hunt products from daily leaderboards costs $0.50. Adding listing details costs an additional $1.00. Adding website enrichment and finding emails on 200 of those products adds $0.40 for email enrichment, totaling $1.90.
New users get a free trial with $5 of platform credits to test any Actor.
See the Pricing tab for current rates.
Programmatic API usage
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run_input = {"startDate": "2026-06-01","maxNbItemsToScrape": 25,"shouldScrapeListingDetails": True,"shouldScrapeWebsite": True,}run = client.actor("parsebird/product-hunt-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['dayRank']}. {item['name']} — {item['upvotesCount']} upvotes")
JavaScript
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "<YOUR_API_TOKEN>" });const input = {startDate: "2026-06-01",maxNbItemsToScrape: 25,shouldScrapeListingDetails: true,shouldScrapeWebsite: true,};const run = await client.actor("parsebird/product-hunt-scraper").call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {console.log(`${item.dayRank}. ${item.name} — ${item.upvotesCount} upvotes`);});
Get your API token at Apify Console → Integrations.
Use Apify scheduling to run daily, weekly, or at any interval. Combine with integrations to push results to Google Sheets, Slack, webhooks, or your database.
Is it legal to scrape Product Hunt?
Product Hunt Scraper accesses publicly available product data from Product Hunt's leaderboard, category, and topic pages. All information extracted is visible to any visitor of producthunt.com without authentication.
This Actor does not access private accounts, bypass authentication, or collect non-public personal data. It processes only the same public product launch data available to any browser visitor.
As with any data collection tool, users should review Product Hunt's terms of service and ensure their specific use case complies with applicable regulations. For more context on web scraping legality, see Apify's guide on web scraping and the law.
Related Actors
Explore more ParseBird data extraction tools:
- Pappers.fr Company Scraper — Extract French company data with SIREN, directors, and legal forms
- Fotocasa Scraper — Scrape Spanish real estate listings from Fotocasa.es
- HTTP Request Actor — Send custom HTTP requests with full control over headers, method, and body
- Data Deduplicator — Remove duplicate records from any Apify dataset
- Data Cleaner — Clean, transform, and validate dataset records
FAQ
What Product Hunt pages can I scrape? You can scrape daily, weekly, monthly, and yearly leaderboard pages, category pages, and topic pages. Product URLs, post URLs, search pages, and the homepage are not supported — only pages that list multiple products.
Do I need a Product Hunt API key? No. Product Hunt Scraper extracts data from Product Hunt's public web pages. No API key, developer token, or Product Hunt account is required.
How fresh is the data? Every run scrapes Product Hunt live. Results reflect the page at run time — upvotes, ranks, and comments are current as of the moment the actor runs.
Can I scrape historical Product Hunt leaderboards?
Yes. Product Hunt keeps historical leaderboard pages. Set Start date to any past date (e.g. 2024-01-15) to scrape that day's leaderboard. Use date ranges for multiple days.
What is the listing details enrichment? When enabled, the actor fetches additional data from each product's Product Hunt listing page — including comments, reviews, built-with tools, and launch history. This is charged as a separate "detail-scraped" event.
What is the email enrichment add-on? When you enable "Website enrichment", the actor fetches each product's external website using a three-pass strategy (main page → contact pages → deep links) to discover public email addresses. The email enrichment event is charged only for rows where at least one email is found.
Why did I get fewer items than my maxItems setting? Product Hunt serves approximately 20 items per leaderboard page in the server-rendered payload. If you set maxItems to 25 but only one daily page is being scraped, you may get up to 20 items (or fewer if promoted listings are excluded). Use date ranges or multiple pages to get more total items.
Can I schedule recurring Product Hunt scrapes? Yes. Use Apify scheduling to run daily, weekly, or at any custom interval. Combine with integrations to push results to Google Sheets, Slack, webhooks, or your database.
How many products can I scrape per run? Set maxNbItemsToScrape to 0 for unlimited results. Each leaderboard page provides up to ~20 products. Use date ranges to scrape multiple days and get hundreds or thousands of products in one run.
What format are the results in? Results are available as JSON, CSV, Excel, or HTML directly from the Apify dataset tab. You can also access them programmatically via the Apify API.