Scrape ProductHunt products, daily leaderboard, maker portfolios, topic rankings and keyword search — with upvote velocity, tech stack detection, sentiment score and competitor analysis.
Python client for the ProductHunt Scraper Apify Actor — get 40+ intelligence fields for any ProductHunt product using public data.
Five modes, one client:
from producthunt_scraper import ProductHuntScraperClient
client = ProductHuntScraperClient(api_token="apify_api_xxxxxx")
# 1. Specific products
products = client.analyze(["https://www.producthunt.com/posts/chatgpt"])
# 2. Today's leaderboard (requires PH API key)
top50 = client.leaderboard(limit=50)
# 3. Keyword search (requires PH API key)
ai_tools = client.search("AI writing tool", limit=20)
# 4. All products by a maker (requires PH API key)
portfolio = client.maker_products("rrhoover", limit=100)
# 5. Top products in a topic (requires PH API key)
ai_products = client.topic_products("artificial-intelligence", limit=50)Pricing: $0.005 per product. No subscriptions.
from producthunt_scraper import ProductHuntScraperClient
client = ProductHuntScraperClient(api_token="apify_api_xxxxxx")
rec = client.analyze_one("https://www.producthunt.com/posts/midjourney")
print(f"Name: {rec['productName']}")
print(f"Upvotes: {rec['upvotes']}")
print(f"Upvote velocity: {rec['upvoteVelocity']}/day")
print(f"Maturity: {rec['maturityTier']}")
print(f"Tech stack: {rec['techStackSignals']}")
print(f"Sentiment: {rec['sentimentScore']}")
print(f"Popularity score: {rec['popularityScore']}/100")Output:
Name: Midjourney
Upvotes: 3500
Upvote velocity: 2.8/day
Maturity: viral
Tech stack: ['AI/ML', 'Design']
Sentiment: 0.5
Popularity score: 90/100
pip install git+https://github.com/apivault-labs/producthunt-scraper-python.gitOr clone and use directly:
git clone https://github.com/apivault-labs/producthunt-scraper-python.git
cd producthunt-scraper-python
pip install -r requirements.txt- Sign up at apify.com — free tier includes $5 monthly credits
- Go to Account → Integrations
- Copy your Personal API token
export APIFY_API_TOKEN=apify_api_xxxxxxxxxxxxxxxxxxxxxxxx- Go to producthunt.com/v2/oauth/applications
- Create a new application (free, instant)
- Copy
client_idandclient_secret
client = ProductHuntScraperClient(
api_token="apify_api_xxx",
ph_client_id="your_ph_client_id",
ph_client_secret="your_ph_client_secret",
)productName,tagline,description,websiteupvotes,commentsCount,reviewsCount,rating,followerstopics[],topicsStr,makers[],makersStrhunter—{name, username}who posted itimage,gallery[]— thumbnail + screenshotspricing,pricingTypebadges[]— Product of the Day, Product of the Week, etc.isFeatured,featuredAt,launchDate,createdAtdailyRank,weeklyRankproductId,slug
| Field | Description | Example |
|---|---|---|
popularityScore |
0-100 composite (upvotes × rating) | 90 |
daysSinceLaunch |
Age in days | 1247 |
isNewProduct |
Launched in last 30 days | false |
upvoteVelocity |
Upvotes per day since launch | 2.8 |
engagementRate |
(comments + reviews) / upvotes | 0.023 |
techStackSignals[] |
Detected tech from description | ["AI/ML", "Design"] |
sentimentScore |
-1.0 to 1.0 from description | 0.5 |
maturityTier |
new/early/growing/popular/viral | "viral" |
hasSocialProof |
≥5 reviews AND ≥4.0 rating | true |
pricingTier |
free/freemium/subscription/paid | "freemium" |
Set include_competitor_analysis=True to get one extra summary record:
avgUpvotes,avgRating,avgPopularityScore,avgUpvoteVelocitytopByUpvotes[],topByRating[],fastestGrowing[]commonTechStack[],pricingDistributionnewProducts,featuredProducts,withSocialProofcounts
See examples/ for full code:
| File | What it does |
|---|---|
quickstart.py |
Analyze one product, print all signals |
daily_digest.py |
Today's top 50 products with velocity ranking |
maker_portfolio.py |
All products by a PH maker |
topic_research.py |
Top products in a topic with tech stack analysis |
competitor_analysis.py |
Side-by-side comparison of competing products |
trend_monitor.py |
Track new launches and detect fast-growing products |
export_to_csv.py |
Export results to CSV |
| Param | Description |
|---|---|
api_token |
Apify API token. Falls back to APIFY_API_TOKEN env var. |
ph_client_id |
Optional PH API client_id (unlocks leaderboard/search/maker/topic) |
ph_client_secret |
Optional PH API client_secret |
timeout |
Max seconds to wait for actor run. Default 600. |
Analyze specific product URLs. Returns list[dict].
Analyze one product. Returns dict.
Today's (or any date's) top products. Requires PH API credentials.
Search by keyword. Requires PH API credentials.
All products by a PH username. Requires PH API credentials.
client.topic_products(topic_slug, limit=50, order="VOTES", include_competitor_analysis=False, **kwargs)
Top products in a topic. Requires PH API credentials.
order: "VOTES" / "NEWEST" / "FEATURED"
Returns estimated USD cost (product_count × $0.005).
{
"productName": "Midjourney",
"tagline": "An independent research lab exploring new mediums of thought",
"upvotes": 3500,
"commentsCount": 81,
"reviewsCount": 156,
"rating": 4.7,
"topics": ["Artificial Intelligence", "Design Tools", "Image Generation"],
"makers": [{"name": "David Holz", "username": "davidholz"}],
"hunter": {"name": "Fabian Maume", "username": "fabian_maume"},
"badges": ["Product of the Day", "Product of the Week"],
"isFeatured": true,
"dailyRank": 1,
"weeklyRank": 1,
"pricing": "Paid",
"popularityScore": 90,
"daysSinceLaunch": 1247,
"isNewProduct": false,
"upvoteVelocity": 2.8,
"engagementRate": 0.023,
"techStackSignals": ["AI/ML", "Design"],
"sentimentScore": 0.5,
"maturityTier": "viral",
"hasSocialProof": true,
"pricingTier": "paid",
"dataSource": "thunderbit"
}Track what's launching in your niche. Use leaderboard() daily to catch new products before they go viral.
Use analyze() with include_competitor_analysis=True to get a side-by-side comparison of competing products — upvote velocity, tech stack, engagement rate.
Use maker_products() to see a founder's full portfolio — how many products they've launched, which ones succeeded, what tech they use.
Use topic_products("artificial-intelligence") to see the top AI tools on PH — sorted by votes, newest, or featured.
Filter by isNewProduct=True + upvoteVelocity > 50 to find products gaining traction fast.
Aggregate techStackSignals across 100 products in a niche to see which technologies dominate.
| Volume | Cost |
|---|---|
| 1 product | $0.005 |
| 100 products | $0.50 |
| 1,000 products | $5.00 |
| 10,000 products | $50.00 |
Free Apify tier includes ~$5 monthly credit — analyze ~1,000 products per month for free.
- ProductHunt Official API v2 (when PH credentials provided) — GraphQL, 30+ fields
- Thunderbit (no credentials needed, Apify infra only) — 13 fields
- Direct HTML scrape (last resort) — ~10 fields
- YC Companies Scraper — Y Combinator startups
- Crunchbase Scraper — startup funding data
- LinkedIn Profile Scraper — founder profiles
- Domain Intelligence Scraper — WHOIS, DNS, SSL
See all actors by apivault_labs.
MIT — see LICENSE.
producthunt product-hunt producthunt-scraper producthunt-api producthunt-leaderboard producthunt-search producthunt-maker startup-research startup-intelligence product-launch-tracker upvote-tracker tech-stack-detection competitor-analysis trend-monitoring launch-monitoring maker-portfolio web-scraping apify apify-actor python-sdk daily-digest topic-research