Product Hunt hub

Product Hunt Launches API

Launches for today or a chosen day, week, month or year, with scores and ranks.

GET /v1/product-hunt/launches

1 credit Failed requests are free

About this endpoint

GET /v1/product-hunt/launches returns data.launches, data.totalCount, data.order, data.period and data.page. With no date it returns today. For another period, give year with month, week or day: year=2026&month=10&day=1 for a day, year=2026&week=40 for an ISO week, year=2026&month=10 for a month, or year=2025 for a year. today=true is explicit today and cannot be combined with a date.

order is the rank order the period resolved to, such as DAILY_RANK or MONTHLY_RANK, and period echoes the request. A period with no launches is lookupStatus: found with an empty list, not not_found. Pages hold up to 20 launches. Posts-based lists stop at the first 5,000 rows and set page.truncated: true, so totalCount can be larger than the rows you can reach.

Product Hunt Launches API FAQ

How do I request yesterday's launches?

Give the date explicitly, for example year=2026&month=10&day=1, or the date before today. There is no named yesterday value. Omitting the date means today.

Which date combinations are valid?

year plus day and month for a day, year plus week for an ISO week, year plus month for a month, and year alone for a year. A day without a month, a month or week without a year, or a week beside a month or day is rejected. Week 53 is only valid in a 53-week year.

How do launches differ from the leaderboard?

launches reads the launches for the period. leaderboard reads the ranked posts for the same period shape. Both return order, period, totalCount and a cursor, so pick the list that matches the page you are reproducing.

How do I page through launches?

When data.page.hasMore is true, send data.page.nextCursor as cursor with the same period. A cursor only works with the filters that issued it. If page.truncated is true, more rows exist but none are available past offset 5,000, so there is no next cursor.

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. Each paginated page is a separate billed request.