Skip to content
scrapeatlas.Dashboard

Get a Product Hunt product

Try in Playground

Retrieve a Product Hunt product. view=overview (default) returns the product page: tagline, description, website and social links, rating, review, follower, launch, maker and alternative counts, categories, first and latest launch, media, pros-and-cons tags, Golden Kitty badges and its forum. view=launches lists every launch; view=reviews lists written reviews with aspect ratings, filterable by reviewer type and star rating; view=alternatives lists the alternatives shown for it; view=makers lists its makers. List views page with cursor.

GET/v1/producthunt/productx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
7
slugstringrequiredquery

Required product slug, as in producthunt.com/products/<slug> (for example notion).

Examplelinear
viewenumquery

overview (default), launches, reviews, alternatives or makers. List views accept cursor and limit.

one of: overview, launches, reviews, alternatives, makers

orderenumquery

Per view. launches: date (default, newest first) or votes. reviews: informative (default), newest, oldest, highest_rated or lowest_rated. alternatives: most_relevant (default), highest_rated or recent_launches.

one of: date, votes, informative, newest, oldest, highest_rated, lowest_rated, most_relevant, recent_launches

filterenumquery

reviews view only: all (default), founder (reviews from makers of other products) or personal.

one of: all, founder, personal

ratingstringquery

reviews view only: only reviews with this overall star rating, 1–5.

cursorstringquery

Opaque nextCursor from the previous page. Omit for the first page.

limitstringquery

Records per page, 1–20; defaults to 20 (the source's page ceiling).

Response fields
101
requestIdstring

Request correlation identifier.

HTTP attempts, decoded bytes and duration for the operation, including the single shared retry.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed, or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

Public Product Hunt page for the request.

absolute HTTPS URL

fetchedAtstring

UTC retrieval time.

source is public_api (Product Hunt's public web GraphQL) or public_feed (the Atom launch feed). Complete means this bounded page was returned without known omissions; votes_hidden marks launches whose vote count Product Hunt hides during their first hours (returned as null).

coverage.sourceenum

Always included.

one of: public_api, public_feed

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

The product page (overview), or the parent product (id, slug, name; reviews adds detailedReviewsCount and detailedReviewsRating) for list views.

product.idstring

Product ID as a string.

product.slugstring

Product slug, as in producthunt.com/products/<slug>.

product.namestring

Product name.

product.taglinestringnullable

Product tagline.

product.descriptionstringnullable

Long description, or null.

product.urlstring

Product page URL.

product.websiteUrlstringnullable

The product's own website, or null.

product.websiteDomainstringnullable

Website domain, or null.

product.cleanUrlstringnullable

Website without scheme, or null.

product.logoUuidstringnullable

Logo image identifier, or null.

product.logoUrlstringnullable

Logo image URL derived from logoUuid, or null.

product.isClaimedboolean

Whether the maker team has claimed the page.

product.isTopProductboolean

Whether Product Hunt marks it a top product.

product.isNoLongerOnlineboolean

Whether the product is marked as no longer online.

product.reviewsRatingnumbernullable

Average review rating out of 5, or null.

product.reviewsCountinteger

Review count.

product.detailedReviewsCountinteger

Written review count.

product.followersCountinteger

Follower count.

product.postsCountinteger

Number of launches.

product.addonsCountintegernullable

Add-on count, or null.

product.alternativesCountinteger

Number of listed alternatives.

product.makersCountinteger

Number of team members listed as makers.

product.categoriesCountintegernullable

Number of categories, or null.

product.employeeSizestringnullable

Company size band, or null.

product.fundingAmountstringnullable

Funding band, or null.

product.wasInYCombinatorbooleannullable

Whether the company was in Y Combinator, or null.

product.pricingTypestringnullable

free, paid, payment_required and similar source values, or null.

product.aiReviewSummarystringnullable

Product Hunt's generated summary of reviews, or null.

product.twitterUrlstringnullable

X (Twitter) URL; empty string or null when absent, as the source returns it.

product.facebookUrlstringnullable

Facebook URL, as the source returns it.

product.instagramUrlstringnullable

Instagram URL, as the source returns it.

product.linkedinUrlstringnullable

LinkedIn URL, as the source returns it.

product.angellistUrlstringnullable

Wellfound (AngelList) URL, as the source returns it.

product.threadsUrlstringnullable

Threads URL, as the source returns it.

product.mediumUrlstringnullable

Medium URL, as the source returns it.

product.githubUrlstringnullable

GitHub URL, as the source returns it.

product.iosUrlstringnullable

App Store redirect URL, or null.

product.androidUrlstringnullable

Google Play redirect URL, or null.

Categories: id, slug, name, path and url.

up to 50 items

product.categories.idstring

Always included.

product.categories.slugstring

Always included.

product.categories.namestring

Always included.

product.categories.pathstring

Always included.

product.categories.urlstring

Always included.

First launch: id, slug and createdAt, or null.

product.firstPost.idstring

Always included.

product.firstPost.slugstring

Always included.

product.firstPost.createdAtstring

Always included.

Most recent launch with votes (null while hidden), comments and dates, or null.

product.latestLaunch.idstring

Always included.

product.latestLaunch.slugstring

Always included.

product.latestLaunch.namestring

Always included.

product.latestLaunch.taglinestringnullable

Always included.

product.latestLaunch.createdAtstring

Always included.

product.latestLaunch.featuredAtstringnullable

Always included.

product.latestLaunch.votesCountintegernullable

Always included.

product.latestLaunch.hideVotesCountboolean

Always included.

product.latestLaunch.commentsCountinteger

Always included.

Gallery media: image or video metadata with imageUrl.

up to 50 items

product.media.idstring

Always included.

product.media.imageUuidstringnullable

Always included.

product.media.imageUrlstringnullable

Always included.

product.media.mediaTypestring

Always included.

product.media.originalWidthintegernullable

Always included.

product.media.originalHeightintegernullable

Always included.

Always included.

product.media.metadata.urlstringnullable

Always included.

product.media.metadata.videoIdstringnullable

Always included.

product.media.metadata.platformstringnullable

Always included.

Review-derived pros and cons: name, Positive/Negative type and mention count.

up to 50 items

product.proConTags.idstring

Always included.

product.proConTags.namestring

Always included.

product.proConTags.typestring

Always included.

product.proConTags.countinteger

Always included.

Golden Kitty awards: category, position and year.

up to 50 items

product.goldenKittyBadges.typestring

Always included.

product.goldenKittyBadges.idstring

Always included.

product.goldenKittyBadges.positionintegernullableoptional

Optional.

product.goldenKittyBadges.periodstringnullableoptional

Optional.

product.goldenKittyBadges.datestringnullableoptional

Optional.

product.goldenKittyBadges.categorystringnullableoptional

Optional.

product.goldenKittyBadges.yearstringnullableoptional

Optional.

The product's forum (id, slug, path, url); read it with the forum endpoint. Null when none.

product.discussionForum.idstring

Always included.

product.discussionForum.slugstring

Always included.

product.discussionForum.pathstring

Always included.

product.discussionForum.urlstring

Always included.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
11
HTTPfailure.codeMeaning
200partialUsable data with votes_hidden warnings.
400invalid_requestMissing, duplicate, malformed or unsupported parameters, including incomplete or impossible leaderboard dates.
401unauthorizedMissing or invalid worker API key.
404not_foundThe product, launch, comment, topic, category, forum, discussion or user does not exist.
429upstream_rate_limitedSource throttling; no automatic retry.
502upstream_challengedSource rejected or challenged the unauthenticated request.
502unsupported_pageMalformed, mismatched or non-JSON source data, or a GraphQL error.
502response_too_large payload_too_complexResponse exceeded byte or parsing limits.
502unsafe_redirect request_limit upstream_errorBounded source retrieval could not complete.
503busyAll worker slots are occupied.
504timeoutTotal request deadline expired.