Read a product and its launch
Read one product in full — description, website, categories, follower and review counts, screenshots and gallery media — together with a launch: its tagline, upvotes, comment count, launch date, daily, weekly and monthly rank, topics, makers, hunter and ranking badges. Defaults to the product's most recent launch; pass a launch slug for an older one, or includeLaunches to list every launch it has had.
/product-detail Products https://api.fetchlayer.dev/producthunt/product-detail Headers
Authorization string required Bearer token — your FetchLayer API key.
Parameters
product string required Product slug (for example "notion"), or any Product Hunt product or launch URL.
launch string optional A specific launch slug or launch URL, instead of the product's most recent launch.
includeLaunches boolean optional Also list every launch the product has had, newest first. (default: false)
format string optional json or markdown. (default: json)
timeoutMs number optional Per-request time limit in milliseconds (max 600000).
Response Fields
product-detail
Read a product and its launch
product object The product record.
product.slug string Product slug.
product.description string | null The full product description.
product.websiteUrl string | null The maker's own site, with websiteDomain alongside it.
product.categories object[] Categories the product sits under.
product.socialLinks object Public social profiles listed on the product.
product.media object[] Gallery items: images carry url, videos carry the platform and id.
product.reviewsRating number | null Average review rating, with reviewsCount alongside it.
launch object | null The requested launch, or the most recent one. Null if the product has never launched.
launch.upvotes number | null Upvotes on the launch.
launch.launchDayUpvotes number | null Upvotes as of the end of launch day, where that differs from the current total.
launch.launchedAt string | null When it launched. Null while a launch is still scheduled.
launch.dailyRank number | null Rank on its launch day, with weeklyRank and monthlyRank alongside it.
launch.launchNumber number | null 1 for a product's first launch.
launch.topics object[] Topics the launch was filed under.
launch.makers object[] The people credited as makers.
launch.hunter object | null Whoever posted the launch, who is not always one of the makers.
launch.badges object[] Ranking ribbons the launch earned, such as #1 Product of the Day.
launches object[] Every launch of the product, newest first, when includeLaunches was set.
launchCount number How many launches the product has had.
requestedUrl string The Product Hunt page this result corresponds to.
scrapedAt string ISO timestamp the result was collected at.
notes string[] Read this. Caveats about this specific result — a walk that stopped early, an upstream ceiling, or promoted entries that were dropped. An empty array means nothing was held back.
blocked boolean Always false on a successful response.
Request
curl -X POST "https://api.fetchlayer.dev/producthunt/product-detail" \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"product":"notion","includeLaunches":true}'Response
{
"product": {
"slug": "notion",
"name": "Notion",
"tagline": "The all-in-one workspace",
"reviewsRating": 4.8,
"launchesCount": 12
},
"launch": {
"name": "Notion 3.0",
"upvotes": 2841,
"commentsCount": 312,
"launchedAt": "2026-08-19",
"dailyRank": 1,
"launchNumber": 12
},
"launchCount": 12,
"notes": []
}