Product Hunt Scraper
Pricing
from $0.45 / 1,000 scraped products
Product Hunt Scraper
Collect Product Hunt launches from daily and past leaderboards, category or topic pages, and supported URLs. Export ranks, engagement, teams, media, and optional extra data.
Pricing
from $0.45 / 1,000 scraped products
Rating
4.6
(4)
Developer
Maxime Dupré
Maintained by CommunityActor stats
9
Bookmarked
546
Total users
95
Monthly active users
7 days ago
Last modified
Categories
Share
🚀 Turn Product Hunt launches into structured research data
Product Hunt Scraper helps founders, marketers, researchers, and sales teams collect public launch data without opening every listing. Export names, descriptions, ranks, engagement, topics, media, team details, and optional extra data from a selected Product Hunt page family.
- Product Hunt startup lead generation — build startup lists with product links, descriptions, team details, and available website context.
- Product Hunt launch tracking — collect daily or historical leaderboards for repeat monitoring.
- Product Hunt competitor analysis — compare launches, positioning, categories, engagement, and ranks.
- Product Hunt trend research — examine launches from category and topic pages.
- Product Hunt maker research — collect exposed makers, hunters, and launch-team profiles.
- Product Hunt product research — combine launch details, media, reviews, comments, and launch history when available.
- Product Hunt email enrichment — request a website visit to find best-effort public emails and website text.
📦 Data you can extract
Each saved row represents one Product Hunt launch, or its product identity when no launch identity is available. Duplicate launches are skipped after the first saved match. Fields include:
- Product or launch name, tagline, description, Product Hunt URL, launch date, and thumbnail
- Upvotes, comments, reviews, followers, launch counts, and available daily, weekly, monthly, or yearly ranks
- Categories, topics, tags, gallery images, and Product Hunt video assets
- Exposed makers, hunters, team members, and public profile context
- External links and X account handle when Product Hunt exposes them
- Optional comments, reviews, Built With context, launch history, and website enrichment
Unavailable values remain null or []. A launch can still be saved when optional details or extra data are not available.
🚀 Running the Actor
- Choose one Target: daily, weekly, monthly, yearly, category, topic, or Product Hunt page URLs.
- Complete only that Target's options. Daily runs default to today's California-time leaderboard when no date is entered.
- Set Maximum items to bound the run, or use
0to collect all available inventory from the selected pages. - Choose whether to include listings that Product Hunt marks as promoted or keep only featured launches.
- Turn on slower comments, reviews, Built With, launch history, or website research only when needed.
- Run the Actor and open the dataset from the Output tab.
If Product Hunt blocks every initial discovery attempt, the Actor reports a source-access failure instead of treating the blocked page as a normal empty result.
🎯 Input
This example collects up to 20 products from one category and requests launch history:
{"target": "category","categorySlugs": ["ai-code-editors"],"maxNbItemsToScrape": 20,"shouldIncludePromotedListings": false,"shouldScrapeOnlyFeaturedLaunches": false,"shouldScrapeComments": false,"shouldScrapeReviews": false,"shouldScrapeBuiltWith": false,"shouldScrapeLaunches": true,"shouldScrapeWebsite": false}
Target-specific fields are:
startDateandendDatefor an inclusive daily range (YYYY-MM-DD)startWeekandendWeekfor an inclusive weekly range (YYYY-WW)startMonthandendMonthfor an inclusive monthly range (YYYY-MM)startYearandendYearfor an inclusive yearly rangecategorySlugsortopicSlugsfor source-native category or topic pagesproductHuntPageUrlsfor supported daily, weekly, monthly, yearly, category, and topic URLs
Shared fields set the item limit, promoted and featured filters, and optional comments, reviews, Built With, launch history, and website data. Product detail, post, search, and homepage URLs are not supported inputs.
📤 Output
The default dataset contains one row per successfully saved identity. A shortened example:
{"isPromoted": false,"thumbnailUrl": "https://ph-files.imgix.net/example.png","name": "Codebuff","url": "https://www.producthunt.com/products/codebuff","tagline": "Better code generation from your CLI","categories": ["AI Code Editors"],"followers": 227,"commentsCount": 52,"reviewsCount": 3,"launchesCount": 1,"dayRank": 7,"weekRank": 38,"monthRank": 183,"yearRank": null,"launchDate": "2024-10-22","description": "An AI coding assistant for the command line.","upvotesCount": 270,"links": ["https://codebuff.com/"],"xAccountHandle": "@codebuffai","imageUrls": [],"videoUrls": [],"tags": ["Software Engineering"],"team": [],"builtWith": [],"launches": [],"comments": [],"reviews": [],"website": {"url": "https://codebuff.com/","title": null,"description": null,"emails": [],"rawText": null}}
See the Output schema for every nested team, comment, review, launch-history, and website field.
💳 Pricing
This Actor uses pay-per-event pricing. The primary event is charged once for each successfully saved deduplicated launch or product identity. The email-enrichment add-on is charged only for a saved launch where optional website enrichment finds at least one public email. A run with no saved launch is not charged for a launch. Website checks with no found email are not charged for email enrichment. See the Pricing tab for current rates.
🔌 Integrations
Use Apify datasets, API access, schedules, and webhooks to export or automate results. This walkthrough shows how to connect an Actor to other workflows:
❓ FAQ
Can I run this as a Product Hunt scraper API?
Yes. Start runs and get dataset rows through the Apify API. You do not need to give the Actor a Product Hunt account or API token.
What happens if Product Hunt blocks every discovery attempt?
The Actor ends with a clear source-access failure rather than reporting an ordinary successful empty scrape. Retry later because source access can change between runs.
Can I submit a Product Hunt product or post URL?
No. URL input accepts supported leaderboard, category, and topic pages. Standalone product, post, search, and homepage URLs are rejected rather than reinterpreted.
Why are some fields null or empty arrays?
Product Hunt does not expose every optional fact for every launch. Detail and enrichment failures do not discard an already discovered launch, so unavailable values keep their schema-defined empty form.
Can I scrape several target families in one run?
Choose one Target per run. The Product Hunt page URL Target can contain a mixed list of supported leaderboard, category, and topic page URLs.
Are comments, reviews, launch history, Built With data, and website emails always included?
No. You must turn on these slower options. Some data may still be missing. Public emails are returned only when found on the linked website.
How do I monitor new Product Hunt launches?
Run the daily Target on an Apify schedule and send completed datasets through the API or a webhook. Each run reads the selected Product Hunt page rather than reusing a saved inventory.
📝 Changelog
- 0.0: Initial release with daily, weekly, monthly, yearly, category, topic, and supported page URL Targets, plus optional deep-data and website enrichment.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Uneed Scraper — collect products, launches, categories, pricing, engagement, and available business details from Uneed.
- Tiny Startups Scraper — research public startup launches, rankings, creators, deals, and available emails from Tiny Startups.
- TinySeed Scraper — collect portfolio companies, cohorts, locations, websites, and available public emails.
- Website Emails Scraper — turn a selected list of product websites into deduplicated public email rows.
- Twitter (X) Scraper — research public launch discussion and company mentions on X.
Made with ❤️ by Maxime Dupré