Product Hunt Scraper — Launches, Makers & Comments avatar

Product Hunt Scraper — Launches, Makers & Comments

Pricing

from $1.25 / 1,000 launch scrapeds

Go to Apify Store
Product Hunt Scraper — Launches, Makers & Comments

Product Hunt Scraper — Launches, Makers & Comments

Scrape Product Hunt launches from daily/weekly/monthly/yearly leaderboards (any date or range), topics, searches or URLs. Get website, upvotes, ranks, badges, topics, pricing, media, hunter, makers and comments. $1.50/1k all-in, no login.

Pricing

from $1.25 / 1,000 launch scrapeds

Rating

0.0

(0)

Developer

Zee Lex

Zee Lex

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Product Hunt Scraper

Scrape Product Hunt launches from the daily, weekly, monthly or yearly leaderboard (any date or date range), from topics and searches, or from a list of URLs. Get each launch's name, tagline, description, real website, upvotes, comments, ranks, badges, topics, pricing, images, video links, the hunter, the makers with their social links, and optionally the comments. No login needed.

Built for reliability. Every launch is validated before it's saved. Cloudflare challenges are detected and retried on fresh sessions, then on residential proxies, then optionally in a real browser. The run fails with a clear message instead of quietly returning empty or half-finished data. A day with genuinely no launches finishes successfully with a clear "No launches found" status.

Use cases

  • Lead generation: reach makers of new launches in your niche, with their profile, X/Twitter and website links
  • Competitor and market research: track what launches in your category, how it ranks and how users react
  • Investor deal-flow: scan every day's top launches over any date range
  • Tracking top AI tools: follow the artificial-intelligence topic or daily AI winners
  • Content and newsletters: build "best launches of the week" lists with real ranks and badges

Input

FieldTypeDefaultNotes
modestringleaderboardleaderboard, search or urls
periodstringdailyLeaderboard: daily, weekly, monthly, yearly
dateYYYY-MM-DDtoday (Pacific Time)Leaderboard: single date
dateFrom / dateToYYYY-MM-DD–Leaderboard: every day/week/month/year in the range
searchTermsstring[]–Search mode: keywords or product names
topicsstring[]–Search mode: topic slugs, e.g. artificial-intelligence
startUrlsURL list–URLs mode: launch, product, topic, user, search or leaderboard URLs
maxItemsinteger100Total launches across all inputs
includeMakersbooleantrueOpen launch pages for makers, hunter and full details
includeCommentsbooleanfalseCollect comments
maxCommentsPerLaunchinteger20Used only with comments on
resolveWebsiteUrlsbooleantrueFollow Product Hunt's /r/ link to the real website
usePlaywrightbooleanfalseBrowser fallback for Cloudflare and "load more"
proxyConfigurationobjectApify Proxy (datacenter)Escalates to residential automatically when needed and available

Example: today's daily leaderboard

{ "mode": "leaderboard", "period": "daily", "maxItems": 50 }

Example: every day's launches in a date range

{
"mode": "leaderboard",
"period": "daily",
"dateFrom": "2026-10-01",
"dateTo": "2026-10-07",
"maxItems": 500
}

Example: a topic

{ "mode": "search", "topics": ["artificial-intelligence"], "maxItems": 20 }
{ "mode": "search", "searchTerms": ["ai video editor"], "maxItems": 30, "usePlaywright": true }

Example: a list of URLs with comments

{
"mode": "urls",
"startUrls": [
{ "url": "https://www.producthunt.com/posts/some-launch" },
{ "url": "https://www.producthunt.com/products/some-product" },
{ "url": "https://www.producthunt.com/leaderboard/weekly/2026/43" }
],
"includeComments": true
}

A product URL returns all of that product's launches. A topic or search returns the latest launch of each product found.

Output sample

A real launch (trimmed: 1 of 20 comments, 2 of 3 makers, 2 of 5 media):

{
"launchId": "1278009",
"productId": "1040495",
"name": "Strawberry 1.0",
"slug": "strawberry-1-0",
"tagline": "AI Browser that saves your team >100h/week",
"description": "Strawberry is an AI browser that can do hours of work in minutes. Strawberry's agents, which we call \"Companions\", can research hundreds of leads in p…",
"launchUrl": "https://www.producthunt.com/posts/strawberry-1-0",
"productUrl": "https://www.producthunt.com/products/strawberry",
"websiteUrl": "https://strawberrybrowser.com",
"launchDate": "2026-10-26T07:01:00.000Z",
"dailyRank": 1,
"weeklyRank": 1,
"upvotes": 334,
"commentsCount": 64,
"reviewsCount": 13,
"rating": 4.85,
"topics": [
"Productivity",
"Artificial Intelligence"
],
"pricingType": "freemium",
"thumbnail": "https://ph-files.imgix.net/c35c35a2-a69b-4705-ae4e-3611f14b13ff.png",
"media": [
{
"type": "image",
"url": "https://ph-files.imgix.net/231213b0-bf17-454a-9377-89bb7c954260.png",
"videoUrl": null
},
{
"type": "image",
"url": "https://ph-files.imgix.net/c7efe950-35fe-4b5a-a1e4-6ed9600fc192.png",
"videoUrl": null
}
],
"hunter": {
"name": "Chris Messina",
"username": "chrismessina",
"profileUrl": "https://www.producthunt.com/@chrismessina"
},
"makers": [
{
"name": "Arian Hanifi",
"username": "coffecup25",
"profileUrl": "https://www.producthunt.com/@coffecup25",
"headline": "cto @ strawberry",
"twitter": null,
"website": null
},
{
"name": "Charles Maddock",
"username": "charles_maddock",
"profileUrl": "https://www.producthunt.com/@charles_maddock",
"headline": "CEO @ Strawberry",
"twitter": null,
"website": null
}
],
"badges": [
"Product of the Day #1"
],
"dataSource": "launch_page",
"scrapedAt": "2026-10-27T10:49:57.976Z",
"comments": [
{
"author": {
"name": "Charles Maddock",
"username": "charles_maddock",
"profileUrl": "https://www.producthunt.com/@charles_maddock"
},
"text": "Hi everyone! Charles here, and I'm really excited to share Strawberry 1.0 with you 🍓 A year ago we launched our beta here on Product Hunt. B…",
"upvotes": 15,
"date": "2026-10-24T19:53:54.000Z",
"isMaker": true,
"replies": []
}
]
}

Field notes:

  • websiteUrl is the product's real website (from Product Hunt's own data) with utm_*, ref=producthunt and src=producthunt removed. If only Product Hunt's /r/ link is known and it can't be followed, that link is returned instead (still clickable); RUN_SUMMARY counts these.
  • Topic and search inputs return each listed product's latest launch, in the order Product Hunt lists the products.
  • reviewsCount and rating describe the product (all its launches). New products often have 0.
  • dailyRank / weeklyRank come from Product Hunt's data, or from the leaderboard order when the data lacks them.
  • pricingType is free, paid or freemium when Product Hunt shows it, else null.
  • twitter and website for makers are filled only when the maker has made them public.
  • comments include replies, in page order, and appear only with includeComments on.
  • launchDate falls back to the leaderboard day (date-level precision) when the exact time isn't available.
  • dataSource is launch_page when the launch page was read, or listing when only leaderboard/topic data was used (makers off, or the launch page stayed blocked).

Pricing

$1.50 per 1,000 launches (Free plan), less on paid plans: $1.40 Bronze, $1.30 Silver, $1.25 Gold and up. Plus a tiny $0.00005 per run start.

That one price covers the full record: makers, hunter, real website, media, badges, ranks and, if you turn them on, the comments. There are no extra per-maker or per-detail charges, and Apify platform usage is included, so you pay only per launch saved. Blocked or invalid launches are never saved, so they are never charged.

Speed tip

Turn off includeMakers (and keep comments off) when you only need names, taglines, ranks, upvotes, topics and links. The Actor then reads only leaderboard or topic pages instead of opening every launch, so runs finish several times faster.

Plain HTTP mode runs fine at 1024 MB. Turn on usePlaywright only when you need it, and give the run 2048 MB or more.

Reliability and run status

  • Launches without a launch URL, name or launch date are dropped and counted, never saved. Launches are deduplicated across all inputs.
  • Cloudflare challenges ("Just a moment…", cf-chl, cf-mitigated), HTTP 403/429/503 and pages with no launch data are treated as blocks. Each request is retried up to 4 times on fresh sessions. From the 3rd attempt it switches to residential proxies (if your account has them), and with usePlaywright it finally gets a real-browser attempt.
  • If a launch page stays blocked but the leaderboard already had its data, the launch is still saved from the listing (dataSource: "listing") and doesn't count as lost.
  • The run fails with a clear message when:
    • nothing was saved although results were expected,
    • 20 blocks happen in a row, or
    • at least 25% of requests were truly lost.
  • RUN_SUMMARY (linked from the run's Output tab) shows saved and dropped launches, missing-field percentages, block reasons, residential escalations and browser fallbacks.

Limitations

  • Product Hunt sits behind Cloudflare. Most pages load over plain HTTP, but some sessions get challenged. Residential proxies and the browser fallback raise the success rate, but no setting guarantees it.
  • Topic and search results are paged automatically (?page=2, 3, …) until maxItems is reached.
  • Comments are the top threads by votes with their replies, up to maxCommentsPerLaunch.
  • The browser fallback (usePlaywright) reads launch pages instead of Product Hunt's API, so reviewsCount can be missing on launches it had to rescue.
  • The Actor reads Product Hunt's own page data, which can change. Rising missing-field percentages in RUN_SUMMARY are the early warning.
  • Only publicly visible data is collected. Product Hunt also offers an official API for approved uses. You're responsible for how you use the data, including contacting makers in line with anti-spam and privacy laws.

Development

npm install
npm test # offline parser tests
apify run # live run

Offline end-to-end check against a local Product Hunt stand-in (includes a simulated Cloudflare JS challenge):

npm run build
npm run mock-server & # http://127.0.0.1:4555
PH_BASE_URL=http://127.0.0.1:4555 APIFY_CHROME_EXECUTABLE_PATH=/path/to/chrome node dist/main.js