Tony Wang6 分で読めますStockXをスクレイピングする方法【2026年版】(APIとPython)
2026年にStockXのリセール価格・リリース・商品データをスクレイピングする方法 — 自作Python、ノーコードツール、構造化APIの3通りと、StockXの利用規約が許可する範囲を解説します。
StockXを2026年にスクレイピングする最速の方法は、StockXの商品ページを自分で解析するのではなく、検索結果・商品詳細・今後のリリースについて正規化されたJSONを返す構造化APIを呼び出すことです。StockXは、このシリーズの中でもリセールマーケットプレイスのケースにあたります — 価格は固定されたリスティング価格ではなく、ライブのオーダーブック(最安アスク、最高ビッド、直近の売却価格)であり、通常のeコマースとは異なる形をしているため、自作スクレイパーがパースでつまずきやすいポイントになっています。
StockXのデータをスクレイピングする理由
- リセール価格の追跡とアービトラージツール — スニーカーやカードのアスク/ビッドのスプレッドを、小売価格や他のマーケットプレイスと比較する。
- スニーカー・ストリートウェアの市場リサーチ — ブランド、モデル、カラーウェイがリリースをまたいでどうトレンドするかを追跡する。
- リリースカレンダーとドロップの追跡 — サイトを手動でチェックする代わりに、ブランドや日付で今後のリリースを取得する。
- ブランドとカテゴリのエンリッチメント — 下流のマッチング処理のために、ブランドとカテゴリの分類体系(スニーカー、アパレル、トレーディングカード、ハンドバッグ、時計)のカタログを構築する。
- AIパイプラインとエージェント — 画面をスクレイピングする代わりに、正規化された市場データを価格設定エージェントやリセール推奨ツールに供給する。
StockXをスクレイピングするのは合法ですか?
選択肢1: Pythonで自作する(そしてなぜ壊れるのか)
素朴なスクレイパーは商品ページを取得し、レンダリングされたマークアップから価格や市場のフィールドを抜き出そうとします。
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://stockx.com/air-jordan-5-retro-black-university-blue-2026",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Lowest ask, highest bid, and last sale render from client-side state,
# not stable markup — you end up parsing JSON out of a script tag
一度はデモとして動きますが、その後すぐに壊れます。
- 利用規約が明確です。 StockXはロボット、スパイダー、スクレイパーを名指しで禁じており、
robots.txtの回避も別途禁じています — これは曖昧なケースではなく、StockX自身のrobots.txtも検索とリスティングのパスを許可していません。 - アンチボット対策。 StockXはボット検知とレートベースのブロッキングをサイトの前面に配置しており、データセンターのIPやヘッドレスリクエストは短いバーストの後にスロットリングまたはブロックされます。
- 市場データは静的なマークアップではありません。 最安アスク、最高ビッド、直近の売却価格はクライアント側でレンダリングされる状態から取得されるものであり、選択可能なHTMLではありません — レイアウトの微調整だけで、CSSセレクタに依存したスクレイパーは静かに壊れます。
- 公式APIはリサーチ用途に合いません。 公式のDeveloper APIには承認とOAuthが必要で、そのCatalog Searchはセラーがリスティングを商品に照合するために存在します — 汎用の市場データフィードとして位置づけられておらず、サードパーティの報告によれば、サイト自体が表示している小売価格などのフィールドが欠けているといいます。
選択肢2: ノーコード・既製ツール
ブラウザ拡張機能やポイント&クリック式のスクレイパーは、1回分の検索ページや商品リスティングをエクスポートできますが、リセール価格の追跡には、ビッド/アスクの動きを捉えるために同じ商品をスケジュールに沿って再取得することが必要です — これは、都度のエクスポートではなく、安定したエンドポイントと蓄積された履歴向きの仕事です。
選択肢3: 構造化されたStockX API
繰り返し使えるワークフローのために、StockXスクレイピングAPIは検索・商品詳細・リリース・ブランド・カテゴリについて正規化されたJSONを返します — ページの解析もアプリ承認の待ち時間も不要です。カテゴリとクエリで検索します。
curl "https://api.crawlora.net/api/v1/stockx/search?category=sneakers&query=jordan+5" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"category": "sneakers",
"query": "jordan 5",
"sort": "featured",
"page": 1,
"limit": 20,
"total_count": 1000,
"products": [
{
"id": "9acafeb5-bc4a-4d66-bc3a-4899d2e64775",
"url_key": "air-jordan-4-retro-toro-bravo-2026",
"title": "Jordan 4 Retro Toro Bravo (2026)",
"brand": "Jordan",
"model": "Jordan 4 Retro",
"gender": "men",
"product_category": "sneakers",
"image_url": "https://images.stockx.com/images/toro-bravo-thumb.jpg",
"lowest_ask": 173,
"highest_bid": 267,
"last_sale": 176
}
]
}
}
categoryは必須で(sneakers、apparel、trading-cardsなど — 全リストは/stockx/categoriesから取得できます)、query、brand、gender、color、sort、ページネーションでさらに絞り込めます。url_key(slugパスパラメータ)を使って商品の詳細をすべて取得できます。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/stockx"
hits = requests.get(f"{base}/search", headers=h, params={"category": "sneakers", "query": "jordan 5"}).json()["data"]["products"]
slug = hits[0]["url_key"]
product = requests.get(f"{base}/product/{slug}", headers=h).json()["data"]
releases = requests.get(f"{base}/releases", headers=h, params={"page": 1, "limit": 20}).json()["data"]
brands = requests.get(f"{base}/brands", headers=h).json()["data"]
商品詳細にはmarketオブジェクトが含まれます — これがStockXのデータの特徴的な部分で、サイトの商品ページが表示しているのと同じ、ライブのオーダーブックのフィールドです(実際のフィールドです — ドキュメントで確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"title": "Jordan 5 Retro Black University Blue (2026)",
"brand": "Jordan",
"style_id": "DD0587-008",
"colorway": "Black/University Blue/White",
"retail_price": "220",
"release_date": "2026-06-20",
"market": {
"lowest_ask": 260,
"highest_bid": 315,
"number_of_asks": 1341,
"number_of_bids": 334,
"last_sale": 271,
"sales_last_72_hours": 713,
"annual_average_price": 253,
"annual_sales_count": 12394,
"ask_service_levels": {
"standard": { "count": 1341, "lowest_ask": 260 },
"express_next_day": { "count": 234, "lowest_ask": 271, "inventory_type": "CUSTODIAL" }
}
},
"listings": [
{ "price": 250, "condition": "New - Other", "size": "12" }
],
"badges": [
{ "id": "SELLING_FAST", "title": "713 Sold in Last 3 Days!" }
]
}
}
/stockx/releasesは今後のドロップを日付でページ送りし(from、page、limit)、各リリースは同じlowest_ask/highest_bid/last_saleの3項目を持つため、ローンチ後の数日間でドロップの市場の形がどう推移するかを追うことができます。
収集できるもの
- 検索結果: タイトル、ブランド、モデル、性別、カテゴリ、画像、アスク/ビッド/直近売却のスナップショット
- 商品詳細: スタイルID、カラーウェイ、小売価格、リリース日、説明、特性、関連商品
- ライブ市場データ: 最安アスク、最高ビッド、アスク/ビッドの件数、直近売却、72時間の売却数、年間平均価格と売却数、サービスレベル別(standard、express)のアスク内訳
- 商品ごとのサンプルリスティング(価格、コンディション、サイズ)
- 今後のリリース(日付別、ページネーション付き)
- ブランドの全リスト(名前、slug、アルファベットグループ)とカテゴリ/サブカテゴリの分類体系
制約
- 市場データはスナップショットであり、相場そのものではありません。
lowest_ask/highest_bid/last_saleは人気のリリースでは分刻みで動きます — 保存する際はタイムスタンプを付け、取得結果をライブで実行可能な価格であるかのように提示しないでください。 - 公式APIはこのユースケースをカバーしていません。 StockXのDeveloper APIは、自分の在庫のリスティングと注文を管理するセラー向けであり、承認とOAuthの背後にゲートされています — 公開の市場リサーチの代替にはなりません。
- アンチボットと利用規約のリスクは現実のものです。 StockXの規約はスクレイピングを直接名指ししており、
robots.txtは検索とリスティングのパスを許可していません — 自作スクレイパーはグレーゾーンではなく、明示的な規約に反して動作していることになります。 - 公開データのみが対象です。 これは公開されている商品ページと市場ページをカバーするもので、アカウントデータ、非公開のリスティング、セラーに代わって取引を行う手段ではありません。
- フィールドは商品タイプによって異なります。 スニーカー、トレーディングカード、ハンドバッグ、時計は同じ形を共有していますが、すべてのカテゴリですべての特性や市場フィールドが埋まるわけではありません。
どこで使われるか
- リセール・アービトラージツール — ウォッチリスト全体でアスク/ビッドのスプレッドを追跡し、動きがあればアラートを出す。
- スニーカー・ストリートウェアの市場リサーチ — ブランドやモデルの平均価格が数か月にわたってどうトレンドするかをグラフ化する。
- リリースドロップの追跡 — 今後のリリースのカレンダーを構築し、それぞれの立ち上がりの市場を見守る。
出典
さっそく始める
まずは無料で試す: 任意の公開URLを無料Webスクレイパーに通すか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認しましょう — サインアップ不要です。
Playgroundで検索・商品・リリースの各エンドポイントをテストし、APIドキュメントでスキーマを確認し、料金ページもあわせてご覧ください。StockXは、eBayをスクレイピングする方法で扱った固定価格のリスティングに対するリセールマーケットプレイス版であり、Etsyをスクレイピングする方法で扱ったハンドメイド・ヴィンテージマーケットプレイスとも組み合わせることで、中古・リセール市場をより幅広く把握できます。小売価格との比較にはAmazonの商品データを加えるのもよいでしょう。あわせてWebスクレイピングは合法かもご覧ください。
よくある質問
StockXをスクレイピングするのは合法ですか?
これは法的助言ではありません。ブランド、モデル、リリース日といった公開されている商品の事実は著作権の対象ではなく、hiQ Labs v. LinkedInでは公開データへのアクセスがCFAA違反にはあたらないとされました。しかし、StockXの利用規約は、明示的な書面による許可なくロボット、スパイダー、スクレイパー、その他の自動的な手段を使ってそのサービスにアクセスすることを明確に禁止しており、robots.txtの回避も別途禁じています。StockX自身のrobots.txtは検索ページとリスティングページのクロールを許可していません。公開データのみを収集し、レート制限を守り、ログインを回避しないでください。
StockXには公式のAPIがありますか?
あります。ただしセラー向けのDeveloper API(developer.stockx.com)で、リスティングを照合するためのカタログ検索、リスティング管理、注文管理のために作られており、開発者の承認とOAuth 2.0の背後にゲートされ、24時間あたり25,000リクエストのレート制限があります。市場データのリサーチ向けの汎用公開リードAPIではなく、サードパーティの報告によれば、サイト自体が表示している小売価格などのフィールドが欠けているといいます。
StockXの商品からどのような市場データを取得できますか?
商品検索は、lowest_ask、highest_bid、number_of_asks、number_of_bids、last_sale、sales_last_72_hours、annual_average_price、annual_sales_count、およびサービスレベル別(standard、express_standard、express_next_day)のアスク内訳を含むmarketオブジェクトを返します。これらはライブのオーダーブックのスナップショットであり、固定されたリスティング価格ではありません。
カテゴリやブランドでStockXの商品を検索するにはどうすればよいですか?
必須の category(sneakers、apparel、trading-cardsなど — 全リストはcategoriesエンドポイントから取得できます)に加え、任意の query、brand、gender、color、sort、ページネーションのパラメータを指定して検索エンドポイントを呼び出します。各結果には id、url_key、title、brand、model、そして lowest_ask/highest_bid/last_sale のスナップショットが含まれます。
StockXの今後のリリースを追跡できますか?
できます。releasesエンドポイントは今後のドロップを日付(from、page、limit)でページ送りし、各リリースには同じ lowest_ask/highest_bid/last_sale のフィールドが含まれるため、ローンチ後の数日間でドロップの立ち上がりの市場を見守ることができます。
StockXの自作スクレイピングがすぐに壊れるのはなぜですか?
StockXはボット検知とレートベースのブロッキングをサイトの前面に配置しており、データセンターのIPやヘッドレスリクエストをスロットリングします。最安アスクや最高ビッドといった市場フィールドは、安定したマークアップではなくクライアント側の状態からレンダリングされるため、レイアウトの変更でCSSセレクタに依存したスクレイパーが静かに壊れます。StockXの利用規約とrobots.txtも、検索ページとリスティングページへの自動アクセスを明確に制限しています。
スニーカー、トレーディングカード、ハンドバッグ、時計で同じデータ構造が使えますか?
商品と市場のデータ構造はStockXの各カテゴリで共有されていますが、すべての商品タイプですべての特性や市場フィールドが埋まるわけではありません — トレーディングカード、ハンドバッグ、時計は必ずしもスニーカーと同じフィールドを持つとは限らないため、カテゴリごとの完全な網羅を前提にせず、スキーマは上位集合として扱ってください。