Tony Wang6 分で読めますProduct Huntのスクレイピング方法【2026年版】(API & Python)
2026年版Product Huntローンチ・製品・メーカーデータ取得ガイド。公式GraphQL API、ノーコードツール、構造化APIを実際のJSON例とともに解説。
Product Hunt は、本シリーズの中でも本物の、無料でセルフサービス型の公式 API を持つプラットフォームの一つです — OAuth アプリを登録し、トークンを取得し、その GraphQL スキーマに問い合わせます。したがって正直な問いは「Product Hunt に API はあるか」ではなく、「GraphQL クエリを自分の手で組み立てる代わりに、いつスクレイピング API を使いたくなるか」です。このガイドでは、Product Hunt 自身の API、ノーコードの選択肢、そして構造化されたマルチプラットフォーム API を取り上げ、それぞれの法的な実情を最初に示します。
なぜ Product Hunt をスクレイピングするのか?
Product Hunt は、初期段階のプロダクトに関する最良の公開シグナルの一つです — 日々のローンチ、ランキング、カテゴリ、メーカー、そしてコミュニティの反応がすべて一箇所にまとまっています。これは次のような用途を支えます。
- ローンチのモニタリング — 自分が競合する、あるいは投資しているカテゴリで、日次・週次に何がローンチされているかを追跡できます。
- スタートアップと競合リサーチ — プロダクトがローンチされ次第、タグライン、カテゴリ、メーカー、トラクションのシグナルで企業データベースを充実させられます。
- 代替製品とポジショニングのリサーチ — あるプロダクト自身の「代替製品」リストが、その競合セットについて何を語っているかを確認できます。
- 顧客と推薦の声のシグナル — プロダクトが掲載している「顧客」を取得し、実際に誰が導入しているかを確認できます。
- トレンドとカテゴリのトラッキング — カテゴリのリーダーボードを Google Trends の検索需要と組み合わせ、話題先行と本物の関心を切り分けられます。
Product Hunt をスクレイピングするのは合法か?
選択肢1: Product Hunt 自身の GraphQL API(そして実際の摩擦)
Product Hunt のAPI v2は本物の GraphQL であり、REST ではありません。まず api.producthunt.com/v2/oauth/applications で OAuth アプリケーションを登録し、その後 client_id/client_secret をトークンと交換するか、アプリのダッシュボードページから期限のない開発者トークンを生成します。すべてのリクエストは、クエリ本文とともに単一のエンドポイントに送られます。
curl -X POST "https://api.producthunt.com/v2/api/graphql" \
-H "Authorization: Bearer YOUR_DEVELOPER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "query { posts(first: 5, order: RANKING) { edges { node { id name tagline votesCount url } } } }"}'
これは、Product Hunt 自身のローンチとプロダクトのグラフに問い合わせる、正当で無料の方法です — スクレイピングは不要です。実際のパイプラインで摩擦が生まれ始めるのは次の点です。
- 単純な API キーではなく OAuth 登録。 読み取り専用のシングルユーザーアクセスであっても、使えるトークンを得る前にアプリの登録とリダイレクト URI が必要です — コピー&ペーストの API キーより手間がかかります。
- 名前付きエンドポイントを呼ぶのではなく、GraphQL を書くことになる。 欲しいフィールドはすべて、Product Hunt のスキーマに対して自分でクエリの中に指定する必要があります。
/product/{id}のような近道はありません。 - 複雑度ベースのレート制限。 GraphQL エンドポイントの予算は15分あたり約6,250複雑度ポイントです — クエリのコストはリクエストの数だけでなく、要求するフィールドとネストの深さに依存するため、深いクエリを数回実行するだけでウィンドウ全体を使い切ることがあります。
- 商用利用には Product Hunt との実際の会話が必要。 API ドキュメントには、デフォルトでは商用利用向けではないと明記されており、企業には直接連絡するよう求めています — 構築する前に、実際のユースケースと照らし合わせて確認する価値があります(商用利用ガイドを参照)。
選択肢2: ノーコードツール
Product Hunt のローンチやプロダクト一覧向けのマーケットプレイス製スクレイパーアクターも存在します。単発の取得やスプレッドシートへのエクスポートには十分ですが、スケジュール実行するパイプラインでは間接層が増え、ページを直接スクレイピングするのと同じサイト利用規約上のリスクを抱え、マルチプラットフォームのスキーマ問題も解決しません。
選択肢3: 構造化された Product Hunt API(Crawlora 経由)
他のプラットフォームと並べて、正規化された一つの形で Product Hunt を扱いたい場合 — GraphQL クエリの代わりに、単純な REST 呼び出しと API キーで済ませたい場合 — Product Hunt スクレイピング APIがそれを提供します。プロダクトを検索するには次のようにします。
curl "https://api.crawlora.net/api/v1/producthunt/search?query=cursor" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"edges": [
{
"node": {
"id": "1050265",
"name": "HeroUI Chat",
"tagline": "Build and ship beautiful UIs with AI and HeroUI",
"slug": "heroui-chat",
"reviewsRating": 4.8,
"reviewsCount": 5
}
}
],
"pageInfo": { "page": 1, "hasPreviousPage": false, "hasNextPage": true },
"pagesCount": 394
}
}
続いて id を解決し、プロダクト詳細、リーダーボード、代替製品を Python で取得します。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/producthunt"
hits = requests.get(f"{base}/search", headers=h, params={"query": "cursor"}).json()["data"]["edges"]
product_id = hits[0]["node"]["id"]
product = requests.get(f"{base}/product/{product_id}", headers=h).json()["data"]
alternatives = requests.get(f"{base}/product/{product_id}/alternatives", headers=h).json()["data"]
leaderboard = requests.get(f"{base}/leaderboard", headers=h, params={"scope": "daily"}).json()["data"]
プロダクト詳細は正規化された JSON です(実際のフィールド — ドキュメントを確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"id": "chronicle-design",
"name": "Chronicle",
"tagline": "Visual version control for teams",
"description": "Chronicle lets designers and developers review every iteration in one place.",
"rating": 4.8,
"review_count": 152,
"followers_count": 2000,
"daily_rank": 1,
"weekly_rank": 1,
"monthly_rank": 1,
"date_published": "2024-07-21T12:34:56Z",
"categories": ["Design", "Productivity"],
"website": "https://chronicle.design",
"social_links": ["https://twitter.com/chronicle", "https://github.com/chronicle"]
}
}
日次リーダーボードは scope、year/month/day/week、order でスコープされ、投票と連動したスコアを伴うランク付けされたアイテムを返します。
{
"code": 200,
"msg": "OK",
"data": {
"scope": "daily",
"year": 2026,
"month": 4,
"day": 27,
"items": [
{
"type": "post",
"post": {
"id": "1101061",
"name": "Kitty Points Leaderboard",
"slug": "kitty-points-leaderboard",
"tagline": "Find interesting community members and see how you stack up",
"latest_score": 140,
"daily_rank": 3,
"weekly_rank": 9,
"comments_count": 18
}
}
]
}
}
カテゴリ、カテゴリ別プロダクト、メーカー、ローンチ、顧客、レビューはすべて同じ「id を入れて JSON を得る」形に従います — プロダクト(またはローンチ)1件につき1行を保存し、スケジュールを組んで再実行しましょう。
収集できるもの
公開されている Product Hunt データです。プロダクト横断の検索(id、名前、タグライン、slug、評価、レビュー数)、プロダクト詳細(評価、フォロワー数、日次/週次/月次ランク、公開日、カテゴリ、ウェブサイト、ソーシャルリンク)、ランクとコメント数を伴う日次/週次/月次のリーダーボード、AI 要約とタグ数を伴うカテゴリ詳細およびカテゴリ別プロダクト一覧、プロダクトごとのメーカー、プロダクトごとのローンチ履歴、タグ数を伴う代替製品、そしてプロダクトが掲載している顧客です。なお、Product Hunt のコメントエンドポイントは、不安定な信頼性を理由に2026年5月に提供元によって非推奨とされ、現在は 410 Gone レスポンスを返します — このルートを通じてコメントスレッドを現在取得することはできません。
制約とよくある課題
- どちらの入り口を使っているかを把握する。 Product Hunt 自身の GraphQL API は、非商用・単一プラットフォームの作業には無料かつ正当ですが、producthunt.com のページを直接スクレイピングすることは、いずれにせよ Product Hunt のサイト利用規約に明確に反します。
- 商用利用には Product Hunt との実際の会話が必要。 公式 API の利用規約は、どのツールがそれを呼び出すかにかかわらず、商用利用については Product Hunt へ直接連絡するよう求めています。
- 一部の上流エンドポイントは時間とともに劣化する。 ここでのコメントエンドポイントは、上流での非推奨化の後
410 Goneを返します — どのエンドポイントも将来的にカバレッジを失う可能性があるという前提で構築し、あるフィールドに依存する前に現在のレスポンスを確認してください。 - プロダクトごとのファンアウト。 完全なレコード(プロダクト本体に加えてメーカー、ローンチ、代替製品、レビュー)は、1件の id につき1回ではなく複数回の呼び出しが必要です。
- 公開データのみ。 これは Product Hunt がすでに公開しているものを収集するだけであり、Product Hunt のサイト制限や商用 API 利用規約を回避する手段では決してありません。
どこで使われるか
- ローンチのモニタリング — 自分がフォローしているカテゴリの日次・週次のローンチを追跡できます。
- スタートアップデータベースの拡充 — プロダクトがローンチされた時点で、タグライン、カテゴリ、評価、メーカーのデータを企業レコードに紐づけられます。
- 競合とポジショニングのリサーチ — プロダクト自身の代替製品リストと顧客一覧を読み取れます。
- トレンドのトラッキング — カテゴリのリーダーボードを検索需要データと組み合わせ、ローンチ当日のノイズから本物のトラクションを切り分けられます。
出典
収集を始める
まずは無料でお試しください: 任意の公開 URL を無料ウェブスクレイパーに通すか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認できます。サインアップ不要です。
検索、プロダクト、リーダーボードの各エンドポイントをプレイグラウンドで試し、API ドキュメントでスキーマを確認し、料金をご覧ください。Product Hunt は今日何がローンチされ、誰がそれを作っているかを教えてくれます。ローンチの背後にある開発者やリポジトリの活動についてはGitHubと組み合わせ、企業の背後にある資金調達の履歴についてはPitchBookと組み合わせてください — ローンチのトラクションと資金調達データは、アーリーステージのスタートアップリサーチパイプラインの両輪です。あわせてウェブスクレイピング API の選び方とウェブスクレイピングは合法かもご覧ください。
よくある質問
Product Huntには公式APIがありますか?
はい。api.producthunt.com/v2/api/graphqlにあるProduct HuntのGraphQL API v2は実在し無料で登録できますが、OAuthアプリの登録とProduct Huntのスキーマに対するGraphQLクエリの構築が必要で、ドキュメントにはデフォルトで商用利用不可と記載されています。
Product Huntをスクレイピングするのは合法ですか?
Product Huntのサイト規約はproducthunt.comページの直接的なクロールやスクレイピングを禁止しています。自動アクセスの正規の経路はProduct Hunt自身のGraphQL APIであり、商用利用に関する規約はこのスクレイピング制限とは別のものです — チェックリストは商用利用ガイドをご覧ください。
Product Hunt公式APIのレート制限はどれくらいですか?
GraphQLエンドポイントは複雑度ベースです:15分あたり約6,250複雑度ポイントで、コストは固定のリクエスト数ではなくクエリのフィールドとネストの深さに依存します。他のv2 REST風エンドポイントは15分あたり最大450リクエストです。
APIでProduct Huntのコメントを取得できますか?
現在この経路ではできません — 製品コメントエンドポイントは信頼性が不安定だったため2026年5月に上流側で廃止され、現在は410 Goneレスポンスを返します。
Product Huntのデータを商用利用できますか?
Product Hunt自身のAPIドキュメントには、デフォルトでAPIを商用目的に使用できないと記載されており、企業には直接連絡するよう求めています。商用製品を出す前に、サイト規約や各ツール自体の規約と併せて確認してください。
Product Hunt製品のAlternativesやCustomersはどう取得しますか?
どちらもid指定のエンドポイントです — 製品のAlternativesリスト(タグ数付き)またはCustomersリストを製品idで取得でき、製品詳細やMakersと同じ形式です。
多数の製品にわたってProduct Huntデータを取得する最も速い方法は何ですか?
フィールドセットごとにGraphQLクエリを手作業で組み立てるのではなく、単一の認証ヘッダーと一貫したJSONを持つ構造化REST APIの方が、検索結果を反復し、詳細・メーカー・リーダーボードのエンドポイントに定期的に展開するのが速くなります。