Product Hunt Scraper - Daily Leaderboard, Pay Per Result avatar

Product Hunt Scraper - Daily Leaderboard, Pay Per Result

Pricing

from $6.00 / 1,000 launches

Go to Apify Store
Product Hunt Scraper - Daily Leaderboard, Pay Per Result

Product Hunt Scraper - Daily Leaderboard, Pay Per Result

Scrape the Product Hunt daily leaderboard for any date: launch name, tagline, daily, weekly and monthly rank, comment count, topics, thumbnail and launch page. Backfill any date range. No API token needed. No personal data: voters, makers and commenters are never collected.

Pricing

from $6.00 / 1,000 launches

Rating

0.0

(0)

Developer

Andrés Santiso

Andrés Santiso

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Product Hunt Scraper - Daily Leaderboard Ranking by Date

Scrapes the Product Hunt daily leaderboard for any date or date range and returns one structured record per ranked launch: name, tagline, daily / weekly / monthly rank, comment count, topics, thumbnail and the Product Hunt page.

No API token. No headless browser. Runs finish in seconds.

What you get

One dataset item per ranked launch:

FieldWhat it is
dateThe leaderboard day, YYYY-MM-DD
dailyRankPosition on that day's leaderboard (1 = first)
weeklyRank, monthlyRankPosition in the week and month rankings, when Product Hunt has computed them
name, taglineThe launch name and its one-line pitch
slug, productHuntUrlProduct Hunt identifier and page
commentsCountComments on the launch
launchDayScore, latestScoreProduct Hunt's own scoring fields, when present
topicsTopic names, e.g. ["Artificial Intelligence", "Developer Tools"]
featuredAt, createdAtTimestamps as Product Hunt reports them
productStateLaunch state, as reported
thumbnailUrlThumbnail, built from the launch's image UUID on Product Hunt's file CDN
postIdNumeric launch id
scrapedAtWhen this record was collected (UTC)

What it does not collect - on purpose

No personal data. The page payload carries voters, makers and comment authors. This Actor never maps any of them. A launch is a product, not a person. Several scrapers in this category sell email enrichment and owner leads; this one does not, and that is a deliberate choice, not an omission.

Three honest limits, so the output never surprises you:

  • Vote counts are not returned. Product Hunt hides votesCount in the leaderboard payload (it comes back null), so this Actor does not promise it. Use commentsCount, launchDayScore and the ranks instead.
  • A day returns the launches Product Hunt ranked on its daily leaderboard, typically between 10 and 17. That is the leaderboard, not every submission of that day.
  • Today is never scraped. Its leaderboard is still filling up and would look truncated. "Recent days" walks back from yesterday.

Input

OptionDefaultNotes
moderecentrecent (walk back from yesterday), range (between two dates), dates (an explicit list)
days3How many complete days to walk back, in recent mode
startDate / endDate-YYYY-MM-DD, in range mode. Ranges longer than 120 days are trimmed to the most recent 120
dates-One YYYY-MM-DD per line, in dates mode
maxLaunchesPerDay0 (all)Keep only the top N of each day
proxyConfigurationApify Proxy onRequired in practice, see below
politeDelayMs1000One request per second

Running with an empty input returns the last three complete days.

Why the proxy is on by default

Product Hunt sits behind Cloudflare, which rejects datacenter ranges on the very first request - HTTP 429 or 403 with a challenge page, regardless of headers. Through Apify Proxy the same run succeeds, so the Actor takes a fresh exit IP on every attempt: a rejection is treated as one bad IP, not as a dead source. Leaving the proxy off is allowed but will usually return nothing, and the log says so explicitly.

Pricing

Pay per event:

  • Actor start - charged once per run (one event per GB of memory; this Actor runs on 256 MB).
  • Launch - one event per launch returned. This is the price to compare.

Nothing is charged for a result that did not come back: a date that could not be fetched produces no items and therefore no charge.

How it works

Product Hunt's leaderboard is a Next.js App Router page that embeds its full GraphQL payload in the page itself. The Actor reads that payload directly over plain HTTP - no token, no headless browser - and balances braces to recover whole launch objects.

That embedded payload is an internal format and can change without notice. If it ever does, the Actor logs a clear warning instead of quietly returning empty data.