Product Hunt Reviews API
Detailed product reviews with ratings, pros, cons, question answers and the reviewer.
GET /v1/product-hunt/products/{slug}/reviews1 credit Failed requests are free
About this endpoint
GET /v1/product-hunt/products/{slug}/reviews returns data.reviews, data.productSlug, data.order, data.totalCount and data.page. Each review has id, overallRating, overallExperience, easeOfUseRating, customizationRating, reliabilityRating, valueForMoneyRating, positiveFeedback, negativeFeedback, alternativesFeedback, reviewType, origin, createdAt, selectedPros, selectedCons, questionAnswers, alternativeProducts, fromPost and user.
The order parameter accepts customers, highest_rated, informative, latest_launch, lowest_rated, newest and oldest; newest is the default. Pages hold up to 20 reviews. A product with no reviews is lookupStatus: found with an empty reviews list, while a product that does not exist is not_found.
Product Hunt Reviews API FAQ
Which review orders can I ask for?
customers, highest_rated, informative, latest_launch, lowest_rated, newest and oldest. newest is the default. The response echoes the order it used in data.order.
What do pros and cons look like?
selectedPros and selectedCons are arrays of { name, count }. The name is the selected phrase and the count is how often it was picked. positiveFeedback, negativeFeedback and alternativesFeedback carry the reviewer's own text and can be null. alternativeProducts lists products the reviewer used before this one, and fromPost names the launch the review was left on; both can be null.
How do I get the next page of reviews?
When data.page.hasMore is true, send data.page.nextCursor as the cursor query parameter with the same product slug and order. A cursor only works with the filters that issued it.
Does an empty list mean the product is missing?
No. Check data.lookupStatus. A found product with no reviews returns found and an empty list. A slug with no public product returns not_found.
How much does it cost?
Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth. Each paginated page is a separate billed request.
Other Product Hunt endpoints
- PostsGET /v1/product-hunt/posts
- PostGET /v1/product-hunt/posts/{slug}
- CommentsGET /v1/product-hunt/posts/{slug}/comments
- ProductGET /v1/product-hunt/products/{slug}
- UserGET /v1/product-hunt/users/{username}
- User postsGET /v1/product-hunt/users/{username}/posts
- SearchGET /v1/product-hunt/search
- LaunchesGET /v1/product-hunt/launches