OrbTop

Product Hunt Scraper

LEAD GENERATIONDEVELOPER TOOLSBUSINESS

Product Hunt Scraper

Extract product launch data, maker profiles, and engagement metrics from Product Hunt via the official GraphQL API. Filter by topic, date range, or browse all-time launches sorted by votes or recency.

What you get

Each record contains:

Field Description
product_id Product Hunt internal product ID
product_name Name of the product
tagline Short one-liner
description Full product description
website_url Product's external website
product_url Product Hunt listing URL
thumbnail_url Product thumbnail image URL
topics Comma-separated topic names
launch_date ISO-8601 launch date on Product Hunt
upvote_count Total upvotes
comment_count Total comments
review_count Total reviews
rating Average rating (0-5)
featured Whether the product was featured on the homepage
pricing Pricing model (free, freemium, paid)
maker_names Comma-separated maker names
maker_usernames Comma-separated maker Product Hunt usernames
maker_twitter Comma-separated maker Twitter/X handles
hunter_name Name of the person who submitted the product
hunter_username Product Hunt username of the hunter
gallery_images Space-separated gallery image URLs
scraped_at ISO-8601 scrape timestamp

Authentication — required

The Product Hunt GraphQL API requires a free developer bearer token. Get one in two steps:

  1. Go to producthunt.com/v2/oauth/applications
  2. Create an application, then exchange your credentials for a bearer token:
curl -X POST https://api.producthunt.com/v2/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "YOUR_API_KEY",
    "client_secret": "YOUR_API_SECRET",
    "grant_type": "client_credentials"
  }'

Paste the returned access_token into the API Token input field.

Input

Parameter Type Default Description
apiToken string Required. Product Hunt developer bearer token
filterMode select all all, topic, date_range, or featured
topic string Topic slug (e.g. artificial-intelligence). Required when filterMode is topic
postedAfter string ISO-8601 date (e.g. 2024-01-01T00:00:00Z). Used with date_range mode
postedBefore string ISO-8601 date. Used with date_range mode
sortOrder select VOTES VOTES, NEWEST, or FEATURED
maxItems integer 15 Maximum records to return. Set to 0 for unlimited

Example inputs

All-time top products by votes:

{
  "apiToken": "your_token_here",
  "filterMode": "all",
  "sortOrder": "VOTES",
  "maxItems": 100
}

AI products launched in 2024:

{
  "apiToken": "your_token_here",
  "filterMode": "topic",
  "topic": "artificial-intelligence",
  "sortOrder": "VOTES",
  "maxItems": 500
}

Products launched in a specific month:

{
  "apiToken": "your_token_here",
  "filterMode": "date_range",
  "postedAfter": "2024-03-01T00:00:00Z",
  "postedBefore": "2024-03-31T23:59:59Z",
  "sortOrder": "NEWEST",
  "maxItems": 0
}

Recently featured products:

{
  "apiToken": "your_token_here",
  "filterMode": "featured",
  "sortOrder": "NEWEST",
  "maxItems": 50
}

Rate limits

The scraper uses a conservative 0.5-second delay between requests and fetches 20 products per page.

Dataset views

Three pre-built views are available on the output dataset:

  • Product Overview — name, tagline, upvotes, launch date, featured status, and URL
  • Full Product Record — all 23 fields
  • Maker Contact Data — product name, URL, maker names, usernames, Twitter handles, and hunter info

Notes

  • No proxy required. The Product Hunt API does not enforce geo or IP restrictions for authenticated requests.
  • daily_rank is always null. This field is only available on the HTML leaderboard pages, which are protected by Cloudflare managed challenge. The GraphQL API does not expose it.
  • Maker emails and LinkedIn are not exposed in the public API.
  • Pricing: $0.10 per run + $0.001 per record.