Product Hunt Product Reviews API and MCP — Ratings, Review Text, Dates
Send a product slug or link and get its reviews: rating, the review text, positive and negative feedback, sub-ratings, votes and comments on the review, the date, the reviewer and any alternatives the reviewer mentions. All review types are included, up to the max_items you set (up to 250).
- You send
- a Product Hunt product slug or link, and how many results to return
- You get back
- the product's reviews of every type: rating, review text, reviewer, date and alternatives mentioned
- Coverage
- Product Hunt records with a public page.
- Price
- 1 point per returned record — $1 per 1,000
- Billed per record actually returned, capped by max_items. A request that returns nothing costs nothing.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| Product Hunt directly | Open the page on Product Hunt and scroll through the list | Free, and slow | Fine for one record, useless across a list, and the layout differs on every platform |
| Building a scraper | Write it, host it, and repair it when Product Hunt changes its pages | Engineering time | A maintenance commitment for something that isn't your product |
| NeuralVerge | One request, the same shape as every other source in the catalog | $1 per 1,000, misses not billed | Returns what Product Hunt publishes at request time. Other platforms are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
session_id | string | Id of this run, for tracing. |
kind | string | Source type of the response. |
product | string | The product slug you sent. |
max_items | number | The cap you sent on returned records. |
start_page | number | Page the run started from. |
partial | boolean | Whether the run stopped before reaching everything that matched. |
human | string | Readable summary of the run. |
total_points | number | Points charged for the run: 1 per returned record. |
machine.total_items | number | Number of records returned in this response. |
machine.total_found | number | Total matches the platform reports for the request (7 in the sample), which can be larger than what you asked to return. |
machine.page_count | number | Pages read for the run. |
machine.first_item | object | The first returned record, repeated from items[]. Fields below are described on items[]. |
machine.blocked | boolean | Whether the platform refused the request. |
machine.proxy_traffic_bytes | number | Size of the data transferred for the run, in bytes. |
machine.items[].id | string | Review id. |
machine.items[].name | string | Review title, in the form Review by <reviewer name>. |
machine.items[].url | string | Link to the review. |
machine.items[].review_id | string | Numeric review id. |
machine.items[].review_type | string | Type of review, e.g. personal. |
machine.items[].rating | number | Overall rating given. |
machine.items[].ease_of_use_rating | null | Empty in the sample; a rating when the reviewer gave one. |
machine.items[].reliability_rating | null | Empty in the sample; a rating when given. |
machine.items[].value_for_money_rating | null | Empty in the sample; a rating when given. |
machine.items[].customization_rating | null | Empty in the sample; a rating when given. |
machine.items[].overall_experience | string | Review text. |
machine.items[].positive_feedback | null | Empty in the sample; text when given. |
machine.items[].negative_feedback | null | Empty in the sample; text when given. |
machine.items[].alternatives_feedback | null | Empty in the sample; text when given. |
machine.items[].votes_count | number | Votes on the review. |
machine.items[].comments_count | number | Comments on the review. |
machine.items[].created_at | string | Date and time of the review. |
machine.items[].user | object | The reviewer as shown on the review: id, name, username, url, headline and image. |
machine.items[].alternative_products[] | array | Alternatives the reviewer mentions; empty in the sample. |
machine.items[].from_launch | null | Empty in the sample; the launch a review came from, when it did. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "producthunt_products_reviews",
"product": "doplac-crm",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# Product Hunt — product reviews\n\n- **Product:** doplac-crm\n- **Results:** 2 of 7 found\n- **Proxy traffic:** 27.1 KB",
"machine": {
"total_items": 2,
"first_item": {
"id": "181797",
"name": "Review by Alvi Shuvo",
"url": "https://www.producthunt.com/products/doplac-crm/reviews?review=181797",
"review_id": "181797",
"review_type": "personal",
"rating": 5,
"ease_of_use_rating": null,
"reliability_rating": null,
"value_for_money_rating": null,
"customization_rating": null,
"overall_experience": "Doplac CRM is gaining attention for its all-in-one capabilities, making it a solid option for small to medium-sized businesses. It’s designed to cover marketing, sales, and customer relationship manag",
"positive_feedback": null,
"negative_feedback": null,
"alternatives_feedback": null,
"votes_count": 0,
"comments_count": 0,
"created_at": "2024-09-20T21:44:54-07:00",
"user": {
"id": "alvi_shuvo",
"name": "Alvi Shuvo",
"username": "alvi_shuvo",
"url": "https://www.producthunt.com/@alvi_shuvo",
"headline": "i want to test. i am a marketer.",
"image": "https://ph-avatars.imgix.net/7611138/4bb41cf2-7a98-4377-a321-5ac36d045d11.jpeg"
},
"alternative_products": [],
"from_launch": null
},
"items": [
{
"id": "181797",
"name": "Review by Alvi Shuvo",
"url": "https://www.producthunt.com/products/doplac-crm/reviews?review=181797",
"review_id": "181797",
"review_type": "personal",
"rating": 5,
"ease_of_use_rating": null,
"reliability_rating": null,
"value_for_money_rating": null,
"customization_rating": null,
"overall_experience": "Doplac CRM is gaining attention for its all-in-one capabilities, making it a solid option for small to medium-sized businesses. It’s designed to cover marketing, sales, and customer relationship manag",
"positive_feedback": null,
"negative_feedback": null,
"alternatives_feedback": null,
"votes_count": 0,
"comments_count": 0,
"created_at": "2024-09-20T21:44:54-07:00",
"user": {
"id": "alvi_shuvo",
"name": "Alvi Shuvo",
"username": "alvi_shuvo",
"url": "https://www.producthunt.com/@alvi_shuvo",
"headline": "i want to test. i am a marketer.",
"image": "https://ph-avatars.imgix.net/7611138/4bb41cf2-7a98-4377-a321-5ac36d045d11.jpeg"
},
"alternative_products": [],
"from_launch": null
},
{
"id": "182672",
"name": "Review by Mahmudul Hasan Manik",
"url": "https://www.producthunt.com/products/doplac-crm/reviews?review=182672",
"review_id": "182672",
"review_type": "founder",
"rating": 5,
"ease_of_use_rating": null,
"reliability_rating": null,
"value_for_money_rating": null,
"customization_rating": null,
"overall_experience": "Using this CRM last couple of month. Easy to use and lots of features included here. All in one CRM tools for Founder and Freelancers. White Label system can boost your mindset also. Personalise every",
"positive_feedback": null,
"negative_feedback": null,
"alternatives_feedback": null,
"votes_count": 0,
"comments_count": 0,
"created_at": "2024-09-23T10:54:26-07:00",
"user": {
"id": "mhmanik02",
"name": "Mahmudul Hasan Manik",
"username": "mhmanik02",
"url": "https://www.producthunt.com/@mhmanik02",
"headline": "CO-Founder @SlashitApp",
"image": "https://ph-avatars.imgix.net/2285062/8fe1c0cc-f962-46a6-8c70-74aaca234154.png"
},
"alternative_products": [],
"from_launch": null
}
],
"total_found": 7,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 27722
},
"total_points": 2
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
Results come back in the same envelope as every other source: a session id, a readable summary, the structured result and the points charged. max_items caps how many records are returned and billed.
curl -X POST https://api.neuralverge.ai/functions/v1/run-producthunt-products-reviews \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"product":"doplac-crm","max_items":2}'What teams use it for
Where this field shows up in an actual workflow.
Read what reviewers praise and criticise across a product's reviews.
Compare ratings and review text for competing products side by side.
Re-run on a schedule and watch new reviews and rating changes.
Pick out reviews that mention alternatives to see what buyers weigh up.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Product Hunt records with a public page.
Read at request time, so the answer reflects the platform as it stands when you ask.
This source returns information Product Hunt shows publicly. Every response carries the session id you can trace.
- —Each review is attributed to a named reviewer. Use the text for product feedback, not to build profiles of the people who wrote it.
- —Sub-ratings and feedback fields are null when the reviewer did not fill them in.
- —Review text is returned as the platform holds it, in whatever language the reviewer used.
Questions, answered
Yes. The sample shows a personal review, and the source reads all review types the platform shows for the product.
Related sources
Full profile of one product: rating, followers, categories, makers and similar products.
Products whose makers say they use a given product.
Alternatives the platform lists for a product, with similarity score.
Startup directories, funding databases, launch platforms and investor data.
Try product hunt product reviews on your own data
One request format across every source in the catalog.