Free
$0/mo
200
Requests / month
- Overage
- Hard limit
- Rate limit
- 10/min
- Card
- Not needed
Daily, weekly, and monthly launches, then one public product page.
Data samples
The page the Product Hunt API reads, and the response it returns for the same query.
https://www.producthunt.com/leaderboard/daily/2026/9/23

{
"engine": "producthunt",
"family": "launches",
"query": {
"period": "daily",
"date": "2026-09-23",
"q": null,
"topic": null
},
"period": "daily",
"date": "2026-09-23",
"range": {
"from": "2026-09-23",
"to": "2026-09-23"
},
"url": "https://www.producthunt.com/leaderboard/daily/2026/9/23",
"count": 1,
"has_more": false,
"results": [
{
"rank": 1,
"daily_rank": 1,
"weekly_rank": 4,
"monthly_rank": 20,
"id": "1256789",
"name": "Solid",
"tagline": "Agents with their own computers, accounts, and budgets.",
"slug": "solid-9",
"url": "https://www.producthunt.com/posts/solid-9",
"product": {
"id": "1105902",
"slug": "solid-3",
"url": "https://www.producthunt.com/products/solid-3"
},
"votes": 456,
"launch_day_votes": 435,
"comments": 46,
"topics": [
{
"name": "Productivity",
"slug": "productivity"
},
{
"name": "Artificial Intelligence",
"slug": "artificial-intelligence"
}
],
"launched_at": "2026-09-23T00:01:00-07:00"
}
],
"next_cursor": null
}Source page captured separately from the recorded response, so live values can differ.
Code
One host, one Bearer key for every Clair API. Each call returns JSON with the same envelope, so a second API is a new path, not a new client.
curl -G "https://api.clair.im/v1/launches?date=2026-09-23&period=daily" \ -H "Authorization: Bearer YOUR_API_KEY"
Reference
Omit date with period=daily for today’s Pacific-time homepage. Otherwise one leaderboard URL for that day, ISO week, or month. q and topic filter the fetched page in memory. Weekly and monthly boards can have another GraphQL page (has_more); this call does not fetch it.
GET /v1/launches
Authorizationheader · stringrequired
datestring
periodstring
qstring
topicstring
pageinteger
Pricing
This API is its own subscription with its own quota. Unused requests expire at renewal. Need a custom volume? Email contact@serinlabs.com.
$0/mo
200
Requests / month
$49.99/mo
12,600
Requests / month
Most popular
$149/mo
50,200
Requests / month
$399/mo
168,300
Requests / month
No monthly fee
$0.006
Per request
Prices in USD, billed monthly by Stripe. Cancel any time from Manage billing.
Live scrape of Product Hunt’s public Apollo pages. Use launches for the homepage or a day/week/month leaderboard, then product for makers, hunter, votes, media, topics, alternatives, and comments on a highlighted launch. It does not log in, vote, comment, crawl the product’s own website, or call Product Hunt’s private GraphQL API.
All of them: Launches, Product. They share this API's monthly quota.
Each call is one request, and each extra page is a new call. A malformed request (400) is not counted, and a request that fails on our side (5xx) is refunded.
Yes. Every Clair API has its own free tier: 200 requests a month, with no card. It resets monthly, and the API stops when the month's requests run out.
On a paid tier, extra calls are billed at the tier's overage rate until its ceiling, then the API returns 429 until the next period. The free tier returns 429 as soon as its requests are used.
No. Each API is its own subscription, and one key works with all of them. A call to an API the account does not subscribe to returns 403 not_subscribed.
Related
APIs teams often combine with the Product Hunt API.
Each Clair API is its own monthly request quota. Unused requests expire. Every API has a free tier to try it.