Product Hunt

List Product Hunt topic posts

List posts of one Product Hunt topic, ordered and cursor-paged, with the total count.

GET/v1/product-hunt/topics/{slug}/posts
1credit
x-api-keystringheader

API key (`sfk_...`)

Parameters
3
slugstringrequiredpath

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._-]*$

orderstringoptionalquery

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

cursorstringoptionalquery

Cursor from `page.nextCursor` of the previous response. It only works with the same endpoint and filters.

min 1 chars · max 1024 chars

Response fields
40

Endpoint-specific response payload.

datalookupStatus
string

`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

datatopic
string

The topic slug of these posts.

dataorder
stringnullable

The order the posts are sorted by.

The posts on this page.

dataposts[]id
string

Post id, e.g. `1162044`.

dataposts[]slug
string

Post slug, e.g. `teamily-ai`.

dataposts[]name
string

Product name on the post.

dataposts[]tagline
stringnullable

Tagline, up to 60 characters.

dataposts[]featuredAt
stringnullable

When the post was featured, when it was.

dataposts[]createdAt
stringnullable

When the post was created.

dataposts[]scheduledAt
stringnullable

When the launch was scheduled.

dataposts[]dailyRank
stringnullable

Product Hunt rank on its launch day.

dataposts[]weeklyRank
stringnullable

Product Hunt rank in its launch week.

dataposts[]monthlyRank
stringnullable

Product Hunt rank in its launch month.

dataposts[]latestScore
integer

Current score (votes).

dataposts[]launchDayScore
integer

Score at the end of launch day.

dataposts[]commentsCount
integer

Total comments on the post, including replies.

≥ 0

dataposts[]hideVotesCount
boolean

Whether the votes count is hidden on the post.

dataposts[]pricingType
stringnullable

Pricing model the maker set, e.g. `free_options`.

dataposts[]thumbnailImageUuid
stringnullable

Image id of the thumbnail, e.g. `....png`.

dataposts[]shortenedUrl
string

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.

dataposts[]topics[]id
string

Topic id, e.g. `268`.

dataposts[]topics[]slug
string

Topic slug, e.g. `artificial-intelligence`.

dataposts[]topics[]name
string

Topic name, e.g. `Artificial Intelligence`.

dataposts[]topicsTotalCount
integernullable

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.

dataposts[]productid
string

Product id, e.g. `106091`.

dataposts[]productslug
string

Product slug, e.g. `notion`.

dataposts[]productname
string

Product name.

datatotalCount
integer

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.

datapagehasMore
boolean

Whether another page is available.

datapagenextCursor
stringnullable

Cursor to pass in the next request when more pages exist; null on the last page.

datapagetruncated
boolean

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.

metarequestId
string

Unique request identifier for tracing this API call.

min 1 chars

metacreditsCharged
integer

Credits charged for this request.

≥ 0

metaversion
string

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.