Product Hunt Scraper (/w EMAILS) avatar

Product Hunt Scraper (/w EMAILS)

Pricing

from $0.45 / 1,000 scraped products

Go to Apify Store
Product Hunt Scraper (/w EMAILS)

Product Hunt Scraper (/w EMAILS)

Scrapes Product Hunt's launches for a specific date. Extracts the product names, descriptions, makers info (name + links), and emails.

Pricing

from $0.45 / 1,000 scraped products

Rating

4.5

(3)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

5

Bookmarked

293

Total users

84

Monthly active users

5.3 hours

Issues response

7 days ago

Last modified

Share

Find startup leads from Product Hunt

Product Hunt Scraper turns Product Hunt daily, weekly, monthly, yearly, category, topic, and supported Product Hunt page URLs into startup rows you can sort, research, and use for outreach. It keeps launch ranks, follower counts, reviews, past launches, and optional website details in the same row when you turn those extras on.

  • Lead-ready rows - keep Product Hunt links, media, ranks, launch history, and optional website details together in one dataset.
  • Daily, historical, slug, and page URL targets - scrape leaderboards or category/topic pages from structured inputs, or paste the Product Hunt page URLs you already have.
  • Website enrichment when you need it - add the site title, description, raw text, and public emails for deeper outreach research.
  • Live Product Hunt data - every run crawls Product Hunt so results reflect the page at run time.
  • Deeper launch research on demand - switch on comments, reviews, and launch history only for the runs that need them.

⚡️ TRY IT FOR FREE


🏆 Benefits

  • 🎯 Build startup lead lists from Product Hunt without opening each launch by hand.
  • 🗓️ Pull one leaderboard, category, or topic page at a time so you can check the results before you scale up.
  • 🌐 Add website enrichment only when you want outreach-ready context in the same row.
  • 📊 Keep rank, follower, media, review, and launch-history context attached to each product for research and prioritization.
  • 💸 Pay per saved product row, with email enrichment charged only when website enrichment finds emails.

🚀 Quick start

  1. Open the Input tab and leave every target section empty to run today's California-time leaderboard.
  2. Set Maximum items across the whole run to 5 or 25 for a small first run.
  3. Leave Include promoted listings?, Featured launches only?, Scrape comments?, Scrape reviews?, Scrape built-with tools?, Scrape past launches?, and Scrape website enrichment? off unless you already need those extra fields.
  4. Run the actor and review the dataset in the finished run or via the API.

⚙️ Features

  • 🗂️ Supports one target section per run: daily, weekly, monthly, and yearly leaderboards, category pages, topic pages, or supported Product Hunt page URLs.
  • 🕒 Defaults to today's Product Hunt daily leaderboard in America/Los_Angeles when every target section is empty.
  • 🔄 Crawls Product Hunt pages for every run.
  • 📣 Includes or excludes promoted listings with one toggle.
  • 🏅 Narrows a run to Product Hunt's featured launch feed when you only want featured products.
  • 🧩 Adds reviews, comments, launch history, built-with tools, and website enrichment only when you switch them on.
  • 📦 Emits one Product Hunt-specific row per product, with missing scalars set to null and missing lists set to [].
  • 🎬 Includes Product Hunt gallery image URLs and video URLs when Product Hunt exposes video media for the launch.

📊 Output

Every emitted row keeps the same Product Hunt-specific fields, with missing scalars set to null and missing lists set to []. Object arrays show one real item followed by "..." when more items were present. website.rawText is excerpted here only so the README stays readable. See the full Output tab for the complete contract.

Example

This example is from the ai-code-editors category.

{
"isPromoted": false,
"thumbnailUrl": "https://ph-files.imgix.net/7cdee0cb-3f0f-4def-92c0-7137df568438.png?auto=compress&codec=mozjpeg&cs=strip&auto=format&w=64&h=64&fit=crop&frame=1",
"name": "Codebuff",
"url": "https://www.producthunt.com/products/codebuff",
"tagline": "Better code generation than Cursor, from your CLI",
"categories": [
"AI Coding Agents",
"Command line tools",
"AI Code Editors"
],
"followers": 227,
"commentsCount": 52,
"reviewsCount": 3,
"launchesCount": 1,
"dayRank": 7,
"weekRank": 38,
"monthRank": 183,
"yearRank": null,
"launchDate": "2024-10-22",
"description": "Codebuff is a tool for editing codebases via natural language. Just npm install it, point it at your directory, and you're off to the races! Codebuff automatically pulls any files it needs for context, so it has the most accurate data to solve your problems. It also runs terminal commands for you, to speed up your own development. Our users have found that they can build apps in hours that used to take weeks. Some even use it to build in languages they've never used before!",
"upvotesCount": 270,
"links": ["https://codebuff.com/?ref=producthunt"],
"xAccountHandle": "@codebuffai",
"imageUrls": [
"https://ph-files.imgix.net/a217b57d-2b5f-4413-a50c-4e928a2edfc5.gif",
"https://ph-files.imgix.net/2add5932-49fa-48f6-a2ea-cb9bff5966ed.png",
"https://ph-files.imgix.net/37ee0625-16e5-45fc-af76-fccf3100bdcc.png",
"https://ph-files.imgix.net/3d3d16c0-8ceb-44b3-ad4b-3f087dcc343e.jpeg"
],
"videoUrls": [],
"tags": [
"Software Engineering",
"AI Coding Agents",
"Artificial Intelligence"
],
"team": [
{
"avatarUrl": "https://ph-avatars.imgix.net/7686611/09ebef1d-d2f0-4037-8bd4-839ac15e363d.jpeg?auto=compress&codec=mozjpeg&cs=strip&auto=format&w=40&h=40&fit=crop&frame=1",
"type": "Maker",
"name": "Brandon Chen",
"username": "brandon_at_manicode",
"headline": null,
"about": null,
"followersCount": 1,
"links": []
},
"..."
],
"builtWith": [
{
"name": "Claude by Anthropic",
"url": "https://www.producthunt.com/products/claude",
"tagline": null,
"thumbnailUrl": "https://ph-files.imgix.net/ae49ce7d-30a4-457b-823a-2e1ee8d44dbb.png?auto=compress&codec=mozjpeg&cs=strip&auto=format&w=40&h=40&fit=crop&frame=1"
},
"..."
],
"launches": [
{
"title": "Codebuff",
"url": "https://www.producthunt.com/products/codebuff/launches/codebuff",
"tagline": "Better code generation than Cursor, from your CLI",
"launchDate": "2024-10-22",
"dayRank": 7,
"weekRank": 38,
"monthRank": 183,
"yearRank": null,
"upvotesCount": 270,
"commentsCount": 52,
"thumbnailUrl": "https://ph-files.imgix.net/a7c2b93c-18fa-48ee-9a9f-1f3664b17039.png"
}
],
"comments": [
{
"user": {
"isMaker": false,
"username": "dhunten",
"name": "Derek Hunten",
"avatarUrl": "https://ph-avatars.imgix.net/128459/original.jpeg",
"headline": null,
"links": [],
"followersCount": null
},
"text": "i personally was not a fan of the usability of Cursor, so plan on checking this out. is it good when starting from scratch, too?",
"upvotesCount": 2,
"timeAgo": null
},
"..."
],
"reviews": [
{
"user": {
"username": "dexter_horthy",
"name": "Dexter Horthy",
"avatarUrl": "https://ph-avatars.imgix.net/7575784/4562c776-2031-4f71-9de1-a99d573b3e2f.jpeg",
"headline": "hacking on safe + reliable AI Agents",
"links": [],
"followersCount": null,
"reviewsCount": 5
},
"rating": 5,
"text": "watching codebuff debug infrastructure problems by running aws cli commands is both terrifying and delightful",
"viewsCount": 57,
"timeAgo": null
},
"..."
],
"website": {
"url": "https://codebuff.com/?ref=producthunt",
"title": "Codebuff – AI Coding Assistant for Your Terminal",
"description": "Code faster with AI using Codebuff. Edit your codebase and run terminal commands via natural language instruction.",
"emails": [],
"rawText": "Docs Pricing GitHub Toggle menu Better agents. Better code. Higher quality output and 100+ seconds faster than Claude Code Get Started npm install -g codebuff EXPLORER 📁 src 📄 index.ts 📁 api 📄 auth.ts 📄 users.ts 📄 projects.ts 📁 utils 📄 helpers.ts 📄 types.ts 📄 constants.ts 📄 validation.ts..."
}
}

Params

FieldTypeDescription
isPromotedbooleantrue for sponsored Product Hunt placements and false for organic rows.
name, tagline, descriptionstring | nullCore Product Hunt product copy from the row and product page.
urlstring | nullProduct Hunt row URL. This is a product URL or launch URL, never the external website URL.
thumbnailUrl, imageUrls, videoUrlsstring | null, string[], string[]Primary thumbnail plus any additional Product Hunt gallery images and video links from the current product page media that Product Hunt exposes.
categories, tagsstring[]Product Hunt categories plus the current product page metadata tags that Product Hunt exposes.
followers, upvotesCount, commentsCount, reviewsCount, launchesCountnumber | nullBuyer-visible Product Hunt engagement counts for that row.
dayRank, weekRank, monthRank, yearRank, launchDatenumber | null, string | nullLeaderboard ranks plus the ISO YYYY-MM-DD launch date when available.
links, xAccountHandlestring[], string | nullExternal company links from Product Hunt plus the X account handle when available.
team, builtWith, launchesarrayRelated maker/team, built-with, and launch-history objects.
comments, reviewsarrayComment and review objects when those enrichments are enabled and Product Hunt exposes them on the page.
websiteobjectAlways present with url, title, description, emails, and rawText.

🛠️ Input

Example

This input produced the output example above.

{
"categorySlugs": ["ai-code-editors"],
"productHuntPageUrls": [],
"maxNbItemsToScrape": 20,
"shouldIncludePromotedListings": false,
"shouldScrapeOnlyFeaturedLaunches": false,
"shouldScrapeComments": true,
"shouldScrapeReviews": true,
"shouldScrapeBuiltWith": true,
"shouldScrapeLaunches": true,
"shouldScrapeWebsite": true
}

Params

FieldTypeDescriptionDefault / empty behavior
maxNbItemsToScrapeintegerOptional cap applied across the whole run, even when the input resolves to multiple Product Hunt pages.Defaults to 0, which means scrape all available items. The Input tab prefills 25 for a bounded starter run.
shouldIncludePromotedListingsbooleanIncludes sponsored Product Hunt placements from the same page.Defaults to false.
shouldScrapeOnlyFeaturedLaunchesbooleanKeeps only Product Hunt launches from the featured feed for the selected target.Defaults to false.
shouldScrapeCommentsbooleanScrapes Product Hunt comments when available for the selected products.Defaults to false.
shouldScrapeReviewsbooleanScrapes Product Hunt reviews when they exist.Defaults to false.
shouldScrapeBuiltWithbooleanScrapes the Product Hunt Built With section when it is available.Defaults to false.
shouldScrapeLaunchesbooleanScrapes the product's visible Product Hunt launch history.Defaults to false.
shouldScrapeWebsitebooleanEnriches the external website with title, description, visible text, and emails. Email enrichment is charged only for saved rows where at least one email is found.Defaults to false.
startDatestringDaily pages only. First day in YYYY-MM-DD format.Leave empty unless you want the daily target section. If every target field is empty, the actor defaults to today's California-time daily leaderboard.
endDatestringDaily pages only. Optional inclusive end date in YYYY-MM-DD format.Empty means one day.
startWeekstringWeekly pages only. First week in YYYY-WW format.Leave empty unless you want the weekly target section.
endWeekstringWeekly pages only. Optional inclusive end week in YYYY-WW format.Empty means one week.
startMonthstringMonthly pages only. First month in YYYY-MM format.Leave empty unless you want the monthly target section.
endMonthstringMonthly pages only. Optional inclusive end month in YYYY-MM format.Empty means one month.
startYearintegerYearly pages only. First year to scrape.Leave empty unless you want the yearly target section.
endYearintegerYearly pages only. Optional inclusive end year.Empty means one year.
categorySlugsstring[]Category pages only. Add one Product Hunt category slug per item, such as ai-code-editors.Leave empty unless you want the category target section. Category runs do not support date ranges.
topicSlugsstring[]Topic pages only. Add one Product Hunt topic slug per item, such as developer-tools or open-source.Leave empty unless you want the topic target section. opensource is normalized to open-source.
productHuntPageUrlsstring[]Product Hunt page URLs only. Accepts daily, weekly, monthly, yearly, category, and topic page URLs.Leave empty unless you want the URL target section. Product, post, search, home, and other Product Hunt URLs are rejected before scraping.

Important

  • 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.
  • Example daily run: Start date: "2026-03-20", Maximum items across the whole run: 3, and all five enrichment toggles set to true is a good way to inspect one past leaderboard day in depth.
  • Example category run: Category slugs: ["ai-code-editors"], Maximum items across the whole run: 20, and all five enrichment toggles set to true produced the real Codebuff row used in this README.
  • Example URL run: Product Hunt page URLs: ["https://www.producthunt.com/leaderboard/daily/2026/5/1/all", "https://www.producthunt.com/topics/developer-tools"] and Maximum items across the whole run: 25 scrapes those supported Product Hunt pages in one run.
  • Example first daily run: leave every target section empty, set Maximum items across the whole run to 5, and leave the enrichments off.
  • Pricing is $0.45 / 1,000 saved products for Scraped product, plus $1.80 / 1,000 saved products for Add-on: email enrichment only when website enrichment finds at least one public email address. See the Pricing tab for current rates.

🔍 Error handling

  • If you mix fields from more than one page type, or a date/week/month/year value is invalid, the actor stops before crawl with a clear user-facing error.
  • If Product Hunt blocks the initial page after all retries, the run log explains that access was blocked and advises restarting the actor.
  • If Product Hunt does not return the complete ranked leaderboard data for a daily, weekly, monthly, or yearly page, the actor stops that page with a clear retry message instead of guessing from partial page content.
  • Once a product is discovered, product-page extraction, comments, reviews, launches, and website enrichment are best-effort. The actor still emits the row with missing fields set to null or [].
  • When a request fails, the actor saves an error diagnostic artifact on a best-effort basis for later inspection.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡


🔗 Other actors

  • Website Emails Scraper - turn company sites into one row per unique public email.
  • Uneed Scraper - find fresh startup launches from Uneed with optional website enrichment.
  • Tiny Startups Scraper - pull startup rows from Tiny Startups for prospecting and research.
  • TinySeed Scraper - collect TinySeed portfolio companies for founder and market research.
  • Twitter Scraper - search X for launch chatter, mentions, and social proof around companies you find.
  • Reddit Scraper - collect Reddit posts and comments for market research, objections, and audience language.

Made with ❤️ by Maxime Dupré