Product Hunt RSS Feed API
Get the latest launches from Product Hunt's public feed.
- 1 credit per call
- Failed calls are free
- Updated
- producthunt.feed
{ "summary": { "category": "all", "total": 5 }, "items": [ { "title": "Palomino", "published_at": "2026-10-10T17:10:42-07:00", "description": "Ultrafast workspace for agents to run in parallel", "id": "tag:www.producthunt.com,2005:Post/1276270", "updated_at": "2026-10-16T05:20:29-07:00", "url": "https://www.producthunt.com/products/palomino" }, { "title": "Jockey by TwelveLabs", "published_at": "2026-10-09T01:49:45-07:00", "description": "Your entire video library: organized, searchable, understood", "id": "tag:www.producthunt.com,2005:Post/1274680", "updated_at": "2026-10-16T05:25:49-07:00", "url": "https://www.producthunt.com/products/twelvelabs" } ]}
| # | Title | Published at | Description | Updated at | Id | Url |
|---|---|---|---|---|---|---|
| 1 | Palomino | 2026-10-10T17:10:42-07:00 | Ultrafast workspace for agents to run in parallel | 2026-10-16T05:20:29-07:00 | tag:www.producthunt.com,2005:Post/1276270 | https://www.producthunt.com/products/palomino |
| 2 | Jockey by TwelveLabs | 2026-10-09T01:49:45-07:00 | Your entire video library: organized, searchable, understood | 2026-10-16T05:25:49-07:00 | tag:www.producthunt.com,2005:Post/1274680 | https://www.producthunt.com/products/twelvelabs |
| 3 | Dottr | 2026-10-14T19:37:55-07:00 | Agent that drafts contracts, flags risks + gets them signed | 2026-10-16T05:25:47-07:00 | tag:www.producthunt.com,2005:Post/1280874 | https://www.producthunt.com/products/dottr |
| 4 | iKnowMyMac | 2026-10-13T10:56:28-07:00 | See why your Mac is slow, with the evidence and the fix | 2026-10-16T05:21:40-07:00 | tag:www.producthunt.com,2005:Post/1279339 | https://www.producthunt.com/products/iknowmymac |
| 5 | Maybloc | 2026-10-15T09:51:59-07:00 | new SOTA for speech-to-text for multi-speaker audio | 2026-10-16T05:25:32-07:00 | tag:www.producthunt.com,2005:Post/1281682 | https://www.producthunt.com/products/maybloc |
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| category | string | no | Leave it out, or use all, for every launch. | all |
| limit | integer | no | How many launches to return, up to 500. | 5 |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| items[].title | string | The launch's title. | Palomino |
| items[].published_at | string | When it was published. | 2026-10-10T17:10:42-07:00 |
| items[].description | string | The description Product Hunt shows. | Ultrafast workspace for agents to run in parallel |
| items[].id | string | Product Hunt's ID for the item. | tag:www.producthunt.com,2005:Post/1276270 |
| items[].updated_at | string | When it last changed. | 2026-10-16T05:20:29-07:00 |
| items[].url | string | The page on Product Hunt. | https://www.producthunt.com/products/palomino |
| items | array | The results. | 5 records |
| summary | object | Totals for this response. | 2 fields |
| summary.category | string | The category that was asked for. | all |
| summary.total | integer | How many results there are in all. | 5 |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "producthunt.feed", "input": { "category": "all", "limit": 5 }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "producthunt.feed", "input": { "category": "all", "limit": 5 }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "producthunt.feed", "input": { "category": "all", "limit": 5 }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
With Upscrape, get the Product Hunt rss feed for category "all". Tell me what it costs before you run it, then show the results as a table.
More from the Product Hunt API
Product Hunt RSS Feed API FAQ
The short answers. The docs have the long ones.
How much does the Product Hunt RSS Feed API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Every input is optional; the input fields below list what each one does.
Do I need a Product Hunt login?
No. It reads public Product Hunt data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds producthunt.feed, checks its price and runs it with the same credits as the REST API.
Your first Product Hunt call is free.
Up to 100 free credits to start, no card needed.