Product Hunt Category Products API and MCP — Products, Ratings and Review Counts by Category
Send a category slug such as productivity (or the category page link) and a max_items cap, and get the products in that category back as structured JSON: name, link, tagline, rating, review count, number of launches, image and the categories each product is listed under.
- You send
- a Product Hunt category slug or category page link, and how many products you want (up to 250)
- You get back
- products in the category with tagline, rating, review count, number of launches and the categories they are listed under
- 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. |
category | string | The category you sent. |
max_items | number | The cap on returned records, as run. |
start_page | number | Page the run started from. |
partial | boolean | True when the run stopped before reaching max_items. |
human | string | Readable summary: the query, how many results came back and how many were found. |
total_points | number | Points charged for the run. |
machine.total_items | number | Number of products returned in this response. |
machine.total_found | number | Total matches reported by the platform, when it reports one. |
machine.first_item.id | string | Product slug. |
machine.first_item.name | string | Product name. |
machine.first_item.url | string | Link to the product page on Product Hunt. |
machine.first_item.alias | string | Product slug as Product Hunt uses it. |
machine.first_item.product_id | string | Numeric product id, as a string. |
machine.first_item.tagline | string | One-line tagline. |
machine.first_item.rating | number | Average review rating. |
machine.first_item.review_count | number | Number of reviews. |
machine.first_item.post_count | number | Number of launches the product has had. |
machine.first_item.image | string | Product image URL. |
machine.first_item.categories | array | Categories the product is listed under; each has name, slug and url. |
machine.first_item.is_no_longer_online | boolean | Whether Product Hunt marks the product as no longer online. |
machine.items[] | array | Products returned, same shape as first_item. |
machine.page_count | number | Pages read for the run. |
machine.blocked | boolean | Whether the platform refused the request. |
machine.proxy_traffic_bytes | number | Size of the data transferred for the run, in bytes. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "producthunt_categories",
"category": "productivity",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# Product Hunt — category products\n\n- **Category:** productivity\n- **Results:** 2 of 9653 found\n- **Proxy traffic:** 794.9 KB",
"machine": {
"total_items": 2,
"first_item": {
"id": "figma",
"name": "Figma",
"url": "https://www.producthunt.com/products/figma",
"alias": "figma",
"product_id": "109920",
"tagline": "The collaborative interface design tool",
"rating": 4.93,
"review_count": 1589,
"post_count": 34,
"image": "https://ph-files.imgix.net/db00a7a1-6778-4e51-a953-de5a9a339bc9.jpeg?auto=format&fit=crop&w=128&h=128",
"categories": [
{
"name": "Team collaboration software",
"slug": "team-collaboration",
"url": "https://www.producthunt.com/categories/team-collaboration"
},
{
"name": "Wireframing",
"slug": "wireframing",
"url": "https://www.producthunt.com/categories/wireframing"
},
{
"name": "Interface design tools",
"slug": "interface-design-tools",
"url": "https://www.producthunt.com/categories/interface-design-tools"
}
],
"is_no_longer_online": false
},
"items": [
{
"id": "figma",
"name": "Figma",
"url": "https://www.producthunt.com/products/figma",
"alias": "figma",
"product_id": "109920",
"tagline": "The collaborative interface design tool",
"rating": 4.93,
"review_count": 1589,
"post_count": 34,
"image": "https://ph-files.imgix.net/db00a7a1-6778-4e51-a953-de5a9a339bc9.jpeg?auto=format&fit=crop&w=128&h=128",
"categories": [
{
"name": "Team collaboration software",
"slug": "team-collaboration",
"url": "https://www.producthunt.com/categories/team-collaboration"
},
{
"name": "Wireframing",
"slug": "wireframing",
"url": "https://www.producthunt.com/categories/wireframing"
},
{
"name": "Interface design tools",
"slug": "interface-design-tools",
"url": "https://www.producthunt.com/categories/interface-design-tools"
}
],
"is_no_longer_online": false
},
{
"id": "notion",
"name": "Notion",
"url": "https://www.producthunt.com/products/notion",
"alias": "notion",
"product_id": "106091",
"tagline": "The all-in-one workspace",
"rating": 4.83,
"review_count": 1409,
"post_count": 25,
"image": "https://ph-files.imgix.net/ff3e2acf-884a-4f4c-a383-6edfe3de0d88.png?auto=format&fit=crop&w=128&h=128",
"categories": [
{
"name": "Note and writing apps",
"slug": "notes-documents",
"url": "https://www.producthunt.com/categories/notes-documents"
},
{
"name": "Project management software",
"slug": "project-management",
"url": "https://www.producthunt.com/categories/project-management"
},
{
"name": "No-code Platforms",
"slug": "no-code-platforms",
"url": "https://www.producthunt.com/categories/no-code-platforms"
}
],
"is_no_longer_online": false
}
],
"total_found": 9653,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 813954
},
"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-categories \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"category":"productivity","max_items":2}'What teams use it for
Where this field shows up in an actual workflow.
Pull the products in a category to see who else is positioned in your market, with ratings and review counts side by side.
Collect product names, links and taglines for a segment to feed outreach or enrichment.
Read the number of products the platform reports for a category and the launch count for each.
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.
- —Rating and review counts are those shown on Product Hunt when you ask; there is no history.
- —Each response is capped by max_items (up to 250); larger categories need start_page to move through pages.
- —Funding, revenue and employee data are not on these pages; pair with a company source for that.
Questions, answered
Use the Product Hunt categories source, or copy it from the category page link.
Related sources
Try product hunt category products on your own data
One request format across every source in the catalog.