Product Hunt Scraper: Launches, Makers, Reviews, No API Key
Pricing
from $6.15 / 1,000 results
Product Hunt Scraper: Launches, Makers, Reviews, No API Key
Scrape Product Hunt launches, upvotes, comments, makers, hunter and reviews with no API key or token. Pull daily, weekly, monthly and yearly leaderboards, topics and product pages: website, funding, YC status, socials, ratings and rankings. Export to JSON, CSV or Excel.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Product Hunt Scraper: Launches, Makers, Reviews, No API Key
Scrape Product Hunt launches, upvotes, makers, the hunter, reviews, topics and full startup data with no API key, token or login. This is the most complete Product Hunt scraper and data export available: five ways to target launches (daily, weekly, monthly and yearly leaderboards, topics, and specific products), every field a product page exposes, and an optional reviews add-on. Export to JSON, CSV or Excel.
Use it for startup discovery, new product launch tracking, maker and founder lead generation, competitor launch monitoring, and building a daily new-products feed.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Why this Product Hunt scraper
- Quickstart
- Input reference
- Output reference
- Reviews add-on
- Example output record
- Run via API and CLI
- Fetch results
- Use cases
- Billing and limits
- FAQ and troubleshooting
What it does
The actor reads the public Product Hunt website in the mode you choose and writes one normalized record per product to the run's dataset. Every record carries the listing fields (name, tagline, upvotes, comments, rank, followers, rating, topics, launch date). When withDetails is on (the default), each product page is opened to add the description, makers, the hunter, external website, screenshots and videos, pricing, funding, Y Combinator status, mobile app links and social profiles. Turn on the optional withReviews add-on to also collect each product's individual reviews with per-dimension ratings, pros and cons. Missing source values are returned as null.
No account, developer token or OAuth is needed. You only provide a mode and, optionally, a date, topic or product list.
Why this Product Hunt scraper
A single run gives you leaderboards, topics, product detail, the hunter, and full reviews together, which no single alternative combines. How it compares to other Product Hunt scrapers on the market:
| Capability | This actor | Typical alternatives |
|---|---|---|
| Daily / weekly / monthly / yearly leaderboards | Yes, all four | Some only daily, or day/week |
| Topic and multi-topic scraping | Yes | Some |
| Specific products by URL or slug | Yes | Some |
| Upvotes, comments, and daily/weekly/monthly rank | Yes, all three ranks per product | Often one rank |
| Launch-day votes (traction on launch day) | Yes | Rare |
| Makers | Yes | Most |
| Hunter (who posted the launch) | Yes | Rare |
| Full individual reviews (pros, cons, per-dimension ratings) | Yes (add-on) | One competitor |
| Website, domain, and social links | Yes | Some |
| Funding, Y Combinator status, employee size | Yes | One competitor |
| iOS and Android app links | Yes | Rare |
| Vote filters (min/max upvotes) | Yes | Some |
| No API key or token required | Yes | Varies |
| Export to JSON, CSV, Excel | Yes | Most |
It accepts the inputs the common alternatives accept (leaderboard windows, dates and date ranges, topics, product URLs/slugs, maxItems, vote filters) and returns the union of their output fields plus extras such as the hunter, launch-day votes, all three ranks, mobile app links and full reviews. Competitor capabilities above are based on their public listings and may change.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the top 10 products on the most recent daily leaderboard with full details.
{"mode": "daily","maxProducts": 10,"withDetails": true}
Every input field is optional. Leave date empty for the most recent complete leaderboard. Switch mode to topic with a topicSlug, or to products with productUrls / productSlugs, to target those instead.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
mode | enum | no | daily | What to scrape. One of daily, weekly, monthly, yearly (leaderboards), topic (products under a topic), products (a specific list). |
maxProducts | integer | no | 10 | Maximum products to collect. Also accepts maxItems / maxResults. Free Apify plans are capped at 10 per run. |
withDetails | boolean | no | true | When on, opens each product page to add description, makers, hunter, website, screenshots, videos, rating, pricing, funding and social links. |
withReviews | boolean | no | false | Optional paid add-on. Collects each product's individual reviews with ratings, pros and cons. Paid Apify plans only; charged only when reviews are returned. |
maxReviewsPerProduct | integer | no | 20 | With the reviews add-on on, the maximum reviews per product (1 to 50). |
minVotes | integer | no | (none) | Only return products with at least this many upvotes. |
maxVotes | integer | no | (none) | Only return products with at most this many upvotes. |
date | string | no | (latest) | For leaderboard modes: target date as YYYY-MM-DD. Daily uses that day, weekly its ISO week, monthly its month, yearly its year. |
startDate / endDate | string | no | (none) | For daily mode: sweep every day in the range YYYY-MM-DD to YYYY-MM-DD (up to maxProducts). |
topicSlug | string | no | (none) | For topic mode: a single topic slug, for example artificial-intelligence, productivity, developer-tools, saas. |
topics | string[] | no | (none) | For topic mode: one or more topic slugs to scrape in a single run. |
productUrls | string[] | no | (none) | For products mode: full Product Hunt product or post URLs. |
productSlugs | string[] | no | (none) | For products mode: product slugs, for example notion or figma. |
startUrls | string[] | no | (none) | For products mode: an alternative way to pass product URLs. |
Output reference
One dataset item per product. Types: string, integer, number, boolean, string[], object[], object, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
imageUrl | string | Product thumbnail / logo image URL. |
name | string | Product name. |
tagline | string | Product tagline. |
url | string | Product Hunt product page URL. |
id | string | Product Hunt product ID. |
productSlug | string | Product slug (the part after /products/). |
upvotes | integer | Live upvote count at scrape time. |
votesCount | integer | Alias of upvotes for convenience. |
launchDayVotes | integer | Upvotes the launch had on its launch day. |
commentsCount | integer | Number of comments. |
reviewsRating | number | Average review rating, or null. |
reviewsCount | integer | Number of reviews. |
followersCount | integer | Number of followers. |
pricingType | string | Pricing model, for example free, free_options, paid. |
price | number | Price value, or null. |
priceCurrency | string | Price currency, for example USD. |
category | string | Primary category. |
description | string | Full product description (from the product page). |
websiteUrl | string | External product website URL. |
websiteDomain | string | Domain of the external website, for lead matching. |
iosUrl | string | iOS App Store link, or null. |
androidUrl | string | Google Play link, or null. |
wasInYCombinator | boolean | Whether the product went through Y Combinator. |
fundingAmount | string | Disclosed funding, or null when not shown. |
employeeSize | string | Company size band, or null when not shown. |
isTopProduct | boolean | Whether Product Hunt flags it as a top product. |
stillOnline | boolean | Whether the product is still listed as online. |
launchCount | integer | How many times the product has launched. |
xAccountHandle | string | X (Twitter) handle, or null. |
socialLinks | object | Public social profiles: twitter, facebook, instagram, linkedin, angellist, github, youtube, medium, threads (each a URL or null). |
topics | string[] | Topic names the product is listed under. |
topicSlugs | string[] | Topic slugs (for filtering and links). |
hunter | object | Who posted the launch: name, username, headline, profileUrl. |
makers | object[] | Makers, each with name, username, profileUrl. |
gallery | string[] | Screenshot / gallery image URLs. |
videoUrls | string[] | Product demo video URLs, if any. |
featured | boolean | Whether the launch was featured. |
featuredAt | string | When it was featured (ISO 8601). |
launchNumber | integer | Which launch this is for the product (1 = first). |
launchDate | string | Original launch date (ISO 8601). |
rank | integer | Rank on the selected leaderboard period, or null. |
dailyRank | integer | Daily leaderboard rank, or null. |
weeklyRank | integer | Weekly leaderboard rank, or null. |
monthlyRank | integer | Monthly leaderboard rank, or null. |
period | string | Leaderboard period: daily, weekly, monthly, yearly, or null. |
shortUrl | string | Product Hunt short link. |
reviews | object[] | Individual reviews, populated only when the reviews add-on is on (see below). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed item, a record with a populated error field is written instead. |
Reviews add-on
Set withReviews: true (paid Apify plans) to attach a reviews array to each product. Each review includes:
| Review field | Description |
|---|---|
rating | Overall rating (1 to 5). |
easeOfUse, reliability, valueForMoney, customization | Per-dimension ratings, or null. |
reviewType | founder, user, and similar. |
pros, cons | Selected pros and cons. |
positive, negative, experience | Free-text feedback, or null. |
author, authorUsername, authorHeadline | Reviewer. |
votesCount, commentsCount | Engagement on the review. |
createdAt | When the review was posted (ISO 8601). |
The add-on is charged only when reviews are actually returned for a product; products with no reviews are never charged for it.
Example output record
Real record from a live daily-leaderboard run (gallery trimmed to two of several images):
{"imageUrl": "https://ph-files.imgix.net/4034cd6b-12cc-41c7-bfae-16ebed6abd10.png?auto=format","name": "Airtop","tagline": "Automate your work with just words","url": "https://www.producthunt.com/products/airtop","id": "479863","productSlug": "airtop","upvotes": 271,"votesCount": 271,"launchDayVotes": 270,"commentsCount": 13,"reviewsRating": 4.67,"reviewsCount": 9,"followersCount": 2679,"pricingType": "free_options","price": 0,"priceCurrency": "USD","category": "Artificial Intelligence","description": "Airtop is a conversational web agent builder. It lets you create AI agents that can log in, browse any website, extract data, and complete tasks, just by describing what you want in plain English.","websiteUrl": "https://www.airtop.ai","websiteDomain": "airtop.ai","iosUrl": null,"androidUrl": null,"wasInYCombinator": false,"fundingAmount": null,"employeeSize": null,"isTopProduct": false,"stillOnline": true,"launchCount": 6,"xAccountHandle": "airtop","socialLinks": {"twitter": "https://x.com/airtop","linkedin": "https://www.linkedin.com/company/airtop-ai/","facebook": null,"instagram": null,"angellist": null,"github": null,"youtube": null,"medium": null,"threads": null},"topics": ["Artificial Intelligence", "No-Code", "Vibe coding"],"topicSlugs": ["artificial-intelligence", "no-code", "vibe-coding"],"hunter": { "name": "Ben Lang", "username": "benln", "headline": "Cursor", "profileUrl": "https://www.producthunt.com/@benln" },"makers": [{ "name": "Theo Gravity", "username": "theogravity", "profileUrl": "https://www.producthunt.com/@theogravity" }],"gallery": ["https://ph-files.imgix.net/9e58fd05-9141-4ab6-929c-0241c84b6a64.png?auto=format&fit=crop","https://ph-files.imgix.net/0282f03b-b41e-48c8-9842-bf62af6702db.png?auto=format&fit=crop"],"videoUrls": ["https://youtu.be/VbwUwljqYiI"],"featured": true,"featuredAt": "2026-09-03T00:01:00-07:00","launchNumber": 6,"launchDate": "2022-04-28T15:55:06.368-07:00","rank": 2,"dailyRank": 2,"weeklyRank": 13,"monthlyRank": 40,"period": "daily","shortUrl": "https://www.producthunt.com/r/p/1232031","observedAt": "2026-09-04T03:59:42.811Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~product-hunt-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"mode":"daily","maxProducts":25,"withDetails":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~product-hunt-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"mode":"topic","topicSlug":"artificial-intelligence","maxProducts":100}'
Apify CLI:
apify call scrapers_lat/product-hunt-scraper \--input '{"mode":"products","productSlugs":["notion","figma"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Use cases
- Startup discovery and sourcing: monitor new launches by topic (AI, SaaS, developer tools) and surface funding and Y Combinator signals.
- New product launch tracking: build a daily new-products feed and watch upvotes, launch-day votes and rank movement.
- Maker and founder lead generation: capture the hunter, makers, website domain and social profiles for outreach.
- Competitor and market research: pull reviews with pros, cons and per-dimension ratings to compare products in a category.
- Trend analysis: aggregate weekly, monthly and yearly leaderboards to see which categories are gaining traction.
Billing and limits
- Pay per result. You are charged per product returned (
resultevent). Enriched detail records and the optional reviews add-on are separate events. See the pricing tab. - No charge on failure. If a run finds nothing or errors, the actor writes a single item with an
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 products per run, and the reviews add-on is available on paid plans. Upgrade for higher
maxProducts. - Live data. Upvotes and counts reflect the value at scrape time, so running the same board later returns updated numbers (see
observedAt).
FAQ and troubleshooting
Does this work without a Product Hunt API key, token or login? Yes. It reads the public Product Hunt website, so no account, developer token or OAuth is needed.
How many products come from one leaderboard?
A daily, weekly, monthly or yearly board returns its top launches, usually around 17 to 24 of the highest ranked products for that period. Use maxProducts, date, or a startDate/endDate range to control the range.
How do I get makers, the hunter, description and the website link?
Keep withDetails on (the default), or use products mode with URLs or slugs. Each product page is then opened to add the description, makers, the hunter, external website, screenshots, videos, rating, pricing and funding.
How do I get individual reviews?
Turn on withReviews (paid Apify plans). Each product gets a reviews array with overall and per-dimension ratings, pros, cons and the reviewer. Products with no reviews are not charged for the add-on.
Can I scrape a specific topic like artificial intelligence?
Yes. Set mode to topic and provide a topicSlug such as artificial-intelligence, productivity, developer-tools or saas, or pass several at once via topics.
Can I filter by upvotes?
Yes. Use minVotes and maxVotes to keep only products within an upvote range.
What does the upvotes number represent?
It is the live upvote count Product Hunt shows for that launch at scrape time. launchDayVotes is the count the launch had on its launch day. Running the same board later returns updated counts.
Is this an official Product Hunt tool? No. This actor is independent and has no affiliation with Product Hunt. It accesses only data that is publicly available on the platform.
Example tasks
Preconfigured templates for common scenarios. Open one and press Run, or use it as a starting point:
- Product Hunt Daily Leaderboard Scraper
- Product Hunt Weekly Leaderboard Scraper
- Product Hunt Monthly Leaderboard Scraper
- Product Hunt AI Products Scraper
- Product Hunt SaaS Products Scraper
- Product Hunt Developer Tools Scraper
- Product Hunt Design Tools Scraper
- Product Hunt Marketing Products Scraper
- Product Hunt Productivity Apps Scraper
- Product Hunt No-Code Tools Scraper
Related scrapers
- Apple App Store Reviews & Ratings Scraper: reviews and ratings for any App Store app.
- GitHub Repositories Scraper: repositories with stars, topics and metadata.
- Hacker News Scraper: stories, comments and points.
- Crunchbase Company Scraper: company profiles and funding.
- G2 Software Reviews Scraper: software product reviews and ratings.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Product Hunt. Accesses only data that is publicly available on the platform. Use it in accordance with Product Hunt's terms of service.
