List Product Hunt topic posts
List posts of one Product Hunt topic, ordered and cursor-paged, with the total count.
Headers
Get your API keyAPI key (`sfk_...`)
Topic slug, e.g. `artificial-intelligence`; case does not matter.
min 1 chars · max 120 chars · pattern: ^[A-Za-z0-9][A-Za-z0-9._-]*$
How to order the posts: `VOTES` (default), `SCORE`, or one of the rank orders.
one of: DAILY_RANK, WEEKLY_RANK, MONTHLY_RANK, YEARLY_RANK, SCORE, VOTES
Cursor from `page.nextCursor` of the previous response. It only works with the same endpoint and filters.
min 1 chars · max 1024 chars
Endpoint-specific response payload.
`not_found` when no public topic has that slug (checked with the topic lookup when the list is empty). A topic with no posts is `found` with an empty list.
one of: found, not_found
The topic slug of these posts.
The order the posts are sorted by.
The posts on this page.
Post id, e.g. `1162044`.
Post slug, e.g. `teamily-ai`.
Product name on the post.
Tagline, up to 60 characters.
When the post was featured, when it was.
When the post was created.
When the launch was scheduled.
Product Hunt rank on its launch day.
Product Hunt rank in its launch week.
Product Hunt rank in its launch month.
Current score (votes).
Score at the end of launch day.
Total comments on the post, including replies.
≥ 0
Whether the votes count is hidden on the post.
Pricing model the maker set, e.g. `free_options`.
Image id of the thumbnail, e.g. `....png`.
Product Hunt's absolute short URL for the post, e.g. `https://www.producthunt.com/r/p/1162044`. It is not followed.
The topics on the post. A row of a list carries up to 10; a single post carries up to 20.
Topic id, e.g. `268`.
Topic slug, e.g. `artificial-intelligence`.
Topic name, e.g. `Artificial Intelligence`.
How many topics the post has; null when the answer did not include a count.
≥ 0
The product of the post; null when the post has no product.
Product id, e.g. `106091`.
Product slug, e.g. `notion`.
Product name.
How many posts the topic has. It can exceed the 5,000 rows any posts list can reach; check `page.truncated`.
≥ 0
Pagination state for the current page.
Whether another page is available.
Cursor to pass in the next request when more pages exist; null on the last page.
True when more rows exist past the first 5,000, the most any posts list can reach. The list stops here even though `totalCount` is larger.
Metadata describing the request and billing outcome.
Unique request identifier for tracing this API call.
min 1 chars
Credits charged for this request.
≥ 0
Public API version that served the response.
one of: v1
Code example
curl "https://api.socialfetch.dev/v1/product-hunt/topics/artificial-intelligence/posts" \
-H "x-api-key: YOUR_API_KEY"Responses
Posts of a Product Hunt topic.