# Product Hunt Scraper — Daily Launches & Makers (`ninhothedev/producthunt-scraper`) Actor

$0.5/1K 🔥 Fast Product Hunt scraper! Daily launches — name, tagline, maker, date & link. No key. JSON, CSV, Excel or API in seconds. Pull the newest products for startup trend tracking, VC sourcing & maker research ⚡

- **URL**: https://apify.com/ninhothedev/producthunt-scraper.md
- **Developed by:** [ninhothedev](https://apify.com/ninhothedev) (community)
- **Categories:** Developer tools, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## 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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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 Scraper 🐱⬆️

**Scrape daily Product Hunt launches — name, tagline, description, votes, topics, maker, and a clean link — with no API key.** Fast, cheap, and datacenter-proxy friendly. Perfect for trend-hunting, VC deal sourcing, competitive intel, and maker research.

> Track what's launching on Product Hunt today, every day, automatically.

---

### 💡 What it does

This actor pulls **recent Product Hunt launches** from Product Hunt's public feed and returns clean, structured JSON — one row per product. No login, no developer token, no OAuth dance. Point it at the front page or a specific category and get the day's launches in seconds.

#### Fields returned per product

| Field | Description |
|-------|-------------|
| `id` | Product Hunt post ID |
| `name` | Product name |
| `tagline` | One-line pitch |
| `description` | Longer description (capped at 2000 chars) |
| `url` | Clean Product Hunt page URL (tracking params stripped) |
| `external_url` | Redirect link to the maker's own site |
| `votes` | Upvote count (when available) |
| `comments` | Comment count (when available) |
| `topics` | Topic/category tags (when available) |
| `maker` | Submitter / maker name |
| `category` | Category slug requested |
| `published` | Launch timestamp (ISO-8601 UTC) |
| `thumbnail` | Thumbnail image (when available) |
| `scraped_at` | When this row was scraped (ISO-8601 UTC) |

All fields are nullable, so your downstream code never breaks on a missing value.

---

### 🚀 Use cases

- **Startup & trend tracking** — spot the tools and products gaining traction *today*, before they hit the mainstream.
- **VC & angel deal sourcing** — build a daily pipeline of fresh launches with makers and links, ready for your CRM.
- **Maker & founder research** — study winning taglines, positioning, and categories to sharpen your own launch.
- **Competitive intelligence** — monitor your niche for new entrants and copy-cats the moment they appear.
- **Newsletter & content curation** — auto-populate a "best new products" digest.

---

### ⚙️ Input

```json
{
  "mode": "launches",
  "categories": [""],
  "maxItems": 100
}
````

| Input | Type | Default | Notes |
|-------|------|---------|-------|
| `mode` | select | `launches` | Fetch recent launches. |
| `categories` | array | `[""]` | Category/topic slugs (e.g. `tech`, `design`, `ai`). `""` = all / front page. One feed per entry. |
| `maxItems` | integer | `100` | Max launches to return across all categories (1–500). |

***

### 📤 Output sample

```json
{
  "id": "1199124",
  "name": "OpenSEO",
  "tagline": "The open source Ahrefs alternative",
  "description": "The open source Ahrefs alternative",
  "url": "https://www.producthunt.com/products/openseo",
  "external_url": "https://www.producthunt.com/r/p/1199124",
  "votes": null,
  "comments": null,
  "topics": null,
  "maker": "fmerian",
  "category": null,
  "published": "2026-07-17T13:34:52+00:00",
  "thumbnail": null,
  "scraped_at": "2026-07-19T18:40:00+00:00"
}
```

***

### 💰 Pricing

**~$0.50 per 1,000 launches** — dramatically cheaper than API-key-gated or browser-heavy alternatives. This actor uses a lightweight HTTP request against a public feed, so it runs on the cheapest 512 MB setting with datacenter proxies (or no proxy at all).

***

### 🆚 Comparison

| | This actor | Official PH API | Browser-based scrapers |
|---|---|---|---|
| **API key required** | ❌ No | ✅ Yes (OAuth) | ❌ No |
| **Rate-limit approval** | ❌ None | ✅ Needed | ❌ None |
| **Proxy cost** | Datacenter / none | n/a | Residential (expensive) |
| **Speed** | ⚡ Seconds | Fast | 🐢 Slow (renders JS) |
| **Price** | 💸 ~$0.50/1k | Free but gated | 💰💰 High |

***

### 🔗 Related actors by this author

- [GitHub Trending Scraper](https://apify.com/ninhothedev/github-trending-scraper) — trending repos & developers.
- [Hacker News Scraper](https://apify.com/ninhothedev/hacker-news-scraper) — front-page stories & comments.
- [Dev.to Scraper](https://apify.com/ninhothedev/devto-scraper) — developer articles & tags.
- [Reddit Scraper](https://apify.com/ninhothedev/reddit-scraper) — posts & full comment trees.

***

### ❓ FAQ

**Do I need a Product Hunt account or API token?** No. This actor reads a public feed.

**Are votes/topics always present?** Votes and topics come from Product Hunt's richer HTML surfaces and are not in every feed; when unavailable the fields are `null`. Name, tagline, maker, link, and published date are always populated.

**How fresh is the data?** The feed reflects Product Hunt's live launches, typically the most recent ~50 per category.

**Keywords:** product hunt scraper, product hunt api, daily launches, startup discovery, new products, maker tools, VC deal sourcing, trend tracking, competitive intelligence, tech products, product launches, upvotes.

# Actor input Schema

## `mode` (type: `string`):

What to scrape. 'launches' fetches recent Product Hunt launches from the public feed.

## `categories` (type: `array`):

Category or topic slugs to fetch (e.g. 'tech', 'design', 'ai'). Use an empty string "" for the all/front-page feed. One feed is fetched per entry.

## `maxItems` (type: `integer`):

Maximum number of launches to return across all categories (1-500).

## Actor input object example

```json
{
  "mode": "launches",
  "categories": [
    ""
  ],
  "maxItems": 100
}
```

# 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 = {
    "categories": [
        ""
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ninhothedev/producthunt-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 = { "categories": [""] }

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

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

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

```

## CLI example

```bash
echo '{
  "categories": [
    ""
  ]
}' |
apify call ninhothedev/producthunt-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ninhothedev/producthunt-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Product Hunt Scraper — Daily Launches & Makers",
        "description": "$0.5/1K 🔥 Fast Product Hunt scraper! Daily launches — name, tagline, maker, date & link. No key. JSON, CSV, Excel or API in seconds. Pull the newest products for startup trend tracking, VC sourcing & maker research ⚡",
        "version": "0.1",
        "x-build-id": "34pxg2ekloY6MUzYN"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ninhothedev~producthunt-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ninhothedev-producthunt-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/ninhothedev~producthunt-scraper/runs": {
            "post": {
                "operationId": "runs-sync-ninhothedev-producthunt-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/ninhothedev~producthunt-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-ninhothedev-producthunt-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "launches"
                        ],
                        "type": "string",
                        "description": "What to scrape. 'launches' fetches recent Product Hunt launches from the public feed.",
                        "default": "launches"
                    },
                    "categories": {
                        "title": "Categories / Topics",
                        "type": "array",
                        "description": "Category or topic slugs to fetch (e.g. 'tech', 'design', 'ai'). Use an empty string \"\" for the all/front-page feed. One feed is fetched per entry.",
                        "default": [
                            ""
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of launches to return across all categories (1-500).",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
