Product Hunt API. Launches, products and reviews as JSON.
Read public Product Hunt posts, products, launches, leaderboards, comments, reviews, topics, categories and user profiles with one API key.
- Posts and launches
- Cursor paging
- 1 credit per request
- Failed requests aren't charged
Teams running monitoring, research, and enrichment pipelines
Why Social Fetch
Product Hunt data as JSON. You build the product.
Live Product Hunt data in one response shape, with platform changes handled for you.
Product Hunt, plus every other platform
One key and one response envelope for Product Hunt and 56 more platforms.
Pricing you can reason about
One request, one credit. Know how far your balance will go before you run your next batch.
Live data on every request
Fetch public data when you ask for it.
Nothing to maintain
We handle platform changes and breakages.
Built for production jobs
Run concurrent workloads with explicit statuses and request IDs.
Regular jobs. Better rates.
Running lookups every month? Get lower per-credit rates with a monthly plan. For occasional projects, choose pay as you go.
What Product Hunt data can you get?
14 endpoints, one API key. Every response comes back as live JSON in the same envelope.
Posts
Products
Users
Search
Launches
Topics
Categories
Browse all 14 Product Hunt endpoints
Posts
Products
Users
Search
Launches
Topics
Categories
What teams build with Product Hunt data
Monitoring, enrichment, research and content workflows on Product Hunt data, on the same API as every other platform.
How it works
Your first request in three steps.
Use TypeScript or your automation tool of choice.
Sources
+ 51 more platforms
One request
GET/v1/tiktok/profiles/
x-api-key: sk_live_••••••••
Same JSON shape
{
"data": {
"lookupStatus": "found",
"profile": {
"platform": "tiktok",
"handle": "charlidamelio",
"displayName": "charli d’amelio",
"verified": true
},
"metrics": {
"followers": 160263648
}
}
}Step 1
Create your free account
Get an API key with 100 requests included.
Step 2
Choose an endpoint
Pass a username, URL, keyword, or post ID.
Step 3
Get clean JSON
Use the response immediately or send it into your pipeline.
Works with your stack
Code, automate, or connect your AI.
TypeScript
n8n
- Make
- Apify
- MCP
- AI clients
Pricing
Social data, priced simply.
Start with 100 free credits. Monthly plans give you predictable volume and lower per-request rates.
Starter
18,000credits
$1.61 per 1k · $0.00161 per request
- Top up from $1.61 / 1k if you run out
- Up to 25 monitors
Growth
50,000credits
$1.58 per 1k · $0.00158 per request
- Top up from $1.58 / 1k if you run out
- 5 team seats
- Up to 100 monitors
Scale
150,000credits
$1.50 per 1k · $0.00150 per request
- Top up from $1.50 / 1k if you run out
- 25 team seats
- Up to 250 monitors
- Cancel anytime
- 30-day money-back guarantee
- Price locked while you stay
Need 1M+ credits, invoicing, or volume rates? Talk to us
Trust signals
DevHunt
Product Hunt
Uneed
Customers
Teams building on Social Fetch.
“Our TikTok and Instagram scrapers broke constantly. Social Fetch took us off that rotation — we ship product again.”
“Transcripts at volume from one endpoint. No broken scrapers for our small team to maintain.”
“Live profile data on every request. We never flag accounts from a stale cache.”
“Heavy concurrent load, no rate limits to negotiate. The rare API I haven't wrapped in retries.”
Product Hunt API: common questions
Is there a Product Hunt API for posts, products and launches?
Yes. Social Fetch has fourteen Product Hunt routes under /v1/product-hunt: posts, a product, a product's reviews, a post, a post's comments, a user, a user's post list, search, launches, leaderboard, a topic, a topic's posts, topics and a category. Authenticate with your Social Fetch API key in x-api-key.
How do I filter the post list by topic?
Add topic to GET /v1/product-hunt/posts, for example topic=artificial-intelligence or topic=developer-tools. The value is used as written. A topic Product Hunt does not serve returns lookupStatus: not_found with an empty posts list, so check the status before treating an empty list as no activity.
How are launches and the leaderboard different?
GET /v1/product-hunt/launches lists the launches for a period, with launches, totalCount and the order and period it resolved to. GET /v1/product-hunt/leaderboard reads the ranked posts for the same period shape. Both default to today when you give no date, and both can be paged with page.nextCursor.
How do I page through a Product Hunt list?
Read data.page.hasMore. When it is true, send data.page.nextCursor as the cursor query parameter on the same route with the same filters. Light lists hold up to 20 rows per page; the topic list holds up to 100. 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. The post list is the exception: it has no cursor and returns at most 50 posts.
What does lookupStatus mean?
HTTP 200 means the request completed. data.lookupStatus says whether the item exists: found or not_found. On a not_found result the record field is null or the list is empty. A list can also be found with an empty list when the product, post or period genuinely has no rows.
How many replies does a comment include?
Each comment in GET /v1/product-hunt/posts/{slug}/comments includes up to 20 replies in replies. repliesCount is the thread total and repliesHasMore is true when more than 20 exist.
Why does a user show only 20 posts in each list?
Each profile list starts with 20 posts and reports totalCount, hasMore and nextCursor. Continue one list on GET /v1/product-hunt/users/{username}/posts with kind=made|submitted|voted and that cursor.
Does the Product Hunt search route work?
Yes. GET /v1/product-hunt/search searches products, users, posts, topics and categories. Omit type for a mixed search, use type=product for the products tab, and pass page.nextCursor as cursor for the next page.
How much does the Product Hunt API cost?
Each route charges 1 credit per completed request, and each page of a list is a separate request. A not_found lookup is a completed request. Confirm the charge on every response with meta.creditsCharged. New accounts start with 100 free credits.
Does a product or post return the same fields every time?
The contract fixes the field names and types, but some values can be null: a product may have no rating or website, a post may have no rank or hunter, and a topic may have no description or follower count. Read the field as nullable rather than assuming a number or string.
The Product Hunt API in detailHow the Product Hunt routes work, what they cost, and how they differ from the official API.
Why teams use Social Fetch for Product Hunt
GET /v1/product-hunt/posts returns the posts Product Hunt is currently showing in its most-active list, with id, name, tagline, url, productSlug, author.name, publishedAt, lastActivityAt and websiteRedirectUrl. Pass topic to narrow it to one topic, for example artificial-intelligence or developer-tools; a topic Product Hunt does not know comes back as lookupStatus: not_found with an empty list. It returns at most 50 posts and does not page, and the order is Product Hunt's current order, not a date or rank order you can request.
Everything else is looked up by slug or username. One product returns its description, links, categories, alternatives, pro/con tags, rating and follower counts and latestLaunch; one post adds its description, hunter, makers, media, links, badges, votes, ranks, topics and the linked product when it has one. GET /v1/product-hunt/users/{username} returns the profile plus its first 20 made, submitted and voted posts, each with totalCount, hasMore and nextCursor; continue one list on GET /v1/product-hunt/users/{username}/posts?kind=.... Topics, categories, comments and reviews follow the same lookup pattern, and comment threads carry up to 20 replies with repliesCount and repliesHasMore.
For time-based lists, launches and leaderboard take today or a year with a month, week or day, and both default to today when no date is given. The leaderboard also returns the rank order it used. Both return order, period, totalCount and a cursor block. List pages hold up to 20 rows, except the topic list, which holds up to 100.
Search spans products, users, posts, topics and categories, with type=product for the products tab and cursor paging. A mixed search stops at 1,000 results.
How to call the Product Hunt API
1. Create an API key
Sign up at Social Fetch and copy a key (
sfk_…). New accounts get 100 free credits, enough to try several Product Hunt routes on public posts.2. Pick the route that has the record
Use
GET /v1/product-hunt/posts?topic=artificial-intelligencefor the current post list,GET /v1/product-hunt/products/notionfor one product, orGET /v1/product-hunt/launches?year=2026&month=10&day=1for a past launch day. Sendx-api-keyon every request.3. Branch, page and bill
Read
data.lookupStatusbefore storing a row. For lists, keep calling withpage.nextCursorwhilepage.hasMoreis true. Bill frommeta.creditsChargedand logmeta.requestIdwhen a lookup misses.
What each Product Hunt route returns
- Current most-active posts with an optional
topicfilter, at most 50 per call. - Products and posts by slug, including ratings, votes, ranks, topics and the linked product when present.
- Launches and leaderboards for today, a chosen day, week, month or year.
- Comment threads with up to 20 replies, reply counts and a cursor for the next page.
- Product reviews with ratings, pros, cons, question answers and the reviewer.
- Topic, category and user routes, including paged user post lists, plus mixed search.
How much does the Product Hunt API cost?
Each Product Hunt route charges 1 credit per completed request, including a not_found lookup. Each page of a list is its own request. Credits never expire on pay-as-you-go packs, and meta.creditsCharged on every response is the billing source of truth.
Social Fetch vs the official Product Hunt API
Product Hunt's official API is built for registered apps and its own query format. Social Fetch puts the public post, product, launch, leaderboard, topic, category and review data behind REST routes with one x-api-key, a shared { data, meta } envelope, typed lookupStatus values and cursors. These routes are read-only: they do not vote, comment, follow or publish.
Pull your first Product Hunt data.
Run a live Product Hunt request in the playground. 100 free credits, no card, JSON back in seconds.
No credit cardSign up in 30 seconds withGoogleGitHub
