Tony Wang6 分で読めますWhatnotをスクレイピングする方法(2026年版・API & Python)
Whatnotのライブショーカタログ(ブラウズ、カテゴリ、ライブショー詳細)を構造化APIでスクレイピングする方法。公開されている範囲とブロックされる範囲を扱い、ストリーム内の入札は対象外です。
2026年にWhatnotのデータを収集する最速の方法は、ライブショーとカテゴリのリスティングを正規化されたJSONとして返す構造化APIを使うことです。Whatnotはライブコマース・オークションプラットフォームです — セラーが動画ストリームを配信し、購入者はリアルタイムで入札や購入を行います。これは、eBayやStockXのような静的な商品カタログとは根本的に異なるジャンルです。このガイドでは、実際にスクリプトで扱えるもの — どのショーがライブか、どんなカテゴリが存在するか、ショーの商品/リスティングのメタデータ — を扱います。ストリーム内のリアルタイム入札アクティビティ(ストリーム内の入札のティック)は、どの公開インターフェースからも取得できないため、対象外です。
Whatnotのデータをスクレイピングする理由
- ライブコマース市場のリサーチ — 特定の時点であるカテゴリで何本のショーが配信されているか、どのセラーがアクティブかを追跡する。
- カテゴリとセラーのトレンド追跡 — トレーディングカード、スニーカー、女性向けファッションなど、どのカテゴリがショー本数で成長しているかを観察する。
- コレクティブルズ市場のモニタリング — トレーディングカード、鑑定済みスラブ、スニーカーのリセールはこのプラットフォームの中核カテゴリであり、ショーのタイトルやタグを追跡することで何がトレンドかが見えてきます。
- AIパイプラインとエージェント — 動画中心のUIを画面スクレイピングする代わりに、正規化されたショーとカテゴリのデータを市場モニタリングやリサーチエージェントに供給する。
Whatnotをスクレイピングするのは合法ですか?
選択肢1: Pythonで自作する(そしてなぜ壊れるのか)
素朴なスクレイパーはブラウズページを取得し、レンダリングされたマークアップからショーのカードを抜き出そうとします。
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.whatnot.com/category/trading_card_games",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Live show cards, thumbnails, and status render from client-side state —
# you end up parsing JSON out of a script tag, not stable HTML
一度はデモとして動きますが、その後すぐに壊れます。
- 利用規約が明確です。 Whatnotはスクレイピング、スパイダリング、クロールをアプリの禁止用途として直接名指ししています — これは曖昧なケースではありません。
- このページはドキュメントではなくライブアプリです。 ショーのステータス(
PLAYINGか終了か)、視聴者数、商品の状態はウェブソケット/クライアント側の状態経由で更新され、静的なマークアップではありません — UIの変更ひとつで、CSSセレクタに依存したスクレイパーは静かに壊れます。 - 代わりに使える公開のリードAPIがありません。 公式のSeller APIは、自分の在庫を管理するセラー向けの閉じたDeveloper Previewであり、公開カタログをブラウズする代替手段にはなりません。
- アンチボット対策。 多くの高トラフィックなコマースアプリと同様に、Whatnotはサイトの前面にボット検知を配置しており、実際のブラウザセッションを伴わないスクリプトによるリクエストはすぐにレート制限またはブロックされます。
選択肢2: ノーコード・既製ツール
ブラウザ拡張機能やポイント&クリック式のスクレイパーは、1回分のブラウズページのショー一覧をエクスポートできますが、動きの速いライブショープラットフォームを追跡するには、ショーの開始と終了を捉えるためにスケジュールに沿ってカテゴリのリスティングを再取得する必要があります — これは、1回限りの手動エクスポートではなく、安定したエンドポイント向きの仕事です。
選択肢3: 構造化されたWhatnot API
繰り返し使えるワークフローのために、Whatnotスクレイピング APIはカテゴリ一覧、カテゴリ別のライブショー、ショーの商品詳細について正規化されたJSONを返します — ページの解析も、申し込みが必要な閉じた開発者プログラムも不要です。まずはカテゴリ一覧から始めます。
curl "https://api.crawlora.net/api/v1/whatnot/categories" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"categories": [
{ "id": "Q2F0ZWdvcnlOb2RlOjE0OQ==", "name": "Trading Card Games", "slug": "trading_card_games" },
{ "id": "Q2F0ZWdvcnlOb2RlOjM=", "name": "Sports Cards", "slug": "sports_cards" },
{ "id": "Q2F0ZWdvcnlOb2RlOjY1Ng==", "name": "Women's Fashion", "slug": "womens_fashion" }
]
}
}
カテゴリのslugを使ってそのライブショーをブラウズし、次にidで特定のショーの商品を取得します。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/whatnot"
categories = requests.get(f"{base}/categories", headers=h).json()["data"]["categories"]
browse = requests.get(
f"{base}/browse", headers=h, params={"category": "trading_card_games"}
).json()["data"]
show_id = browse["shows"][0]["id"]
show = requests.get(f"{base}/live/{show_id}", headers=h).json()["data"]
browseは現在そのカテゴリに紐づいているショーを返します。
{
"code": 200,
"msg": "OK",
"data": {
"category": "trading_card_games",
"shows": [
{
"id": "6ddb7fd2-43bb-44e0-8ee8-6656e82fa26a",
"url": "https://www.whatnot.com/live/6ddb7fd2-43bb-44e0-8ee8-6656e82fa26a",
"title": "$100k Late Night Slab Show",
"seller_username": "legacy_auction_house",
"status": "PLAYING",
"start_time_ms": 1785996739803,
"thumbnail_url": "https://images.whatnot.com/...",
"tags": ["Sudden Death", "Graded Cards", "Pokémon"]
}
]
}
}
そしてlive/{id}はそのショーの商品リスティングを返します(フィールドの全リストはドキュメントを確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"id": "6ddb7fd2-43bb-44e0-8ee8-6656e82fa26a",
"url": "https://www.whatnot.com/live/6ddb7fd2-43bb-44e0-8ee8-6656e82fa26a",
"products": [
{
"id": "TGlzdGluZ05vZGU6MjEzMTA5NzI1NA==",
"title": "slab",
"description": "show live",
"price_cents": 1000,
"currency": "USD",
"status": "running",
"transaction_type": "AUCTION",
"quantity": 219,
"seller": { "username": "legacy_auction_house", "rating": 4.9, "review_count": 128914 }
}
]
}
}
収集できるもの
- カテゴリ: Whatnotがショーを分類しているすべてのトップレベルカテゴリの名前とslug(トレーディングカード、スポーツカード、ファッションなど)
- カテゴリ別ブラウズ: 現在紐づいているショー — ID、URL、タイトル、セラーのユーザー名、ステータス、開始時刻、サムネイル、説明タグ
- ライブショー詳細: ショーの商品/リスティングのエントリ — タイトル、説明、価格、通貨、ステータス、取引種別(オークションか固定価格か)、数量、基本的なセラー統計(ユーザー名、評価、レビュー数)
これはカタログとショーレベルのメタデータです — 何がリスティングされ、配信中かのスナップショットであり、個々の入札イベントのストリームではありません。
制約
- APIの対象範囲は狭いです。 これはブラウズ、カテゴリ、ライブショー詳細の3エンドポイントのグループであり、検索エンドポイントもセラープロフィールエンドポイントも、過去のショーの履歴アーカイブもありません。
- ストリーム内の入札データはありません。 ライブオークション内での入札ごとのアクティビティ(誰が何をいつ入札したか、刻々と動く最高入札額)は、このAPIを含めどの公開インターフェースからも取得できません —
live/{id}が返すのはリスティングの状態であり、入札ログではありません。 - ショーの状態はスナップショットです。
status、quantity、価格フィールドは取得した瞬間の状態を反映しており、動きの速いオークションショーは数秒後には変わっている可能性があります。 - 比較対象となる公式の公開リードAPIがありません。 Whatnot自身のSeller APIは在庫を管理するセラー向けの閉じたプレビューであるため、一般的な市場リサーチ向けの公式な代替手段はありません。
- 公開データのみが対象です。 これは公開のブラウズページとショーページをカバーするもので、アカウントデータ、DM、注文履歴、セラーに代わって入札する手段ではありません。
どこで使われるか
- コレクティブルズ・リセール市場のリサーチ — ライブショー全体でどのカテゴリやタグ(鑑定済みカード、特定のフランチャイズ)が最も頻繁に登場するかを追跡する。
- ライブコマースのトレンド追跡 — 時間の経過とともにカテゴリ別のショー本数やセラーのアクティビティをモニタリングする。
- リサーチ・モニタリングエージェント向けのフィード拡充 — 動画中心のウェブアプリを解析する代わりに、正規化されたショー/カテゴリのJSONを使う。
出典
さっそく始める
まずは無料で試す: 任意の公開URLを無料Webスクレイパーに通すか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認しましょう — サインアップ不要です。
Playgroundでカテゴリ、ブラウズ、ライブショーの各エンドポイントをテストし、APIドキュメントでスキーマを確認し、料金ページもあわせてご覧ください。Whatnotのライブオークションモデルは、このシリーズにおける他の2つのコレクティブルズ・リセールマーケットプレイスと並んでいます — オーダーブック型のリセール価格についてはStockXをスクレイピングする方法を、固定価格と従来型オークションのリスティングについてはeBayをスクレイピングする方法をご覧ください。あわせてWebスクレイピングは合法かもご覧ください。
よくある質問
Whatnotに公開APIはありますか?
汎用のものはありません。WhatnotはDeveloper PreviewとしてSeller APIを運用していますが、これは自分のリスティングと販売通知を管理するセラー向けにスコープされており、現在は新規申し込みを受け付けていません。マーケットプレイスをブラウズするための公開のリードAPIはありません。
Whatnotをスクレイピングするのは合法ですか?
Whatnotの利用規約は、アプリをスクレイピング、スパイダリング、クロールする、またはデータを収集するためにあらゆるソフトウェア、技術、デバイスを使用することを明示的に禁じており、別途アクセス制限の回避も禁じています。公開の事実は著作権の対象ではなく、hiQ v. LinkedInでは公開データへのアクセスがCFAA違反にはあたらないとされていますが、ここでは利用規約が拘束力のある制約です — これは法的助言ではないため、利用規約を自分で確認し、個別のユースケースについては弁護士に相談してください。
Whatnotのrobots.txtは何を許可していますか?
公開サイトについては緩やかで、Allow: /となっており、アカウント、ダッシュボード、受信箱、メッセージ、注文、動画/プレーヤーのパスのみを許可していません。これらは非公開・認証が必要な領域です。一部の競合他社のように、公開のブラウズページやカテゴリページを遮ってはいません。
このAPIでWhatnotのショーのライブ入札アクティビティを追跡できますか?
できません。ブラウズ、カテゴリ、ライブショー詳細の各エンドポイントが返すのはカタログとリスティングのメタデータ(ショーのステータス、商品価格、数量、取引種別)であり、ライブオークション内で起きていることの入札ごとのログではありません。ストリーム内のリアルタイム入札は、このAPIを含めどの公開インターフェースからも取得できません。
WhatnotのカタログAPIから何を収集できますか?
3つです。カテゴリの全リスト(名前とslug)、あるカテゴリで現在ブラウズ可能なショー(ID、タイトル、セラー、ステータス、開始時刻、タグ)、そして特定のショーの商品リスティング(タイトル、価格、通貨、ステータス、取引種別、数量、基本的なセラー統計)をIDから取得できます。
商品を調べるためのショーIDはどうやって取得しますか?
カテゴリのslug(/whatnot/categoriesから取得)を指定して/whatnot/browseを呼び出します — 返された各ショーにはidフィールドが含まれます。そのidを/whatnot/live/{id}に渡すと、そのショーの商品/リスティング詳細が取得できます。
なぜこのAPIの対象範囲は他のプラットフォームに比べて狭いのですか?
Whatnotは従来型の公開カタログAPIを持たない、ライブ動画を中心としたアプリです。そのため、このグループは確実にスクリプトで扱える範囲 — カテゴリの分類体系、カテゴリ別ブラウズ、ショーごとのリスティング詳細 — をカバーしており、公開されていない検索やセラープロフィール、過去のショーアーカイブまでカバーしていると過大に主張することはありません。