Product Hunt Scraper (/w EMAILS)
Pricing
from $3.50 / 1,000 scraped products
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 $3.50 / 1,000 scraped products
Rating
5.0
(2)
Developer
Maxime
Actor stats
4
Bookmarked
106
Total users
21
Monthly active users
5.3 hours
Issues response
16 hours ago
Last modified
Categories
Share
Get Product Hunt launches into your pipeline
Product Hunt Scraper pulls the daily leaderboard for a Pacific-time date, filters sponsored spots by default, collects maker links, and can find website emails in the same run.

Fastest way to try it
Set one launchDate, keep maxNbItemsToScrape around 10, switch scrapeMode to cached for the safest first run, then inspect the first dataset rows in the Output tab. If that date has no ready cache yet and you want to accept the potentially higher cost of a live crawl, switch to fallback.
Why people use it
- ๐๏ธ Pull one Pacific-time Product Hunt leaderboard date into structured launch rows instead of opening product pages by hand.
- ๐ง Start with cached results when you want the cheapest first run, or switch to
freshwhen you explicitly need a live crawl for that date. - ๐ข Keep the first run small with a 10-product cap, or set
0to return the full day. - ๐ซ Keep sponsored launches out by default, or include them when paid placements matter to your workflow.
- ๐ฌ Get maker links and optional website emails in the same run instead of stitching together multiple steps.
How to use in 3 simple steps
- Open the Input tab, optionally set
launchDate, and keepmaxNbItemsToScrapesmall on the first run. - The actor defaults to
fallback, which uses cache first and can switch to a live crawl on a cache miss. Switch tocachedwhen you want a predictable first run with ready cache only, or usefreshwhen you explicitly want a guaranteed live crawl and its higher cost. - Run the actor, then use the Output tab or API to send the dataset into your own workflow.
Inputs, defaults, and behavior
- ๐ง
scrapeModecontrols how results are fetched. Default isfallback: use ready cached results when they exist, otherwise crawl live.fallbackuses ready cached results when they exist, otherwise crawls live. Cache hits usescraped-product-cached; cache misses switch to the fresh live-crawl eventscraped-product-freshat$0.02per successfully emitted product.cachedemits thescraped-product-cachedevent at$0.0035per successfully emitted cached product and finishes cleanly with a warning if no ready cache exists for that date.freshalways crawls live for that date and emitsscraped-product-freshat$0.02per successfully emitted product.
- ๐๏ธ
launchDateis optional. Leave it blank to use today's Product Hunt date in Pacific time. - ๐ข
maxNbItemsToScrapedefaults to25. Set0to request the full day. - ๐ฃ
Include promoted listings?defaults to off, so sponsored leaderboard entries stay out unless you explicitly turn it on. - ๐ฌ
shouldScrapeEmailsdefaults totrue. When enrichment completes for a product, theadd-on-email-enrichmentevent adds$0.01. If one product site fails email enrichment, the product still comes back withemails: []. - The actor extracts maker contacts, keeps external links, and filters out Product Hunt's own internal profile URLs.
- Product pages and leaderboard loading are built to handle Product Hunt's live bot checks and long pages.
- Each record includes
url,listingUrl,name,tagline,description,isPromotedListing,contacts, andemails.
Input example
{"launchDate": "2026-03-25","maxNbItemsToScrape": 10,"scrapeMode": "fallback","includePromotedListings": false,"shouldScrapeEmails": true}
Input screenshot

What data can Product Hunt Scraper extract?
See the full Output tab for the complete schema.
| Field | What you get | Why it matters |
|---|---|---|
url | The product's own website URL | Use it for enrichment, scoring, outreach, or joins with other datasets |
listingUrl | The Product Hunt page for that launch | Keep a direct link back to the source listing |
tagline | The launch one-liner | Triage the list quickly without opening each product page |
contacts | Makers with external profile links | Research the people behind the launch from the same dataset |
emails | Website emails when enrichment is on | Get contact paths without adding a second actor |
isPromotedListing | Whether Product Hunt marked the listing as sponsored | Keep paid and organic launches separate when that matters |
Output example
[{"url": "https://acmehq.dev/","listingUrl": "https://www.producthunt.com/posts/acme-hq","name": "Acme HQ","tagline": "Shared inbox for product teams","description": "Acme HQ helps product teams triage feedback, bugs, and roadmap requests from one workspace.","isPromotedListing": false,"contacts": [{"name": "Jane Doe","links": ["https://www.linkedin.com/in/jane-doe","https://x.com/janedoe"]}],"emails": ["hello@acmehq.dev"]}]
Output screenshot

How much does Product Hunt scraping cost?
This actor uses four pay-per-event pricing events: scraped-product-cached, scraped-product-fresh, add-on-email-enrichment, and Apify's synthetic apify-actor-start. fallback is the default mode, cached is the cheapest mode, and fallback can switch to fresh live pricing on a cache miss. Email enrichment adds $0.01 when it completes.
To keep a first run small, try maxNbItemsToScrape: 10. That is about $0.035 base in cached or $0.20 base in fresh, plus about $0.10 if all 10 products complete email enrichment. At 100 products, that is about $0.35 base in cached or $2.00 base in fresh, plus about $1.00 if all 100 products complete email enrichment. The live Pricing tab is the source of truth for the exact current rate.
| Event name | When it triggers | Repo-configured price |
|---|---|---|
scraped-product-cached | One cached Product Hunt launch is successfully emitted | $0.0035 |
scraped-product-fresh | One fresh Product Hunt launch is successfully emitted | $0.02 |
add-on-email-enrichment | Email scraping completes for that product's website | $0.01 |
apify-actor-start | Automatic Apify start event | $0.00005 per event |
Why run Product Hunt Scraper on Apify?
- Run it from the Console or call it from the Apify API when Product Hunt is one step inside a bigger pipeline.
- Schedule daily runs instead of reopening the leaderboard by hand.
- Keep outputs in datasets and inspect run logs when a specific date or product page needs review.
- Connect finished runs to webhooks, automations, or your own workers without wrapping the scraper yourself.
FAQ
Do I have to pass launchDate?
No. If you leave it blank, the actor resolves today's Product Hunt date in Pacific time.
Which scrapeMode should I use?
If you leave scrapeMode alone, the actor uses fallback. Switch to cached for the safest and most predictable first run when you only want ready cache data, keep fallback when you want cached data if available but accept a live crawl and potentially higher cost on cache miss, and use fresh when you explicitly want a live crawl for that date and accept that it is usually the most expensive mode.
Can I include sponsored launches?
Yes. Include promoted listings? defaults to off, so the actor returns only organic launches unless you explicitly opt in.
What happens if email enrichment fails for one product?
The product is still emitted, and its emails field is an empty array for that row.
What should I try if the run fails or the result count looks off?
First verify launchDate, maxNbItemsToScrape, and whether Include promoted listings? is on. If you switched to cached, confirm that a ready cache exists for that date; otherwise the run will stop cleanly with a warning instead of live-crawling. If you leave the default fallback mode on, a cache miss can trigger a live crawl and a higher cost. Switch to fresh only when you explicitly need a live crawl for that date, and check the run log before opening an issue.
Where do I report a missing field, broken page, or Product Hunt change?
Open the Issues page with the launchDate, the Product Hunt listing URL, and the output you expected. I use that queue for fixes and feature requests.
Explore the rest of the collection
- Uneed Scraper - daily Uneed ladder scraping with promoted-listing filtering, maker links, and optional email enrichment
- TinySeed Scraper - TinySeed portfolio scraping with company descriptions and optional website emails
- Tiny Startups Scraper - Tiny Startups homepage scraping with promoted-card filtering and email enrichment
- Website Emails Scraper - shallow-crawl any list of URLs and emit one row per unique email found
Missing a feature or data?
Create a ticket and I'll add it within 24h.