Product Hunt Launch API and MCP — Votes, Ranks, Topics and Product Details
Send a launch slug such as ship-os-by-notion, or the launch page link, and get that launch back as JSON: name, tagline, state, votes, launch-day score, comments, daily, weekly and monthly rank, launch number, dates, the outbound link, topics and a block on the product behind it.
- You send
- a Product Hunt launch slug or the link to the launch page
- You get back
- tagline, votes, comments, daily, weekly and monthly rank, dates, topics, the outbound link and the product behind the launch
- Coverage
- Product Hunt records with a public page.
- Price
- 5 pts — $5 per 1,000
- Charged only when the record resolves. A request that finds nothing is not billed.
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 read it | 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 | $5 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. |
launch | string | The launch identifier you sent. |
launch_id | string | The launch identifier as Product Hunt uses it. |
human | string | Readable summary: id, tagline, votes, comments and launch date. |
total_points | number | Points charged for the run. |
machine.launch.id | string | Numeric launch id, as a string. |
machine.launch.alias | string | Launch slug. |
machine.launch.name | string | Launch name. |
machine.launch.tagline | string | One-line tagline. |
machine.launch.url | string | Link to the launch page. |
machine.launch.launch_state | string | State of the launch, e.g. featured. |
machine.launch.votes_count | number | Votes on the launch. |
machine.launch.launch_day_score | number | Launch-day score as the platform reports it. |
machine.launch.comments_count | number | Comments on the launch. |
machine.launch.daily_rank | number | Rank on the launch day. |
machine.launch.weekly_rank | number | Rank within the week. |
machine.launch.monthly_rank | number | Rank within the month. |
machine.launch.launch_number | number | Which launch this is for the product. |
machine.launch.featured_at | string | When the launch was featured, ISO 8601 with offset. |
machine.launch.scheduled_at | string | When the launch was scheduled. |
machine.launch.created_at | string | When the launch was created. |
machine.launch.updated_at | string | When the launch record last changed. |
machine.launch.image | string | Launch image URL. |
machine.launch.link | string | Outbound link of the launch. |
machine.launch.topics | array | Topics, each with name, slug and url. |
machine.launch.product | object | Product behind the launch: id, slug, name, url, tagline, website_url, rating, review_count and follower_count. |
machine.blocked | boolean | Whether the platform refused the request. |
machine.pages_opened | number | Platform pages read for the run. |
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_launches",
"launch": "ship-os-by-notion",
"launch_id": "ship-os-by-notion",
"human": "# Product Hunt — launch\n\n- **Id:** ship-os-by-notion\n- **Pages opened:** 1\n- **Proxy traffic:** 702.1 KB\n- **Tagline:** The agent-native way to ship software\n- **Votes:** 175\n- **Comments:** 8\n- **Launched:** 2026-07-10T00:01:00-07:00",
"machine": {
"launch": {
"id": "1192317",
"alias": "ship-os-by-notion",
"name": "Ship OS by Notion",
"tagline": "The agent-native way to ship software",
"url": "https://www.producthunt.com/posts/ship-os-by-notion",
"launch_state": "featured",
"votes_count": 175,
"launch_day_score": 153,
"comments_count": 8,
"daily_rank": 9,
"weekly_rank": 55,
"monthly_rank": 189,
"launch_number": 25,
"featured_at": "2026-07-10T00:01:00-07:00",
"scheduled_at": "2026-07-10T00:01:00-07:00",
"created_at": "2026-07-10T00:01:00-07:00",
"updated_at": "2026-10-08T22:51:03-07:00",
"image": "https://ph-files.imgix.net/4dec3dd1-9554-4b57-89b9-1fbea6f42d01.png?auto=format&fit=crop&w=256&h=256",
"link": "https://notion.com/ship-os",
"topics": [
{
"name": "Task Management",
"slug": "task-management",
"url": "https://www.producthunt.com/topics/task-management"
},
{
"name": "Artificial Intelligence",
"slug": "artificial-intelligence",
"url": "https://www.producthunt.com/topics/artificial-intelligence"
}
],
"product": {
"id": "106091",
"slug": "notion",
"name": "Notion",
"url": "https://www.producthunt.com/products/notion",
"tagline": "The all-in-one workspace",
"website_url": "https://www.notion.so",
"rating": 4.83,
"review_count": 1409,
"follower_count": 18746
}
},
"blocked": false,
"pages_opened": 1,
"proxy_traffic_bytes": 718909
},
"total_points": 5
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
One record per request. Results come back in the same envelope as every other source: a session id, a readable summary, the structured result and the points charged.
curl -X POST https://api.neuralverge.ai/functions/v1/run-producthunt-launches \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"launch":"ship-os-by-notion"}'What teams use it for
Where this field shows up in an actual workflow.
Record votes, comments and daily, weekly and monthly rank for a launch you or a competitor ran.
Re-run a competitor's launch slug to see where votes and rank stand now.
Use the product block and outbound link to connect a launch to a company website and rating.
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.
- —Votes and ranks are those shown when you ask; the source does not keep earlier values.
- —Daily, weekly and monthly rank are returned as the platform reports them; the source does not explain how they are computed.
- —Funding and revenue are not on launch pages.
Questions, answered
From the launch link, or from the Product Hunt launches search or leaderboards sources.
Related sources
Try product hunt launch on your own data
One request format across every source in the catalog.