nvNeuralVerge
Startup & Funding Data

Product Hunt Collection Products API and MCP — Curated Product Lists with Ratings

Send a collection slug such as 0-design-tools (or the collection page link) and a max_items cap, and get the collection's products back as JSON in the order the curator set: name, link, product id, tagline, rating, review count and image.

You send
a Product Hunt collection slug or collection page link, and how many products you want (up to 250)
You get back
products in the collection, in the curator order, with tagline, rating, review count and image
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.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
Product Hunt directlyOpen the page on Product Hunt and scroll through the listFree, and slowFine for one record, useless across a list, and the layout differs on every platform
Building a scraperWrite it, host it, and repair it when Product Hunt changes its pagesEngineering timeA maintenance commitment for something that isn't your product
NeuralVergeOne request, the same shape as every other source in the catalog$1 per 1,000, misses not billedReturns what Product Hunt publishes at request time. Other platforms are separate sources with the same request format
Response

What you get back

Every field in the example response below.

FieldTypeDescription
session_idstringId of this run, for tracing.
kindstringSource type of the response.
collectionstringThe collection you sent.
max_itemsnumberThe cap on returned records, as run.
start_pagenumberPage the run started from.
partialbooleanTrue when the run stopped before reaching max_items.
humanstringReadable summary: the query, how many results came back and how many were found.
total_pointsnumberPoints charged for the run.
machine.total_itemsnumberNumber of products returned in this response.
machine.total_foundnullTotal matches reported by the platform, when it reports one. Null in the sample.
machine.first_item.idstringProduct slug.
machine.first_item.namestringProduct name.
machine.first_item.urlstringLink to the product page on Product Hunt.
machine.first_item.aliasstringProduct slug as Product Hunt uses it.
machine.first_item.product_idstringNumeric product id, as a string.
machine.first_item.taglinenullOne-line tagline. Null in the sample.
machine.first_item.ratingnumberAverage review rating.
machine.first_item.review_countnumberNumber of reviews.
machine.first_item.post_countnullNumber of launches the product has had. Null in the sample.
machine.first_item.imagestringProduct image URL.
machine.first_item.categoriesarrayCategories the product is listed under; each has name, slug and url.
machine.first_item.is_no_longer_onlinebooleanWhether Product Hunt marks the product as no longer online.
machine.items[]arrayProducts returned in collection order, same shape as first_item.
machine.page_countnumberPages read for the run.
machine.blockedbooleanWhether the platform refused the request.
machine.proxy_traffic_bytesnumberSize of the data transferred for the run, in bytes.
Response

Example response

A real response, as returned.

{
  "session_id": "11111111-1111-1111-1111-111111111111",
  "kind": "producthunt_collections",
  "collection": "0-design-tools",
  "max_items": 2,
  "start_page": 1,
  "partial": false,
  "human": "# Product Hunt — collection products\n\n- **Collection:** 0-design-tools\n- **Results:** 2\n- **Proxy traffic:** 34.6 KB",
  "machine": {
    "total_items": 2,
    "first_item": {
      "id": "looka",
      "name": "Looka",
      "url": "https://www.producthunt.com/products/looka",
      "alias": "looka",
      "product_id": "93446",
      "tagline": null,
      "rating": 4.67,
      "review_count": 3,
      "post_count": null,
      "image": "https://ph-files.imgix.net/dee44533-a25f-4e6b-b1f6-d7f7d4445109.png?auto=format&fit=crop&w=128&h=128",
      "categories": [],
      "is_no_longer_online": false
    },
    "items": [
      {
        "id": "looka",
        "name": "Looka",
        "url": "https://www.producthunt.com/products/looka",
        "alias": "looka",
        "product_id": "93446",
        "tagline": null,
        "rating": 4.67,
        "review_count": 3,
        "post_count": null,
        "image": "https://ph-files.imgix.net/dee44533-a25f-4e6b-b1f6-d7f7d4445109.png?auto=format&fit=crop&w=128&h=128",
        "categories": [],
        "is_no_longer_online": false
      },
      {
        "id": "uxarchive",
        "name": "UXArchive",
        "url": "https://www.producthunt.com/products/uxarchive",
        "alias": "uxarchive",
        "product_id": "94247",
        "tagline": null,
        "rating": 5,
        "review_count": 1,
        "post_count": null,
        "image": "https://ph-files.imgix.net/0a8ed72f-3c85-4736-ba84-234f41e347fa.png?auto=format&fit=crop&w=128&h=128",
        "categories": [],
        "is_no_longer_online": false
      }
    ],
    "total_found": null,
    "page_count": 1,
    "blocked": false,
    "proxy_traffic_bytes": 35440
  },
  "total_points": 2
}
Integration

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-collections \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"collection":"0-design-tools","max_items":2}'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Curated shortlists

Turn a curator's tool list into rows you can filter by rating or review count.

Category scouting

Read what a curated collection includes to find products you would otherwise miss.

Tracking a list over time

Re-run the same collection and compare to see products added or reordered.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Product Hunt records with a public page.

Freshness

Read at request time, so the answer reflects the platform as it stands when you ask.

Handling

This source returns information Product Hunt shows publicly. Every response carries the session id you can trace.

What it will not do
  • —Taglines, launch counts and categories can be empty for products in a collection, as in the sample.
  • —The list is read at request time; the platform does not provide earlier versions.
FAQ

Questions, answered

Yes. Products come back in the order the curator set, and start_page continues the list beyond the first page.

Related

Related sources

Try product hunt collection products on your own data

One request format across every source in the catalog.

Get started