Product Hunt hub

Product Hunt Posts API

The posts Product Hunt is showing right now, with an optional topic filter, as one JSON list.

GET /v1/product-hunt/posts

1 credit Failed requests are free

About this endpoint

GET /v1/product-hunt/posts returns data.posts, at most 50 entries, with id, name, tagline, url, productSlug, author.name, publishedAt, lastActivityAt and websiteRedirectUrl. Add topic to narrow it to one topic, for example topic=artificial-intelligence; the response echoes it in data.topic and is null when you omit it.

This is Product Hunt's current most-active list, not a chronological or ranked feed. The response has no cursor: page.hasMore is false and page.nextCursor is null. An alias slug is resolved to its canonical topic in data.topic. If the topic value is not one Product Hunt knows, lookupStatus is not_found and posts is empty. A real topic with no current posts is found with an empty list, so branch on both fields rather than on the array length alone.

Product Hunt Posts API FAQ

How do I filter posts by topic?

Send topic with a topic slug, such as artificial-intelligence, developer-tools or fintech. The value is case-sensitive. An unknown topic returns lookupStatus: not_found, not an error.

Can I page through the post list?

No. The list returns at most 50 posts and has no cursor. page.hasMore is always false and page.nextCursor is always null. Use the topic posts or leaderboard routes when you need paging.

What fields does each post have?

id, name, tagline, url, productSlug, author.name, publishedAt, lastActivityAt and websiteRedirectUrl. tagline, publishedAt, lastActivityAt, author.name and websiteRedirectUrl can be null. One author name is shown; the record does not include a username or profile URL.

How much does it cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.