Product Hunt Search & Monitoring
Search for products, track launches, and monitor Product Hunt activity via the GraphQL V2 API.
When to Use
- User asks about a product's Product Hunt launch or performance
- User wants to find trending products in a category
- User wants to monitor Product Hunt for competitors or similar products
- User asks "what launched on Product Hunt today/this week"
- User wants to research a product's reception on PH
Requirements
API Token Required. The Product Hunt API requires authentication — but it's free and takes ~2 minutes to set up.
Getting a Token
- Go to API Dashboard
- Create an application (any name/URL works)
- Use the Developer Token at the bottom of your app's page (no OAuth flow needed for read-only access)
- Store the token in an environment variable:
PH_API_TOKEN
If no token is available, fall back to using web_search with site:producthunt.com queries.
Key Limitation: No Text Search
The Product Hunt API does not support free-text search on posts. You can browse by topic, date, or get a specific post by slug — but you cannot search "AI writing tool" and get matching products.
To find a product by name, use web_search first:
web_search: site:producthunt.com/posts "product name"
Then use the slug from the result to query the API for full details (votes, comments, makers, etc.).
API Overview
- Endpoint:
https://api.producthunt.com/v2/api/graphql - Method: POST
- Auth:
Authorization: Bearer {token} - Format: GraphQL
- Rate Limit: ~900 requests per 15 minutes, complexity limit of 1000 per query
How to Query
Use exec with curl to make GraphQL requests:
curl -s -X POST https://api.producthunt.com/v2/api/graphql \
-H "Authorization: Bearer $PH_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "YOUR_GRAPHQL_QUERY"}'
Common Queries
Today's Top Posts
query {
posts(order: VOTES, first: 10) {
edges {
node {
id
name
tagline
votesCount
commentsCount
url
website
createdAt
makers {
name
username
}
topics {
edges {
node {
name
}
}
}
}
}
}
}
Browse Posts by Topic
query {
posts(order: VOTES, first: 10, topic: "developer-tools") {
edges {
node {
id
name
tagline
votesCount
url
website
}
}
}
}
Remember: This browses a topic — it's not a text search. To find a specific product by name, use web_search with site:producthunt.com/posts "product name", then look up the post by slug via the API.
Get a Specific Post
query {
post(slug: "chatgpt") {
id
name
tagline
description
votesCount
commentsCount
reviewsCount
reviewsRating
url
website
createdAt
featuredAt
makers {
name
username
headline
}
topics {
edges {
node {
name
slug
}
}
}
comments(first: 5) {
edges {
node {
body
votesCount
createdAt
user {
name
username
}
}
}
}
}
}
Get Posts by Topic
query {
topic(slug: "artificial-intelligence") {
name
postsCount
posts(first: 10, order: VOTES) {
edges {
node {
name
tagline
votesCount
url
createdAt
}
}
}
}
}
Get Posts for a Specific Date
query {
posts(postedAfter: "2024-01-15T00:00:00Z", postedBefore: "2024-01-16T00:00:00Z", order: VOTES, first: 10) {
edges {
node {
name
tagline
votesCount
url
}
}
}
}
Look Up a User
query {
user(username: "rrhoover") {
name
username
headline
followersCount
followingCount
madePosts(first: 5) {
edges {
node {
name
tagline
votesCount
url
}
}
}
}
}
Available Topics (Common Slugs)
artificial-intelligence,developer-tools,design-toolsproductivity,marketing,saas,fintechno-code,open-source,social-mediaweb-app,iphone,android,mac,chrome-extensions
For a full list, query:
query { topics(first: 50, order: FOLLOWERS_COUNT) { edges { node { name slug followersCount } } } }
Constructing Product Hunt Links
- Product page:
https://www.producthunt.com/posts/{slug} - User profile:
https://www.producthunt.com/@{username} - Topic page:
https://www.producthunt.com/topics/{slug}
Fallback: No API Token
If no PH_API_TOKEN is available:
- Use
web_searchwith queries like:site:producthunt.com/posts "product name"site:producthunt.com "topic" launched
- Use
web_fetchon specific Product Hunt URLs to get basic info - Inform the user that richer data (vote counts, comments, maker info) requires an API token
Output Format
### Product Hunt Results
1. **Product Name** — Tagline
🔼 votes · 💬 comments · ⭐ rating
By @maker_username
Topics: AI, Developer Tools
🔗 product_url
🏠 website_url
📅 launched_date
2. ...
Error Handling
- 401 Unauthorized: Token is invalid or expired. Check
PH_API_TOKEN. - 429 Rate Limited: Wait 15 minutes for rate limit reset.
- Complexity limit exceeded: Reduce the number of fields or nested queries. Remove
comments,topics, ormakerssub-queries. - Post not found: The slug may be wrong. Try searching with
web_searchfirst to confirm the exact slug. - No results for topic: Check the topic slug — use the topics query to find valid slugs.
Examples
Example 1: "What launched on Product Hunt today?"
Query today's posts sorted by votes, present top 10.
Example 2: "How did Linear do on Product Hunt?"
- Search:
web_search "site:producthunt.com/posts linear" - Get the slug from results
- Query:
post(slug: "linear-5")with full details
Example 3: "Show me top AI tools on Product Hunt this month"
- Query posts by topic
artificial-intelligencewith date filters - Sort by votes, present top results
Data Source
Product Hunt API V2 — GraphQL API, requires free developer token.