Product Hunt Scraper (/w EMAILS) avatar

Product Hunt Scraper (/w EMAILS)

Pricing

from $3.50 / 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 $3.50 / 1,000 scraped products

Rating

5.0

(2)

Developer

Maxime

Maxime

Maintained by Community

Actor stats

4

Bookmarked

106

Total users

21

Monthly active users

5.3 hours

Issues response

16 hours ago

Last modified

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.

Product Hunt Scraper hero

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 fresh when you explicitly need a live crawl for that date.
  • ๐Ÿ”ข Keep the first run small with a 10-product cap, or set 0 to 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

  1. Open the Input tab, optionally set launchDate, and keep maxNbItemsToScrape small on the first run.
  2. The actor defaults to fallback, which uses cache first and can switch to a live crawl on a cache miss. Switch to cached when you want a predictable first run with ready cache only, or use fresh when you explicitly want a guaranteed live crawl and its higher cost.
  3. Run the actor, then use the Output tab or API to send the dataset into your own workflow.

Inputs, defaults, and behavior

  • ๐ŸงŠ scrapeMode controls how results are fetched. Default is fallback: use ready cached results when they exist, otherwise crawl live.
    • fallback uses ready cached results when they exist, otherwise crawls live. Cache hits use scraped-product-cached; cache misses switch to the fresh live-crawl event scraped-product-fresh at $0.02 per successfully emitted product.
    • cached emits the scraped-product-cached event at $0.0035 per successfully emitted cached product and finishes cleanly with a warning if no ready cache exists for that date.
    • fresh always crawls live for that date and emits scraped-product-fresh at $0.02 per successfully emitted product.
  • ๐Ÿ—“๏ธ launchDate is optional. Leave it blank to use today's Product Hunt date in Pacific time.
  • ๐Ÿ”ข maxNbItemsToScrape defaults to 25. Set 0 to request the full day.
  • ๐Ÿ“ฃ Include promoted listings? defaults to off, so sponsored leaderboard entries stay out unless you explicitly turn it on.
  • ๐Ÿ“ฌ shouldScrapeEmails defaults to true. When enrichment completes for a product, the add-on-email-enrichment event adds $0.01. If one product site fails email enrichment, the product still comes back with emails: [].
  • 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, and emails.

Input example

{
"launchDate": "2026-03-25",
"maxNbItemsToScrape": 10,
"scrapeMode": "fallback",
"includePromotedListings": false,
"shouldScrapeEmails": true
}

Input screenshot

Product Hunt Scraper input screenshot

What data can Product Hunt Scraper extract?

See the full Output tab for the complete schema.

FieldWhat you getWhy it matters
urlThe product's own website URLUse it for enrichment, scoring, outreach, or joins with other datasets
listingUrlThe Product Hunt page for that launchKeep a direct link back to the source listing
taglineThe launch one-linerTriage the list quickly without opening each product page
contactsMakers with external profile linksResearch the people behind the launch from the same dataset
emailsWebsite emails when enrichment is onGet contact paths without adding a second actor
isPromotedListingWhether Product Hunt marked the listing as sponsoredKeep 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

Product Hunt Scraper 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 nameWhen it triggersRepo-configured price
scraped-product-cachedOne cached Product Hunt launch is successfully emitted$0.0035
scraped-product-freshOne fresh Product Hunt launch is successfully emitted$0.02
add-on-email-enrichmentEmail scraping completes for that product's website$0.01
apify-actor-startAutomatic 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.