Product Hunt Scraper - Launches, Leaderboard & Upvotes
Pricing
from $2.00 / 1,000 run start fees
Product Hunt Scraper - Launches, Leaderboard & Upvotes
Product Hunt scraper for daily, weekly and monthly leaderboards: top launches from the opening page with rank, product name, URL, tagline, topics, upvotes and comments. Track new Product Hunt launches. No Product Hunt API key needed.
Product Hunt Scraper: Daily, Weekly and Monthly Leaderboard
This Product Hunt scraper turns the Product Hunt leaderboard into dataset rows. Pick the daily, weekly or monthly board for a date and get the rank, product name, link, tagline, topics, upvotes and comment count of every launch on the opening page, ready for a spreadsheet, a dashboard or a scheduled alert. No Product Hunt account or API token is needed, and the input stays compatible with existing Product Hunt Launches runs.
What the Product Hunt scraper returns
Each row represents one ranked launch on the selected leaderboard. Rows follow the leaderboard ranking, including ties when the source gives two launches the same rank. A product URL leads to the Product Hunt product page. The slug provides a readable identifier for joining repeated observations of the same product across days, weeks and months.
The Actor reads the opening leaderboard page. In the recorded daily, weekly and monthly examples it returned 17 launches. A quieter day can return fewer: the recorded September 27 board contained eight ranked launches, and an input limit of five delivered the first five. Increasing the limit does not guarantee that the source will put more launches in its opening page.
The boolean more_beyond_this_page tells you when the board has further pages or when the input limit cut off available ranked launches. Check this field before treating a dataset as the complete board. The Actor does not currently follow additional leaderboard pages.
Input
| Field | Default | Meaning |
|---|---|---|
period | daily | Select daily, weekly or monthly. |
date | yesterday | A date such as 2026-09-16, or today or yesterday. Relative dates use UTC. |
limit | 30 | Maximum launches to return, from 1 to 100, subject to the page and plan limits. |
For weekly results, the date chooses the ISO week containing that date. For monthly results, it chooses the month. The output date preserves the requested date after resolving relative values, rather than changing it to the first day of the week or month.
Start with the defaults to collect yesterday's board. For a repeatable historical query, supply an explicit date. Dates and periods select the board; they do not filter products by topic or perform a keyword search. To compare a specific category, collect the rows first and filter their topics in your own workflow.
A minimal input for last week's leaderboard looks like this:
{"period": "weekly","date": "2026-09-16","limit": 30}
Output
Results go to the default dataset, one JSON record per launch. The following record is from an actual run on October 6, 2026, for the daily board of October 5:
{"rank": 1,"name": "Spira Maxima","url": "https://www.producthunt.com/products/spira-ai","slug": "spira-ai","tagline": "Video model that turns script into viral social media videos","topics": ["Social Media","Marketing","Artificial Intelligence"],"comments": 47,"votes": 320,"source": "producthunt-launches","platform": "product_hunt","listing_id": "spira-ai","title": "Spira Maxima","fetched_at": "2026-10-06T00:56:07.677Z","period": "daily","date": "2026-10-05","leaderboard_url": "https://www.producthunt.com/leaderboard/daily/2026/10/5","fetched_in_seconds": 2.28,"more_beyond_this_page": true,"proxy_configured": true}
The original fields remain available: rank, name, url, slug, tagline, topics, comments, votes, period, date, leaderboard_url, fetched_in_seconds, more_beyond_this_page and proxy_configured. The new fields source, platform, listing_id, title and fetched_at provide consistent software listing names. listing_id equals slug, and title equals name.
votes is the current upvote count shown by the source, not a fixed launch-day snapshot. Comments and votes may increase between runs of the same historical board. Missing source counts are null. Topics always form a list, including an empty list when the source supplies none. fetched_at records the collection timestamp in UTC.
Product Hunt may provide a shorter summary of a leaderboard. If the full page cannot be retrieved, the scraper returns the launches actually present in that summary. The response reports partial and a warning, and more_beyond_this_page remains true. Only delivered launches are billed; the requested limit remains a maximum rather than a guaranteed row count.
The key-value store also contains summary, with integer itemCount and errorCount, and an OUTPUT record with status and delivery information. An errors record appears when a run encounters a problem. A successfully read empty board returns no dataset rows. Invalid input, temporary source failures and empty results finish as successful empty runs, with the failure recorded for inspection.
Download JSON, CSV or Excel from the dataset, or retrieve records through the Apify dataset API.
Use cases for Product Hunt launch data
- Launch tracking. Schedule a daily run and receive yesterday's top Product Hunt launches in a sheet, a chat channel or a database, with the tagline and topics that describe each product.
- Market and trend research. Collect the monthly leaderboard for a series of months and count topics such as Artificial Intelligence, Developer Tools or Productivity to see which categories gain launches and upvotes.
- Competitive monitoring. Filter the rows by the topics of your own market and review new entrants that reach the leaderboard, their positioning and how many upvotes and comments they attract.
- Deal flow and partnerships. Investors, agencies and partnership teams can review the products that reach the top of the board, then follow the product URL for their own qualification.
- Content and newsletters. Writers of roundups and newsletters get a ranked, structured list of the week's notable products instead of copying the page by hand.
Use slugs and product URLs to connect leaderboard observations, and keep the timestamp when interpreting changing vote counts. A rank describes its selected board; comparing a daily rank to a monthly rank requires that context.
How this Product Hunt scraper compares
| Option | What you get | What it takes |
|---|---|---|
| This Actor | Ranked leaderboard rows with votes, comments and topics as JSON, CSV or Excel | An Apify account; pay per run and per launch |
| Official Product Hunt API | Programmatic access to posts and votes | Registering an application, an access token and writing GraphQL queries |
| Self-hosted scripts | Whatever the script was written to read | Running and maintaining the code yourself when the page changes |
| Copying the leaderboard by hand | The visible board | Time on every repeat, with no history |
This Actor is deliberately narrow: it reads leaderboards. It does not collect maker profiles, email addresses, reviews or individual comments. If you need those, use the product URL from each row as the input for a separate workflow.
Pricing
The existing pay-per-event prices apply: $0.002 for run_start once per run, including an empty run, and $0.00075 for launch per delivered row. No launch event is charged when no row is delivered. A run returning 17 launches therefore costs $0.01475 in Actor events. Platform usage may be listed separately by Apify.
Non-paying Apify users receive at most ten rows per run. Launch charges follow delivered rows, so results beyond that cap are not charged. Paying users can receive the full opening page, up to their chosen limit. The cap does not create a recurring subscription or a new billing event.
FAQ
Do I need a Product Hunt API key?
No. The Actor reads the public leaderboard, so you do not register an application or manage a token. You only need an Apify account to run it.
Can I collect a previous date?
Yes. Supply the date and select the period. Historical board availability depends on the source. A date with no ranked launches produces an empty dataset and a recorded explanation.
Why did a limit of 100 return 17 rows?
The limit is a maximum, and the Actor returns only the opening leaderboard page. The recorded normal boards embedded 17 ranked launches. Look at more_beyond_this_page to see whether more launches exist.
Are upvotes the same as ratings?
No. They are source upvote counts. The Actor keeps them as votes; it does not convert them into star ratings or infer reviews, revenue, adoption or sales from them.
Does this include maker profiles or individual comments?
No. The output contains leaderboard fields and a comment count. Use the product URL for a separate workflow if you need public maker information, full descriptions or individual comments.
Can I schedule collection?
Yes. Use an Apify schedule with the input you want to repeat. Relative dates are resolved in UTC when each run starts. Use explicit dates for historical comparisons, and inspect the summary and completeness flag before processing the results.