Product Hunt Launches Scraper avatar

Product Hunt Launches Scraper

Pricing

from $1.80 / 1,000 products

Go to Apify Store
Product Hunt Launches Scraper

Product Hunt Launches Scraper

Collect Product Hunt launches from leaderboards, category or topic pages, and supported Product Hunt URLs. Review names, dates, ranks, votes, categories, media, and product details in structured rows. Leave the launch limit empty to collect all available launches until the source is exhausted.

Pricing

from $1.80 / 1,000 products

Rating

4.3

(5)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

11

Bookmarked

1K

Total users

158

Monthly active users

3.6 hours

Issues response

8 hours ago

Last modified

Security

Limited permissions

Share

🚀 Turn Product Hunt launches into structured research data

Product Hunt Scraper helps founders, marketers, researchers, and sales teams collect public launch data without opening every listing. Export launch names, descriptions, dates, categories, ranks, votes, and comment counts as structured rows.

📦 Product Hunt launch data

Each saved row represents one Product Hunt product or launch. The recordType field tells you which. A launch that appears more than once is saved once. Fields include:

  • Product or launch name, tagline, description, Product Hunt URL, launch date, and thumbnail
  • Upvotes, comments, reviews, followers, launch counts, and available daily, weekly, monthly, or yearly ranks
  • Categories, topics, tags, gallery images, and Product Hunt video assets
  • External links, App Store and Google Play links, pricing type, review ratings, awards, and similar products
  • Product website link and, when you turn on email lookup, public email addresses
  • Optional extra data that you turn on with its own switch: launch comments with replies, product reviews, the product's launch list, makers and team members with public profile details, and Built With tools

Unavailable values are null or [], and some optional fields are left out of a row. A launch can still be saved when optional details or extra data are not available. If a run stops early before every requested launch is saved, the rows already saved stay in the dataset. The run log says why.

🚀 Run Product Hunt Scraper

  1. Choose one Target in the Find products and launches from field: Daily leaderboard, Weekly leaderboard, Monthly leaderboard, Yearly leaderboard, Category pages, Topic pages, or Product Hunt URLs or slugs.
  2. Complete only that Target's options. When Target is daily and no date is entered, the Actor uses today's California-time leaderboard.
  3. Set Maximum rows to save to a positive integer to limit the run. Leave it blank or enter 0 to save all available rows until Product Hunt has no more results for that Target.
  4. Promoted filtering applies to leaderboard, category, and topic pages. Featured filtering applies to daily, weekly, monthly, and yearly leaderboards, including leaderboard URLs entered under Product Hunt URLs or slugs.
  5. Turn on Find public email addresses? when you need public email addresses. Product titles, descriptions, and website links are collected with this switch on or off.
  6. Turn on Include launch comments?, Include product reviews?, Include product launches?, Include makers and team?, or Include built-with tools? only for the extra data you need. Each one has a limit field for how many items go in one row.
  7. Run the Actor and open the dataset from the Output tab.

If Product Hunt blocks every attempt to find launches, no launch can be read, so no rows are saved.

If one launch cannot be read, the Actor skips it and keeps working on other launches it can read. Saved rows stay in the dataset. A launch that is not saved has no launch charge. The run log reports an incomplete result when a launch cannot be read.

If a run stops early before all requested launches are saved, the saved rows stay in the dataset. The run log says why the run stopped early.

⚙️ Input

Choose one source type per run. Fields for other Target sections are ignored. This is the input of a successful current-beta run with the form prefills. The Target and row limit are prefills, not schema defaults. The other values are schema defaults.

{
"maxNbItemsToScrape": 2,
"target": "daily",
"shouldIncludePromotedListings": false,
"shouldScrapeOnlyFeaturedLaunches": false,
"shouldCollectProductDetailsAndEmails": false,
"maxEmailsPerProduct": 5,
"shouldIncludeComments": false,
"maxCommentsPerLaunch": 20,
"shouldIncludeReviews": false,
"maxReviewsPerProduct": 20,
"shouldIncludeLaunches": false,
"maxLaunchesPerProduct": 10,
"shouldIncludeTeam": false,
"maxTeamMembersPerProduct": 20,
"shouldIncludeBuiltWith": false,
"maxBuiltWithPerProduct": 20
}

Input fields

FieldTypeWhat it does
targetstringRequired. Chooses daily, weekly, monthly, yearly, category, topic, or pageUrls. The form pre-fills daily; the schema has no default.
startDatestringSets the first daily leaderboard date in YYYY-MM-DD. Leave both dates empty for today's California-time leaderboard.
endDatestringSets the last date in an inclusive daily range. Leave it empty to use only startDate.
startWeekstringRequired for weekly. Sets the first weekly leaderboard in YYYY-WW, with a week from 01 to 53.
endWeekstringSets the last weekly leaderboard in an inclusive range. Leave it empty to use only startWeek.
startMonthstringRequired for monthly. Sets the first monthly leaderboard in YYYY-MM.
endMonthstringSets the last monthly leaderboard in an inclusive range. Leave it empty to use only startMonth.
startYearintegerRequired for yearly. Sets the first yearly leaderboard, from 1000 to 9999.
endYearintegerSets the last yearly leaderboard in an inclusive range, from 1000 to 9999. Leave it empty to use only startYear.
categorySlugsstring[]Lists unique Product Hunt category slugs, such as ai-code-editors.
topicSlugsstring[]Lists unique Product Hunt topic slugs, such as developer-tools. The old opensource slug is also accepted and uses the open-source page.
productHuntPageUrlsobject[]Lists Product Hunt product slugs or supported product, launch detail, or leaderboard URLs. Each object has a required url field. Use Category or Topic for those pages.
maxNbItemsToScrapeintegerSets a row limit of 0 or more. Leave blank or enter 0 to save all available rows until Product Hunt has no more results for the selected Target. A positive number stops after that many saved rows. The form pre-fills 2; the schema has no default.
minUpvotesintegerSets the lowest current Product Hunt upvote count to keep. Enter 0 or more, or leave blank for no lower limit.
maxUpvotesintegerSets the highest current Product Hunt upvote count to keep. Enter 0 or more, or leave blank for no upper limit.
sortBystringChooses ranking, newest, or votes for ranking, newest launch first, or most current upvotes first. Leave it empty to keep the order of the selected Product Hunt pages.
shouldIncludePromotedListingsbooleanKeeps promoted listings from leaderboard, category, and topic pages. It does not filter product slugs, product URLs, or launch URLs. Defaults to false.
shouldScrapeOnlyFeaturedLaunchesbooleanKeeps only featured launches from daily, weekly, monthly, or yearly leaderboards, including leaderboard URLs in the Product Hunt URLs or slugs Target. It does not filter category, topic, product, or launch inputs. Defaults to false.
shouldCollectProductDetailsAndEmailsbooleanLooks for public email addresses linked to each product. Product titles, descriptions, and website links are collected with this switch on or off. A saved product or launch with at least one public email adds one email charge. Defaults to false.
maxEmailsPerProductintegerSets how many public email addresses to keep for each product. Enter 0 to keep all found addresses. Works only when public email lookup is on. Defaults to 5.
shouldIncludeCommentsbooleanAdds the comment threads of each saved launch, with their replies, to comments. A row that gets at least one comment adds one comments charge. Defaults to false.
maxCommentsPerLaunchintegerSets how many comment threads to get for each launch. Enter 0 to get all threads. Works only when launch comments are on. Defaults to 20.
shouldIncludeReviewsbooleanAdds the Product Hunt reviews of each saved product to reviews. A row that gets at least one review adds one reviews charge. Defaults to false.
maxReviewsPerProductintegerSets how many reviews to get for each product. Enter 0 to get all reviews. Works only when product reviews are on. Defaults to 20.
shouldIncludeLaunchesbooleanAdds the product's Product Hunt launches to launches. A row that gets at least one launch adds one launches charge. Defaults to false.
maxLaunchesPerProductintegerSets how many launches to get for each product. Enter 0 to get all launches. Works only when product launches are on. Defaults to 10.
shouldIncludeTeambooleanAdds the makers and launch team members of each saved product to team. A row that gets at least one team member adds one team charge. Defaults to false.
maxTeamMembersPerProductintegerSets how many makers and team members to get for each product. Enter 0 to get all of them. Works only when makers and team are on. Defaults to 20.
shouldIncludeBuiltWithbooleanAdds the tools from each saved product's Built With section, with name, link, tagline, and thumbnail, to builtWith. A row that gets at least one tool adds one tech stack charge. Defaults to false.
maxBuiltWithPerProductintegerSets how many Built With tools to get for each product. Enter 0 to get all of them. Works only when built-with tools are on. Defaults to 20.

Target choices

For the Daily, Weekly, Monthly, and Yearly leaderboard choices (daily, weekly, monthly, and yearly), use the matching period fields. For Category pages (category), add categorySlugs. For Topic pages (topic), add topicSlugs. For Product Hunt URLs or slugs (pageUrls), add product slugs or supported Product Hunt product, launch detail, or leaderboard URLs. Category and topic pages have their own Targets. A product slug is the part after /products/, such as cursor in https://www.producthunt.com/products/cursor. Product Hunt post, search, home, and other URLs are not supported.

Each range must end on or after its start. A daily end date needs a start date. Weekly, monthly, and yearly choices need their start period. Category, Topic, and Product Hunt URLs or slugs need at least one value in their matching list.

The upvote range and result order apply to every Target.

🧾 Output

Output fields

The dataset has one row for each saved Product Hunt product or launch. Both row types use the same fields below. Unavailable values are null or [], and some optional fields are left out of a row. The table uses dotted paths for nested fields; [] means an array item.

FieldTypeWhat it does
recordTypestringSays whether the row is a product or launch.
isPromotedboolean or nullSays whether Product Hunt identified the placement as promoted. A null value means no listing placement was checked.
thumbnailUrlstring or nullGives the Product Hunt thumbnail URL.
namestringGives the product or launch name.
urlstringGives the Product Hunt product or launch page URL for this row.
productIdstring or nullGives the Product Hunt ID of the product, or the product behind this launch.
taglinestring or nullGives the Product Hunt tagline.
categoriesstring[]Lists Product Hunt categories in the order Product Hunt shows them.
followersnumber or nullGives the visible product follower count.
wasInYCombinatorboolean or nullSays whether the product's company was part of Y Combinator, a program that helps startups.
commentsCountnumber or nullGives Product Hunt's comment count for this launch. The comments list may not match it.
reviewsCountnumber or nullGives Product Hunt's review count for this product. The reviews list may not match it.
reviewRatingnumber or nullGives the average public review rating when the product has reviews.
launchesCountnumber or nullGives Product Hunt's launch count for this product. The launches list may not match it.
dayRanknumber or nullGives the daily leaderboard rank when available.
weekRanknumber or nullGives the weekly leaderboard rank when available.
monthRanknumber or nullGives the monthly leaderboard rank when available.
yearRanknumber or nullGives the yearly leaderboard rank when available.
launchDatestring or nullGives the launch date in YYYY-MM-DD when available.
featuredDatestring or nullGives the date this launch was featured on Product Hunt in YYYY-MM-DD when available.
createdDatestring or nullGives the date the Product Hunt launch was created in YYYY-MM-DD when available.
productCreatedDatestring or nullGives the date the Product Hunt product was created in YYYY-MM-DD when available.
descriptionstring or nullGives the readable product description.
upvotesCountnumber or nullGives the current launch upvote score.
launchDayScorenumber or nullGives Product Hunt's score for this launch on the day it launched, when available.
linksstring[]Lists company and product links shown by Product Hunt.
appStoreUrlstring or nullGives the App Store link Product Hunt shows when the product has an iOS app.
googlePlayUrlstring or nullGives the Google Play link Product Hunt shows when the product has an Android app.
imageUrlsstring[]Lists Product Hunt gallery image URLs.
videoUrlsstring[]Lists Product Hunt video asset URLs.
tagsstring[]Lists Product Hunt topic and tag names in the order Product Hunt shows them.
pricingTypestring or nullGives the pricing type Product Hunt shows, such as free or paid, when available.
pricenumber or nullGives the product price shown in Product Hunt's offer data, when available.
priceCurrencystring or nullGives the currency code for the product price, when available.
employeeSizestring or nullGives the company employee count or size range shown by Product Hunt, as text, when available.
fundingAmountstring or nullGives the company funding amount shown by Product Hunt, as text with any stated currency or unit, when available.
teamobject[]Lists makers, hunters, and other launch-team members shown by Product Hunt. Empty unless Include makers and team? is on.
team[].avatarUrlstring or nullGives a public team member avatar URL.
team[].typestring or nullGives the Product Hunt team role when available.
team[].namestring or nullGives the public team member name.
team[].usernamestring or nullGives the Product Hunt username.
team[].profileUrlstring or nullGives the Product Hunt profile URL for this team member.
team[].headlinestring or nullGives the public profile headline.
team[].aboutstring or nullGives the public profile biography.
team[].followersCountnumber or nullGives the public follower count.
team[].linksstring[]Lists public profile links.
builtWithobject[]Lists tools in Product Hunt's Built With section when available. Empty unless Include built-with tools? is on.
builtWith[].namestring or nullGives the tool name.
builtWith[].urlstring or nullGives the Product Hunt URL for the tool when available.
builtWith[].taglinestring or nullGives the tool tagline when available.
builtWith[].thumbnailUrlstring or nullGives the tool thumbnail URL when available.
alternativesobject[]Lists similar Product Hunt products shown for this product, with their review ratings.
alternatives[].namestring or nullGives the name of a similar Product Hunt product.
alternatives[].urlstring or nullGives the Product Hunt URL for the similar product.
alternatives[].reviewRatingnumber or nullGives the average public review rating for the similar product, when it has reviews.
launchesobject[]Lists the product's Product Hunt launches when available. A launch row leaves out its own launch. Empty unless Include product launches? is on.
launches[].titlestring or nullGives the launch name.
launches[].urlstring or nullGives the launch Product Hunt URL.
launches[].taglinestring or nullGives the launch tagline.
launches[].launchDatestring or nullGives the launch date when available.
launches[].dayRanknumber or nullGives the launch daily rank when available.
launches[].weekRanknumber or nullGives the launch weekly rank when available.
launches[].monthRanknumber or nullGives the launch monthly rank when available.
launches[].yearRanknumber or nullGives the launch yearly rank when available.
launches[].upvotesCountnumber or nullGives the launch upvote score when available.
launches[].commentsCountnumber or nullGives the launch comment count when available.
launches[].thumbnailUrlstring or nullGives the launch thumbnail URL when available.
awardsobject[]Lists the daily, weekly, monthly, and yearly Product Hunt awards this launch won.
awards[].titlestring or nullGives the name of the launch that won the award.
awards[].periodstringSays whether the award is daily, weekly, monthly, or yearly.
awards[].ranknumberGives the place in the award period, such as 1.
awards[].datestring or nullGives the award date in YYYY-MM-DD when available.
commentsobject[]Lists Product Hunt comment threads on this launch, with their replies, when available. Empty unless Include launch comments? is on.
comments[].idstring or nullGives the Product Hunt comment ID.
comments[].parentIdstring or nullGives the ID of the comment this reply answers, or null for a top-level comment.
comments[].userobjectHolds the public Product Hunt commenter profile.
comments[].user.isMakerboolean or nullSays whether the commenter is a maker when known.
comments[].user.usernamestring or nullGives the commenter's Product Hunt username.
comments[].user.namestring or nullGives the commenter's public name.
comments[].user.avatarUrlstring or nullGives the commenter's public avatar URL.
comments[].user.headlinestring or nullGives the commenter's public profile headline.
comments[].user.linksstring[]Lists the commenter's public profile links.
comments[].user.followersCountnumber or nullGives the commenter's public follower count.
comments[].textstring or nullGives the comment text.
comments[].upvotesCountnumber or nullGives the comment upvote count when available.
comments[].timeAgostring or nullGives the relative time shown for the comment.
reviewsobject[]Lists Product Hunt reviews of this product when available. Empty unless Include product reviews? is on.
reviews[].userobjectHolds the public Product Hunt reviewer profile.
reviews[].user.usernamestring or nullGives the reviewer's Product Hunt username.
reviews[].user.namestring or nullGives the reviewer's public name.
reviews[].user.avatarUrlstring or nullGives the reviewer's public avatar URL.
reviews[].user.headlinestring or nullGives the reviewer's public profile headline.
reviews[].user.linksstring[]Lists the reviewer's public profile links.
reviews[].user.followersCountnumber or nullGives the reviewer's public follower count.
reviews[].user.reviewsCountnumber or nullGives the reviewer's review count when available.
reviews[].ratingnumber or nullGives the review rating when available.
reviews[].easeOfUseRatingnumber or nullGives the reviewer's ease-of-use rating when the reviewer gave one.
reviews[].customizationRatingnumber or nullGives the reviewer's customization rating when the reviewer gave one.
reviews[].reliabilityRatingnumber or nullGives the reviewer's reliability rating when the reviewer gave one.
reviews[].valueForMoneyRatingnumber or nullGives the reviewer's value-for-money rating when the reviewer gave one.
reviews[].textstring or nullGives the review text.
reviews[].viewsCountnumber or nullGives the review view count when available.
reviews[].timeAgostring or nullGives the relative time shown for the review.
reviews[].proTagsstring[]Lists pro tags the reviewer selected for the product.
reviews[].conTagsstring[]Lists con tags the reviewer selected for the product.
reviewRatingBreakdownobject[]Lists the public review count for each star rating Product Hunt shows.
reviewRatingBreakdown[].ratingnumberGives the star rating, such as 5.
reviewRatingBreakdown[].countnumberGives the number of public reviews with that star rating.
reviewSummarystring or nullGives Product Hunt's written summary of the public reviews, when shown.
websiteobjectHolds the product website link and public email addresses when available.
website.urlstring or nullGives a product link when available.
website.emailsstring[]Lists public email addresses associated with the product when available.

Launch example

This launch row is from a successful current-beta run with launch comments, product reviews, product launches, and makers and team turned on. The example is shortened. Each "..." value replaces long text or more list items.

{
"recordType": "launch",
"isPromoted": false,
"thumbnailUrl": "https://ph-files.imgix.net/36f833d8-2a72-4b85-b5af-1004e8189193.png",
"name": "TheySaid 4.0",
"url": "https://www.producthunt.com/products/theysaid/launches/theysaid-4-0",
"productId": "596972",
"tagline": "See how users will react, right where you build.",
"categories": [
"Survey and form builders",
"AI Chatbots",
"User research"
],
"followers": 3601,
"wasInYCombinator": false,
"commentsCount": 96,
"reviewsCount": 7,
"launchesCount": 4,
"dayRank": 1,
"weekRank": 2,
"monthRank": 15,
"yearRank": 381,
"launchDate": "2026-10-27",
"featuredDate": "2026-10-27",
"createdDate": "2026-10-27",
"productCreatedDate": "2024-08-02",
"description": "...",
"upvotesCount": 375,
"launchDayScore": 345,
"links": [
"https://theysaid.io",
"https://x.com/theysaidapp",
"https://www.linkedin.com/company/theysaid-app/",
"https://www.facebook.com/people/TheySaid/61568491097712/"
],
"pricingType": "free_options",
"price": 0,
"priceCurrency": "USD",
"appStoreUrl": null,
"googlePlayUrl": null,
"imageUrls": [
"https://ph-files.imgix.net/ac625f66-337a-4a3e-a3ca-0e89deca6c19.png?auto=format&fit=crop",
"..."
],
"videoUrls": [
"https://youtu.be/im-eeYsy0dE"
],
"tags": [
"User Experience",
"Artificial Intelligence",
"UX Design"
],
"team": [
{
"avatarUrl": "https://ph-avatars.imgix.net/1729153/3445d0cf-75aa-4190-bf04-ca391963088c.png?auto=format&crop=faces&fit=crop&h=100&w=100",
"type": "Maker",
"name": "Jaala Seifipour",
"username": "jaala_seifipour",
"profileUrl": "https://www.producthunt.com/@jaala_seifipour",
"headline": "Theysaid",
"about": "Building TheySaid, where real and synthetic users test what you build before it ships. Wearing many hats across product and ops. Always happy to chat about user research!",
"followersCount": 19,
"links": [
"https://twitter.com/jaalichkas"
]
},
"..."
],
"builtWith": [
{
"name": "Google Cloud Platform",
"url": "https://www.producthunt.com/products/google-cloud-platform",
"tagline": "A suite of cloud computing services by Google",
"thumbnailUrl": "https://ph-files.imgix.net/2df0eb38-7b7e-48a7-80d9-05c57b48d3d4.png"
},
"..."
],
"awards": [
{
"title": "TheySaid 4.0",
"period": "daily",
"rank": 1,
"date": "2026-10-27"
}
],
"launches": [
{
"title": "TheySaid 3.0",
"url": "https://www.producthunt.com/products/theysaid/launches/theysaid-3-0",
"tagline": "The everything app, for feedback",
"launchDate": "2025-11-10",
"dayRank": 2,
"weekRank": 8,
"monthRank": 28,
"yearRank": 430,
"upvotesCount": 430,
"commentsCount": 63,
"thumbnailUrl": "https://ph-files.imgix.net/17e458e4-9480-45cd-b241-4c6c28f34980.gif"
},
"..."
],
"comments": [
{
"user": {
"isMaker": true,
"username": "chrishicken",
"name": "Chris Hicken",
"avatarUrl": "https://ph-avatars.imgix.net/2221918/2b3343bc-f54d-4794-8729-7161caac21f4.png",
"headline": "Theysaid",
"links": [
"https://twitter.com/ChrisHicken",
"https://twitter.com/chrishicken",
"https://www.linkedin.com/in/chrishicken/"
],
"followersCount": 144
},
"text": "...",
"upvotesCount": 15,
"timeAgo": "14 days ago",
"id": "5956545",
"parentId": null
},
"..."
],
"reviews": [
{
"user": {
"username": "winstonzin",
"name": "Winston Zin",
"avatarUrl": "https://ph-avatars.imgix.net/6484748/9a779154-b5c4-43f6-aff3-89890bc90023.jpeg",
"headline": "impakt.com - AI fitness and social app",
"links": [
"https://twitter.com/winston_zin"
],
"followersCount": 86,
"reviewsCount": 6
},
"rating": 5,
"easeOfUseRating": 5,
"customizationRating": 5,
"reliabilityRating": 5,
"valueForMoneyRating": 5,
"text": "...",
"proTags": [],
"conTags": [],
"viewsCount": 264,
"timeAgo": "304 days ago"
},
"..."
],
"reviewRating": 5,
"reviewRatingBreakdown": [
{
"rating": 5,
"count": 7
},
{
"rating": 4,
"count": 0
},
{
"rating": 3,
"count": 0
},
{
"rating": 2,
"count": 0
},
{
"rating": 1,
"count": 0
}
],
"reviewSummary": null,
"alternatives": [
{
"name": "Sprig",
"url": "https://www.producthunt.com/products/sprig",
"reviewRating": 5
},
"..."
],
"website": {
"url": "https://theysaid.io",
"emails": []
}
}

Product example

This complete product row is from a successful current-beta run with a product slug input and public email lookup on, keeping up to 2 emails. The extra-data switches were off, so team, launches, comments, and reviews are empty.

{
"recordType": "product",
"isPromoted": null,
"thumbnailUrl": "https://ph-files.imgix.net/9d9aa008-ca0e-4f10-84a1-211ae6875f45.png",
"name": "Linear",
"url": "https://www.producthunt.com/products/linear",
"productId": "111617",
"tagline": "The product development system for teams and agents.",
"categories": [
"Project management software",
"Issue tracking software"
],
"followers": 3256,
"wasInYCombinator": false,
"commentsCount": 10,
"reviewsCount": 463,
"launchesCount": 11,
"dayRank": 8,
"weekRank": 45,
"monthRank": 192,
"yearRank": 1608,
"launchDate": "2026-05-29",
"featuredDate": "2026-05-29",
"createdDate": "2026-05-29",
"productCreatedDate": "2019-10-30",
"description": "Linear is a new species of product tool. Purpose-built for product teams with agent workflows at its core, it sets a new standard for planning and building products. Linear is the tool of choice for 20,000+ companies including OpenAI, Ramp, and Vercel.",
"upvotesCount": 174,
"launchDayScore": 152,
"links": [
"https://linear.app",
"https://x.com/linear",
"https://www.linkedin.com/company/linearapp/",
"https://github.com/linear",
"https://www.threads.net/@linear_app",
"http://linear.app/diffs"
],
"pricingType": null,
"price": null,
"priceCurrency": null,
"appStoreUrl": "https://apps.apple.com/us/app/linear-mobile/id1645587184",
"googlePlayUrl": "https://play.google.com/store/apps/details?id=app.linear&hl=en_US",
"imageUrls": [
"https://ph-files.imgix.net/35d1d856-e430-4765-8be8-69e6d2b501c5.png?auto=format&fit=crop",
"https://ph-files.imgix.net/6e3637a5-34df-4be6-a901-e09a0ea27bfb.png?auto=format&fit=crop",
"https://ph-files.imgix.net/9adc9dbe-b061-4ee2-807a-e08c7d980198.png?auto=format&fit=crop"
],
"videoUrls": [
"https://youtu.be/7gZBxBTapDQ"
],
"tags": [
"Productivity",
"Software Engineering",
"GitHub"
],
"team": [],
"builtWith": [],
"awards": [],
"launches": [],
"comments": [],
"reviews": [],
"reviewRating": 4.93,
"reviewRatingBreakdown": [
{
"rating": 5,
"count": 440
},
{
"rating": 4,
"count": 21
},
{
"rating": 3,
"count": 3
},
{
"rating": 2,
"count": 1
},
{
"rating": 1,
"count": 1
}
],
"reviewSummary": "Reviewers mostly see Linear as a fast, clean, low-friction tool for issue tracking, sprint work, and team alignment, especially compared with heavier tools like Jira. They repeatedly praise the responsive UI, keyboard shortcuts, simple workflows, and strong integrations with GitHub, Slack, and agent tooling. Founders of [daily.dev](https://www.producthunt.com/products/daily-dev), [Jupitrr AI](https://www.producthunt.com/products/jupitrr), and [Basedash: AI data analyst](https://www.producthunt.com/products/basedash) also highlight MCP-based automation and AI-agent workflows. The main complaints are limited roadmap flexibility, weak board-style views, and some confusing cycle versus active-task behavior.",
"alternatives": [
{
"name": "Jira",
"url": "https://www.producthunt.com/products/jira",
"reviewRating": 4.7
},
{
"name": "Asana",
"url": "https://www.producthunt.com/products/asana",
"reviewRating": 4.63
},
{
"name": "Plane",
"url": "https://www.producthunt.com/products/planehq",
"reviewRating": 5
},
{
"name": "Shortcut",
"url": "https://www.producthunt.com/products/shortcut",
"reviewRating": 5
},
{
"name": "Bugasura",
"url": "https://www.producthunt.com/products/bugasura",
"reviewRating": 4.87
}
],
"website": {
"url": "https://linear.app",
"emails": [
"hello@linear.app",
"security@linear.app"
]
}
}

See the Output schema for the same fields in the public schema.

💳 Pricing

This Actor uses pay-per-event pricing. You pay only for what is saved:

  • Product: charged once for each saved product or launch.
  • Public email: charged once for a saved row with at least one public email address, only when email lookup is on.
  • Launch comments: charged once for a saved row that gets at least one comment, only when launch comments are on.
  • Product reviews: charged once for a saved row that gets at least one review, only when product reviews are on.
  • Product launches: charged once for a saved row that gets at least one launch, only when product launches are on.
  • Team members: charged once for a saved row that gets at least one maker or team member, only when makers and team are on.
  • Tech stack: charged once for a saved row that gets at least one Built With tool, only when built-with tools are on.

An extra-data charge is per row, not per item, so the limit fields do not change it. A row where the switch is on but nothing is found has no charge for that data. A run with no saved rows has no Actor event charge. See the Pricing tab for current rates.

🔌 Integrations

Use Apify datasets, API access, schedules, and webhooks to export or automate results. This walkthrough shows how to connect an Actor to other workflows:

❓ FAQ

What happens if one launch cannot be read?

The Actor skips that launch and keeps working on other launches it can read. Rows already saved stay in the dataset. The skipped launch has no launch charge, and the run log reports an incomplete result.

What happens if Product Hunt blocks every attempt to find launches?

No launch can be read, so no rows are saved. Retry later because access to Product Hunt can change between runs.

What happens if a run stops early?

Rows saved before the stop remain in the dataset, and charges for those saved rows remain. The run log says why the run stopped. Set Maximum rows to save when you want a smaller run.

How do I keep a large run manageable?

Turn off Find public email addresses? and the extra-data switches when you do not need that data. Set a positive Maximum rows to save limit for a smaller run. Leave it blank or enter 0 to save all available rows until Product Hunt has no more results for the selected Target.

Can I submit a Product Hunt launch URL?

Yes. Choose Product Hunt URLs or slugs as the Target to submit product slugs or supported Product Hunt product, launch detail, or leaderboard URLs. Choose the Category or Topic Target for those pages. Product Hunt post, search, home, and other URLs are not supported.

Why are some fields null or empty arrays?

Product Hunt does not show every optional fact for every launch. Missing extra product details do not discard a valid launch. The row keeps null or [] for unavailable values, and some optional fields are left out. A launch that cannot be read is skipped.

Can I use several target types in one run?

Choose one Target per run. The Product Hunt URLs or slugs Target accepts product slugs and supported product, launch detail, or leaderboard URLs. Category and topic pages use their own Targets.

Are comments, reviews, launch history, makers, Built With tools, and public email addresses always included?

No. Comments, reviews, launch history, makers and team, Built With tools, and public email addresses each have their own switch, and all are off by default. Each list also has a limit field. Product titles, descriptions, and website links are collected without a switch. Product Hunt may not show every field on each launch, so some values can be empty.

Do I need a Product Hunt login or API key?

No. The Actor works without a Product Hunt login or API key.

Can I export the results to a spreadsheet or JSON file?

Yes. Download the dataset from the Output tab as a spreadsheet or JSON file.

Can I collect launches on a schedule?

Yes. Run the daily leaderboard on an Apify schedule and send completed datasets through the API or a webhook. The Actor does not track changes or keep history between runs.

Can I run the Actor through an API?

Yes. Use the Apify API to start runs and get dataset rows. This gives you a Product Hunt API-style way to get launch data as JSON without a Product Hunt API key.

📝 Changelog

v7.0 (08-11-2026)

  • builtWith is now empty unless you turn on shouldIncludeBuiltWith. This lets you pay only for the extra data you need. A saved row that gets at least one Built With tool adds one tech stack charge. Turn on the switch in saved inputs and API calls if you need this data.
  • Set how many Built With tools go in one row with maxBuiltWithPerProduct. Enter 0 to get all tools.
  • When some data cannot be read, the run log now names the missing data and the affected products.
  • Reliability improvements.

v6.0 (31-10-2026)

  • comments, reviews, launches, and team are now empty unless you turn on their switch: shouldIncludeComments, shouldIncludeReviews, shouldIncludeLaunches, or shouldIncludeTeam. This lets you pay only for the extra data you need. Each saved row adds one charge for each kind of extra data it gets. Turn on the switches you need in saved inputs and API calls.
  • Set how many items go in one row with maxCommentsPerLaunch, maxReviewsPerProduct, maxLaunchesPerProduct, and maxTeamMembersPerProduct. Enter 0 to get all items.
  • Set maxEmailsPerProduct to limit how many public email addresses each product keeps.
  • The employeeSize and fundingAmount fields are removed because they are no longer supported. They have no replacement.
  • Yearly leaderboards ordered by newest launch now return the newest launches of that year.
  • Reliability improvements.

v5.0 (24-10-2026)

  • isPromoted can now be null for a product or launch URL you submit directly, because no listing placement was checked. Update tools that require a boolean to handle this unknown value.
  • Rows add recordType to show whether they hold a product or a launch.
  • A launch row no longer lists its own launch URL in launches. Product rows keep the product's visible launches.
  • Company size and funding can now be read from replies to Product Hunt company comments.

v4.0 (23-10-2026)

  • For category pages, set target: category with categorySlugs. For topic pages, set target: topic with topicSlugs. Do not add those URLs to productHuntPageUrls.
  • The shouldScrapeWebsite input is removed. Replace it with shouldCollectProductDetailsAndEmails in saved inputs and API calls to collect public email addresses.
  • To keep the website object focused on the product link and public email addresses, website.title, website.description, and website.rawText are removed. They have no replacement.
  • Set maxNbItemsToScrape to 0 to remove the row limit for the selected Target.
  • Rows can now include company size and funding from more wording in Product Hunt company comments.
  • Reliability improvements.

v3.0 (20-10-2026)

  • The links field still holds Product Hunt's listed URLs. xAccountHandle was removed, with no replacement handle field.
  • Set a minimum or maximum upvote count to filter launches.
  • Order results by ranking, newest launch, or most upvotes.
  • Use product page URLs or product slugs in the page URL input.
  • Rows add price and currency when Product Hunt shows them.
  • Rows add company size and funding when found in company comments on Product Hunt.

v2.1 (20-10-2026)

  • Rows add product ID, featured date, product created date, launch day score, and Y Combinator status when Product Hunt shows them.
  • Reviews add ease of use, customization, reliability, and value for money ratings when the reviewer gave them.
  • Reviews add the pro and con tags the reviewer picked.
  • Awards include yearly Product Hunt awards.
  • Reviews and launch history are no longer cut off at 50 items.
  • Daily rank now comes from the product's own launch when Product Hunt shows it, and from the leaderboard position when it does not.
  • App Store and Google Play links are filled in from the store buttons Product Hunt shows.
  • Review rating and rating breakdown now fill in from Product Hunt, and products with no reviews show an empty rating instead of 0.
  • Comment, review, and launch counts are described as Product Hunt's counts, which may not match the saved lists.
  • When one product cannot be read, the run keeps looking for more launches, so it can still reach the number you asked for.
  • Runs with input fields this Actor does not support now fail with an error instead of reporting success with no rows.
  • An empty week, an unpublished week, or a missing category page now logs a warning, and the run finishes normally.
  • Reliability improvements.

v2.0 (18-10-2026)

  • Breaking change: productHuntPageUrls now takes URL objects with a url field instead of plain text URLs. Use the same format in saved inputs and API calls.
  • Runs that get close to a memory or time limit stop early on their own. Saved rows stay in the dataset. If work was cut short, the run succeeds with a warning that says why, instead of failing.
  • Launches are saved as soon as they finish. A slow launch no longer holds back the launches after it.
  • Reliability improvements.

v1.0 (07-10-2026)

  • Category and topic targets use slug lists, and the URL list accepts their supported pages.
  • Comments, reviews, Built With details, and launch history are collected without separate input switches.
  • When a launch cannot be read, saved rows remain in the dataset, other launches continue, and the run reports an incomplete result.

v0.0

  • Initial release with daily, weekly, monthly, yearly, category, topic, and supported page URL Targets.
  • Initial release with optional comments, reviews, Built With, launch history, and public email addresses.
  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré