# Product Hunt Scraper by day/week/month/year + product + makers (`deltaspider/product-hunt-scraper`) Actor

A high-performance web scraper for extracting comprehensive product launch data from Product Hunt leaderboards.
Perfect for founders, investors, and researchers to gather product performance insights for market analysis, competitive intelligence, and identifying trending products.

- **URL**: https://apify.com/deltaspider/product-hunt-scraper.md
- **Developed by:** [delta spider](https://apify.com/deltaspider) (community)
- **Categories:** Automation, Lead generation, News
- **Stats:** 30 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🚀 Product Hunt Leaderboard Scraper

A high-performance web scraper for extracting comprehensive product launch data from [Product Hunt](https://producthunt.com) leaderboards

Whether you're a founder, investor, market researcher, or developer, this tool helps you gather detailed product performance data and insights from Product Hunt — perfect for market analysis, competitive intelligence, and identifying trending products.

### ✨ Key Features

#### ✅ Super simple to get started

- Just specify the period (daily, weekly, monthly, or yearly) and optional date parameters to get started

#### ✅ Comprehensive Product Data

- Scrape product launches by time period: daily, weekly, monthly, or yearly leaderboards
- Retrieves detailed product metrics: votes, comments, rank, launch date, and more
- Access featured products and their performance data

#### ✅ Deep Product Insights

- Extracts product names, taglines, and descriptions
- Detailed launch performance including launch day score and latest score
- Product categories for market segmentation
- Featured comments and community engagement metrics
- Optional detailed product information: full descriptions, pricing, gallery images, and social links
- Optional maker profiles: founder details, badges, follower counts, and portfolio

#### ✅ Advanced Filtering

- Filter by specific date (or today if left blank), week, month, or year
- Access historical leaderboard data back to 2013
- Pagination support for complete data extraction
- Multiple ranking metrics: daily, weekly, monthly rankings

#### ✅ Bulk Processing & High Performance

- Process entire leaderboards with pagination support
- Optimized for speed with concurrent request handling
- Built-in retry mechanisms for reliability

#### ✅ Structured Data Output

- Clean, structured JSON output
- Ready for analysis, dashboards, or data pipelines
- Comprehensive data points for each product

***

### 🗂 Use Cases

- **Founders & Entrepreneurs**\
  Track competitor launches, analyze successful product strategies, and time your own launches strategically.

- **Investors & VCs**\
  Identify trending products and promising startups, track portfolio companies, and discover investment opportunities.

- **Market Researchers**\
  Analyze product trends, track market segments, and understand what makes products successful on Product Hunt.

- **Product Managers**\
  Benchmark product launches, study successful launch strategies, and gather competitive intelligence.

- **Developers & Makers**\
  Find inspiration, track similar products, and understand what features resonate with the Product Hunt community.

***

### 🔖 Output Example (without details and makers)

![Product Hunt Leaderboard Output Example](https://res.cloudinary.com/dtnverdlg/image/upload/fl_preserve_transparency/v1753717204/CleanShot_2025-07-28_at_17.25.32_goxzfb.jpg)

#### json version:

```json
{
	"name": "Clueso",
	"slug": "clueso",
	"tagline": "Create stunning product videos in minutes with AI",
	"latestScore": 1492,
	"launchDayScore": 1226,
	"votesCount": 1530,
	"featuredAt": "2025-07-08T00:01:00-07:00",
	"updatedAt": "2025-07-28T06:18:57-07:00",
	"featuredComment": null,
	"dailyRank": 1,
	"weeklyRank": 1,
	"monthlyRank": 1,
	"commentsCount": 314,
	"topics": [
		"SaaS",
		"Artificial Intelligence",
		"Video"
	],
	"thumbnail": "https://ph-files.imgix.net/5db96420-68ff-4d26-81ce-0635d1637bf9.png",
	"url": "https://www.producthunt.com/products/clueso"
}
```

#### Product details (when 'Scrape product details' is enabled)

When product details are enabled, you get extensive additional data including, but not limited to:

- **Full product description** - Detailed product information beyond the tagline
- **Pricing information** - Pricing model (free, freemium, paid, etc.)
- **Launch metadata** - Launch state, schedule times, availability status, votes, ...
- **Hunter information** - Details about who hunted the product
- **Maker profiles** - Basic information about all product makers
- **Media gallery** - All product images and videos with URLs
- **Product website** - Domain and website URL
- **Badge information** - Awards and recognition badges
- **Additional flags** - Various status indicators (isArchived, isTopLaunch, etc.)

#### json version:

```json
{
	"name": "Supabase",
	"slug": "supabase-b37accde-66c0-4c60-bc5c-2634afa7cfe2",
	"tagline": "The Postgres developer platform is now generally available",
	"latestScore": 2561,
	"launchDayScore": 2451,
	"votesCount": 2914,
	"featuredAt": "2024-04-15T00:01:00-07:00",
	"updatedAt": "2025-07-27T23:23:36-07:00",
	"featuredComment": null,
	"dailyRank": 1,
	"weeklyRank": 1,
	"monthlyRank": 1,
	"commentsCount": 189,
	"topics": [
		"Developer Tools",
		"Database",
		"SDK"
	],
	"thumbnail": "https://ph-files.imgix.net/ce7a4c38-9757-4286-8a54-7f074653f4db.png",
	"url": "https://www.producthunt.com/posts/supabase-b37accde-66c0-4c60-bc5c-2634afa7cfe2",
	"launchNumber": 12,
	"launchedThisWeek": false,
	"launchingToday": false,
	"disabledWhenScheduled": true,
	"createdAt": "2024-04-15T00:01:00-07:00",
	"embargoPreviewAt": null,
	"isAvailable": true,
	"isArchived": true,
	"trashedAt": null,
	"isTopLaunch": false,
	"featured": true,
	"hideVotesCount": false,
	"thumbnailImageUuid": "ce7a4c38-9757-4286-8a54-7f074653f4db.png",
	"newsletterBadge": null,
	"description": "After a 4 year beta period, Supabase is now Generally Available. \n\nWhether you’re an indie hacker or a Fortune 500 company, Supabase now scales to any workload, and more than a third of the current YC are building with Supabase.",
	"pricingType": "free",
	"isMaker": false,
	"user": {
		"name": "Ant Wilson",
		"headline": "CTO & Co-Founder @ Supabase",
		"username": "antwilson",
		"avatarUrl": "https://ph-avatars.imgix.net/1401177/original.jpeg"
	},
	"makers": [
		{
			"name": "Ant Wilson",
			"headline": "CTO & Co-Founder @ Supabase",
			"username": "antwilson",
			"avatarUrl": "https://ph-avatars.imgix.net/1401177/original.jpeg",
			"url": "https://www.producthunt.com/@antwilson"
		},
		{
			"name": "kiwicopple",
			"headline": "CEO @ Supabase",
			"username": "copple",
			"avatarUrl": "https://ph-avatars.imgix.net/808754/e238f61b-e5d2-4cbc-a2ec-468f1d59ce31.png",
			"url": "https://www.producthunt.com/@copple"
		},...
	],
	"media": [
		{
			"imageUrl": "https://ph-files.imgix.net/f109c7f4-ae90-47f7-ab0b-e86858263d21.jpeg",
			"mediaType": "video",
			"video": "https://www.youtube.com/watch?v=bRtdk8D4X8w"
		},
		{
			"imageUrl": "https://ph-files.imgix.net/d1f428d5-ca9b-45aa-8d96-f559800e715c.png",
			"mediaType": "image"
		},...
	],
	"launchState": "featured",
	"scheduledAt": "2024-04-15T00:01:00-07:00",
	"isHunter": false,
	"product": {
		"isTopProduct": true,
		"slug": "supabase",
		"name": "Supabase",
		"websiteUrl": "https://supabase.com/",
		"websiteDomain": "supabase.com",
		"isClaimed": true,
		"canClaim": false,
		"isViewerTeamMember": null,
		"viewerPendingTeamRequest": null,
		"firstLaunch": false,
		"isNoLongerOnline": false,
		"passedOnePost": true,
		"postsCount": 16,
		"activeUpcomingEvent": null,
		"logoUrl": "https://ph-files.imgix.net/8dff2ac5-c4f0-4b02-9055-a2a0019f139c.jpeg"
	},
	"badges": [
		"GoldenKittyAwardBadge",
		"NewsletterPostBadge",
		"TopPostBadge",
		"TopPostTopicBadge"
	],
	"thumbnailUrl": "https://ph-files.imgix.net/undefined"
}
```

#### Extra maker details (when 'Scrape maker details' is enabled)

When maker details are enabled, each maker's profile is enriched with comprehensive data, but not limited to:

- **Professional information** - Job title, company, and professional headline
- **Social links** - Website, Twitter, and other social profiles
- **Product portfolio** - All products created, with featured launches
- **Community engagement** - Products count, followers/following, reviews written
- **Badge achievements** - All earned badges with descriptions (Top 5 Launch, Tastemaker, etc.)
- **Karma score** - Community reputation level (Bronze, Silver, Gold)
- **Tech stack** - Products and tools the maker uses
- **Voting history** - Products the maker has upvoted with details
- **Forum activity** - Participation in Product Hunt discussions
- **Account metadata** - Creation date, verification status, about section

#### json version of the extra maker details:

```json
"makers": [
		{
			"name": "Ant Wilson",
			"headline": "CTO & Co-Founder @ Supabase",
			"username": "antwilson",
			"avatarUrl": "https://ph-avatars.imgix.net/1401177/original.jpeg",
			"url": "https://www.producthunt.com/@antwilson",
			"isTrashed": false,
			"productsCount": 8,
			"submittedPostsCount": 4,
			"collectionsCount": 1,
			"followersCount": 1172,
			"followingsCount": 5,
			"reviewsCount": 16,
			"headerUuid": null,
			"isFollowingViewer": false,
			"isMaker": true,
			"isViewer": false,
			"twitterUsername": "AntWilson",
			"visitStreak": {
				"emoji": "⚡️",
				"duration": 4
			},
			"karmaBadge": {
				"kind": "GOLD",
				"score": 1436
			},
			"stacksCount": 2,
			"stacks": [
				{
					"product": {
						"slug": "supabase",
						"name": "Supabase",
						"logoUrl": "https://ph-files.imgix.net/8dff2ac5-c4f0-4b02-9055-a2a0019f139c.jpeg",
						"isNoLongerOnline": false
					}
				},
				{
					"product": {
						"slug": "dashibase",
						"name": "Dashibase",
						"logoUrl": "https://ph-files.imgix.net/f03bee43-9d19-46f7-b707-f3a5ca0e45b9.png",
						"isNoLongerOnline": false
					}
				}
			],
			"selectedBylineProduct": {
				"name": "Supabase",
				"logoUrl": "https://ph-files.imgix.net/8dff2ac5-c4f0-4b02-9055-a2a0019f139c.jpeg",
				"isNoLongerOnline": false
			},
			"productsWithFeaturedLaunch": [
				{
					"name": "Supabase",
					"logoUrl": "https://ph-files.imgix.net/8dff2ac5-c4f0-4b02-9055-a2a0019f139c.jpeg",
					"isNoLongerOnline": false
				},
				{
					"name": "SupaSleeves",
					"logoUrl": "https://ph-files.imgix.net/b034af71-7c7b-4cd9-9606-772d50ca9dae.png",
					"isNoLongerOnline": false
				}
			],
			"isAccountVerified": false,
			"about": null,
			"badgesCount": 9,
			"badgesUniqueCount": 6,
			"votesCount": 86,
			"createdAt": "2018-08-27T02:23:01-07:00",
			"links": [
				{
					"name": "Website",
					"kind": "website",
					"url": "https://supabase.io/"
				},
				{
					"name": "Twitter",
					"kind": "twitter",
					"url": "https://twitter.com/antwilson"
				}
			],
			"badgeGroups": [
				{
					"awardKind": "comment_award_intro",
					"badgesCount": 1,
					"award": {
						"name": "Plugged in 🔌",
						"description": "You made a valuable introduction to a person or team.",
						"imageUrl": "https://ph-files.imgix.net/9e2c38ac-2858-44a0-958f-9b482a7474c6.png",
						"active": true
					}
				},
				{
					"awardKind": "top_5_launch",
					"badgesCount": 4,
					"award": {
						"name": "Top 5 Launch",
						"description": "Your product was one of the top 5 launches!",
						"imageUrl": "https://ph-files.imgix.net/66463acb-2f6f-45b0-8f06-1f2f75aa73c6.png",
						"active": true
					}
				},...
			],
			"votedPosts": [
				{
					"slug": "supabase-ui-library",
					"name": "Supabase UI Library",
					"tagline": "Drop-in components based on shadcn/ui & powered by Supabase",
					"dailyRank": "4",
					"weeklyRank": "9",
					"monthlyRank": "24",
					"thumbnailImageUrl": "https://ph-files.imgix.net/960b4e28-654f-4d11-ad2b-adce31210166.png",
					"hideVotesCount": false,
					"featuredAt": "2025-04-02T00:01:00-07:00",
					"createdAt": "2025-04-02T00:01:00-07:00",
					"embargoPreviewAt": null,
					"latestScore": 657,
					"launchDayScore": 638,
					"commentsCount": 54,
					"productState": "default",
					"votesCount": 633,
					"updatedAt": "2025-07-28T07:00:41-07:00"
				},
				{
					"slug": "supasleeves",
					"name": "SupaSleeves",
					"tagline": "The latest in technical armwear",
					"dailyRank": "12",
					"weeklyRank": "69",
					"monthlyRank": "310",
					"thumbnailImageUrl": "https://ph-files.imgix.net/b034af71-7c7b-4cd9-9606-772d50ca9dae.png",
					"hideVotesCount": false,
					"featuredAt": "2025-04-01T00:01:00-07:00",
					"createdAt": "2025-04-01T00:01:00-07:00",
					"embargoPreviewAt": null,
					"latestScore": 143,
					"launchDayScore": 138,
					"commentsCount": 25,
					"productState": "default",
					"votesCount": 94,
					"updatedAt": "2025-07-27T16:07:44-07:00"
				},...
			],
			"newProducts": [
				{
					"name": "SupaSleeves",
					"createdAt": "2025-03-31T22:59:07-07:00",
					"tagline": "The latest in technical armwear",
					"slug": "supasleeves",
					"makerPosts": [
						{
							"name": "SupaSleeves",
							"tagline": "The latest in technical armwear",
							"thumbnailImageUrl": "https://ph-files.imgix.net/b034af71-7c7b-4cd9-9606-772d50ca9dae.png",
							"createdAt": "2025-04-01T00:01:00-07:00",
							"slug": "supasleeves"
						}
					],
					"logoUrl": "https://ph-files.imgix.net/b034af71-7c7b-4cd9-9606-772d50ca9dae.png",
					"isNoLongerOnline": false
				},
				{
					"name": "Supabase",
					"createdAt": "2021-06-21T14:06:25-07:00",
					"tagline": "The open source Firebase alternative",
					"slug": "supabase",
					"makerPosts": [
						{
							"name": "postgres.new",
							"tagline": "The in-browser Postgres sandbox with AI assistance",
							"thumbnailImageUrl": "https://ph-files.imgix.net/9389199b-d0ed-43a8-af95-d3474ae69671.png",
							"createdAt": "2024-08-13T00:01:00-07:00",
							"slug": "postgres-new"
						},
						{
							"name": "Supabase",
							"tagline": "The Postgres developer platform is now generally available",
							"thumbnailImageUrl": "https://ph-files.imgix.net/62db6534-92fb-48f2-9812-04f0244f8b68.png",
							"createdAt": "2024-05-14T00:01:00-07:00",
							"slug": "supabase-2"
						},...
					],
					"logoUrl": "https://ph-files.imgix.net/8dff2ac5-c4f0-4b02-9055-a2a0019f139c.jpeg",
					"isNoLongerOnline": false
				}
			],
			"work": null,
			"forumActivity": []
		},...
		
	]
```

### 🚀 Getting Started

#### Input Configuration

##### Example 1: Scrape today's launch products:

```json
{
  "period": "daily"
}
```

##### Example 2: Scrape this week's launch products with details product info:

```json
{
  "period": "weekly",
  "scrape_product_details": true
}
```

##### Example 3: Scrape maximum 300 launch products in January 2025:

```json
{
  "period": "monthly",
  "year": "2025",
  "month": "1",
  "max_results": 300
}
```

#### Configuration Options

- **period**: \[Required] Time period for the leaderboard ("daily", "weekly", "monthly", or "yearly")
- **day**: Specific day in YYYY-MM-DD format (for daily period)
- **year**: Year for the leaderboard (minimum: 2013)
- **month**: Month number 1-12 (for monthly period)
- **week**: Week number 1-52 (for weekly period)
- **max\_results**: Maximum number of products to scrape (default: no limit)
- **scrape\_product\_details**: Fetch detailed product information (default: false)
- **scrape\_maker\_details**: Fetch detailed maker profiles (default: false)

# Actor input Schema

## `period` (type: `string`):

Select period to scrape

## `day` (type: `string`):

Select day to scrape

## `year` (type: `string`):

Select year to scrape

## `month` (type: `string`):

Select month to scrape

## `week` (type: `string`):

Select week to scrape

## `scrape_product_details` (type: `boolean`):

This will add an extra request for each product

## `scrape_maker_details` (type: `boolean`):

This will add one or more extra requests for each product (set a max\_maker\_details to limit the number of requests)

## `max_results` (type: `integer`):

Max results to scrape

## `max_maker_details` (type: `integer`):

Some products have many makers, this will limit the number of extra requests for each product

## `proxy` (type: `object`):

Select proxy to be used by actor.

## Actor input object example

```json
{
  "period": "daily",
  "scrape_product_details": false,
  "scrape_maker_details": false,
  "max_results": 100,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "max_results": 100,
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("deltaspider/product-hunt-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "max_results": 100,
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("deltaspider/product-hunt-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "max_results": 100,
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call deltaspider/product-hunt-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,deltaspider/product-hunt-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ApdW37Kn3nxJ9xncX/builds/J9nvR8OvR9ALh4j4C/openapi.json
