Tony Wang6 分で読めますPoshmarkのスクレイピング方法 2026年版(API & Python)
2026年にPoshmarkをスクレイピングする方法 — DIYのPython、ノーコードツール、構造化APIでリスティング・クローゼット・ブランド・トレンドを取得し、Poshmarkの利用規約が何を許可しているかも解説します。
Poshmarkはカタログを読み取るための汎用の公開APIを提供していないため、2026年時点で最も信頼できる近道は、Poshmarkのリスティングページを自分で解析するのではなく、検索結果・リスティング詳細・セラーのクローゼット・ブランド/カテゴリのデータを正規化されたJSONとして返す構造化スクレイピングAPIです。PoshmarkはStockXと同じリセールというジャンルに属しますが、その形は異なります — オーダーブックではなくソーシャルセリングであるため、価格と同じくらい、クローゼットの評判やコミュニティ活動(いいね、コメント、フォロワー)が収集する価値のあるデータになります。
Poshmarkのデータをスクレイピングする理由
- リセール価格のリサーチ — あるブランドや商品カテゴリがピアツーピアのリセールプラットフォームで実際にいくらで売れているかを、小売価格や他のマーケットプレイスとの比較材料として追跡する。
- ブランドとトレンドの追跡 — ブランド別のリスティング件数や価格を取得したり、キュレーションされたトレンド(例:「ヴィンテージ Celine ハンドバッグ」)を追い、何が流通しているかを把握する。
- セラー/クローゼットのモニタリング — 競合分析や仕入れリサーチのために、特定のクローゼットの在庫、評価、売却件数を時系列で観察する。
- 市場・カテゴリのリサーチ — 部門/カテゴリの分類体系を使って、特定のニッチにアクティブなリスティングがどれだけ存在するかを把握する。
- AIパイプラインとエージェント — HTMLを画面スクレイピングする代わりに、正規化されたリスティングとブランドのデータを価格設定や仕入れエージェントに供給する。
Poshmarkをスクレイピングするのは合法ですか?
選択肢1: Pythonで自作する(そしてなぜ壊れるのか)
素朴なスクレイパーは検索結果ページやクローゼットページを取得し、レンダリングされたマークアップからリスティングカードを解析しようとします。
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://poshmark.com/search?query=nike+jacket",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Listing cards render from client-side state (React), so a plain HTML
# parse mostly returns an empty shell — you end up reverse-engineering
# the app's internal JSON endpoints instead
一度はデモとして動きますが、その後すぐに壊れます。
- 利用規約が明確です。 Section 4(b)はスクレイピング、収集、自動化された収集を直接名指ししており、Poshmarkの
robots.txtもすべてのクローラーに対して/search、/listings、/apiを許可していません。 - アンチボット対策。 Poshmarkはサイトの前面にボット検知を配置しており、データセンターのIPやヘッドレスリクエストは、特に検索ページやクローゼットページで速やかにレート制限またはブロックされます。
- クライアントレンダリングされたマークアップ。 リスティングのグリッド、クローゼットの統計、トレンドページは安定したサーバーHTMLではなくJavaScriptの状態からレンダリングされるため、レイアウトの変更だけでCSSセレクタ頼みのスクレイピングが静かに壊れます。
- 承認された代替手段がありません。 eBayやStockXとは異なり、Poshmarkはそもそも開発者ポータルを一切運用していないため、フォールバック先となる公式だがゲートされたAPIも存在しません。
選択肢2: ノーコード・既製ツール
ブラウザ拡張機能やポイント&クリック式のスクレイパーは、1回分の検索ページやクローゼットのスナップショットをエクスポートできますが、あるブランドのリセール価格やセラーの在庫を時系列で追跡するには、同じページをスケジュールに沿って再取得する必要があります — これは、都度のエクスポートではなく、履歴を蓄積できる安定したエンドポイント向きの仕事です。
選択肢3: 構造化されたPoshmark API
繰り返し使えるワークフローのために、Poshmarkスクレイピング APIは検索・リスティング詳細・クローゼット・ブランド・カテゴリ・トレンドについて正規化されたJSONを返します — ページの解析も、存在しないアプリの承認待ちも不要です。キーワードで検索します。
curl "https://api.crawlora.net/api/v1/poshmark/search?query=nike+jacket" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"total": 5000,
"has_more": true,
"next_max_id": "ENC_eyJtYXhfaWRzIjpbNDksMSwxXSwicGFnZV9udW0iOjIsInBhZ2VfZ3JvdXBfaWQiOiI2YTcyZTE3OTI1MzYyMTUzMDNhMmVmMWEifQ",
"listings": [
{
"id": "6a6353cb88849a5f185280ea",
"title": "Nike Jacket",
"price": 19,
"original_price": 98,
"condition": "gu",
"brand": "Nike",
"category": "Jackets",
"department": "Men",
"size": "M",
"colors": ["Black"],
"status": "published",
"cover_shot": "https://di2ponv0v5otw.cloudfront.net/posts/2026/07/24/x/m_x.jpg",
"like_count": 12,
"comment_count": 2,
"seller_username": "maltimar",
"url": "https://poshmark.com/listing/6a6353cb88849a5f185280ea"
}
],
"source_url": "https://poshmark.com/search?query=nike+jacket"
}
}
queryは必須で、departmentとmax_id(next_max_idから得るカーソルページネーション)でさらに結果を絞り込み、ページ送りできます。リスティングの詳細、セラーのクローゼット、ブランドのアクティブなリスティングを取得します。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/poshmark"
hits = requests.get(f"{base}/search", headers=h, params={"query": "nike jacket"}).json()["data"]["listings"]
listing_id = hits[0]["id"]
listing = requests.get(f"{base}/listing/{listing_id}", headers=h).json()["data"]
closet = requests.get(f"{base}/closet/maltimar", headers=h).json()["data"]
brand = requests.get(f"{base}/brand/Nike", headers=h).json()["data"]
リスティング詳細の呼び出しには、セラーの評判オブジェクト一式 — クローゼットの評価内訳、売却件数、発送件数 — に加えてリスティングのコメントも含まれます(実際のフィールドです — ドキュメントで確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"id": "6a3fed1de9c77df92e2c0cc6",
"title": "NWT Farm Rio Shorts",
"price": 55,
"original_price": 95,
"condition": "nwt",
"brand": "FARM Rio",
"category": "Shorts",
"department": "Women",
"size": "S",
"colors": ["Red", "Yellow"],
"status": "published",
"like_count": 111,
"comment_count": 4,
"seller": {
"username": "maltimar",
"full_name": "Mary Altimar",
"followers": 9096,
"items_sold_display": "500+",
"rating_average": 4.93,
"rating_count": 368,
"rating_breakdown": {
"five_star": 355,
"four_star": 7,
"three_star": 2,
"two_star": 3,
"one_star": 1
},
"orders_shipped": 522,
"url": "https://poshmark.com/closet/maltimar"
},
"comments": [
{ "comment": "Hi can you tell me the width of the waist?", "creator_username": "muvlax20" }
],
"source_url": "https://poshmark.com/listing/6a3fed1de9c77df92e2c0cc6"
}
}
/poshmark/categoriesは部門/カテゴリの完全なツリー(Women-Shoesのようなパス値)を返し、これを使って/poshmark/category/{path}を呼び出せます。/poshmark/trend/{id}は、検索結果と同じ形でキュレーションされたトレンドコレクションをページ送りします。
収集できるもの
- 検索結果: タイトル、価格、元の価格、コンディション、ブランド、カテゴリ、部門、サイズ、カラー、いいね/コメント数、リスティングURL
- リスティング詳細: 説明、カバー写真と画像、セラーの評判一式(評価平均、評価内訳、売却件数、発送件数)、表示されているコメント
- セラーのクローゼット: プロフィールと、指定したユーザー名のページ送りされたアクティブなリスティング
- ブランドデータ: 完全なブランドディレクトリ(29,000以上の名称とエイリアス)とブランドごとのアクティブなリスティング
- カテゴリの分類体系: ブラウジング用のパス識別子を持つ部門→カテゴリのツリー
- トレンドコレクション: キュレーションされたグループ(例:デザイナーやスタイルのトレンド)とそのリスティング
制約
- 公式APIが存在しません。 Poshmarkはそもそも開発者ポータルを一切運用していないため、eBayやStockXのような、ゲートされてはいても公認の代替手段がありません。
- 利用規約と
robots.txtの両方がスクレイピングを制限しています。 Section 4(b)はスクレイピングと収集を直接名指ししており、robots.txtはすべてのクローラーに対して/search、/listings、/apiを許可していません — これは曖昧なケースではありません。 - 価格と統計はスナップショットです。 Poshmarkの商品は絶えず値下げされ、バンドルされ、売却済みになり、クローゼットの評価/フォロワー数も日々変動します — 保存する際はタイムスタンプを付けましょう。
- 公開データのみが対象です。 これは公開されているリスティング、クローゼット、ブランドページをカバーするもので、非公開メッセージ、オファー、買い手に代わって注文を行う手段ではありません。
- カーソルページネーション。 リスト系エンドポイントはページ番号ではなく不透明な
max_id/next_max_idカーソルを使用します — オフセットを計算しようとせず、そのまま次の呼び出しに引き継ぎましょう。
どこで使われるか
- リセール・仕入れリサーチ — あるブランドのPoshmark上の希望価格を、小売価格や他のリセールマーケットプレイスと比較する。
- クローゼット・競合モニタリング — セラーの在庫、価格、評判の成長を時系列で追跡する。
- トレンド・カテゴリのサイジング — あるブランド、カテゴリ、キュレーションされたトレンドにどれだけアクティブなリスティングが存在するかを測定する。
出典
さっそく始める
まずは無料で試す: 任意の公開URLを無料Webスクレイパーに通すか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認しましょう — サインアップ不要です。
Playgroundで検索・リスティング・クローゼット・ブランドの各エンドポイントをテストし、APIドキュメントでリクエストとレスポンスのスキーマを確認し、料金ページでクレジットコストも確認しましょう。Poshmarkは、StockXをスクレイピングする方法で扱ったライブのオーダーブック型リセールデータに対するソーシャルセリング版であり、eBayをスクレイピングする方法で扱った固定価格のリスティングとも対をなします — 両方を組み合わせることで、中古市場をより幅広く把握できますし、Etsyをスクレイピングする方法を加えればハンドメイド・ヴィンテージの角度も補えます。あわせてWebスクレイピングは合法かもご覧ください。
よくある質問
Poshmarkには公式の公開APIがありますか?
いいえ。Poshmarkは開発者ポータルも、カタログを読み取るための汎用の公開APIも提供していません。eBayやStockXのようにゲートされた開発者APIを提供するマーケットプレイスとは異なります。正規化されたリスティング・クローゼット・ブランドデータを取得する現実的な方法は、サードパーティの構造化スクレイピングAPIです。
Poshmarkをスクレイピングするのは合法ですか?
公開されているリスティングの事実は著作権の対象ではなく、純粋な公開データへのアクセスは一般にCFAA違反にはあたりませんが、Poshmarkの利用規約(Section 4(b))はスクレイピング、収集、自動化されたデータ収集を明確に禁止しており、`robots.txt`も`/search`、`/listings`、`/api`のクロールを許可していません。これは法的助言ではありません — グレーゾーンではなく実際の制限として扱い、詳しくは法的解説の全文をご覧ください。
Poshmarkのリスティングからどんなデータが取得できますか?
リスティング詳細の呼び出しでは、タイトル、説明、価格、元の価格、コンディション、ブランド、カテゴリ、部門、サイズ、カラー、カバー写真と画像、いいね・コメント数、表示されているコメント、そしてセラーのクローゼットの評判オブジェクト(評価平均、評価内訳、売却件数、発送件数)が取得できます。
Poshmarkのセラーのクローゼットはどうやって調べますか?
セラーのユーザー名を指定してクローゼットエンドポイントを呼び出します(例:/poshmark/closet/{username})。これはセラーのプロフィール — フォロワー、評価、売却件数、発送件数 — と、カーソル(max_id)を使ってページ送りされたアクティブなリスティングの一覧を返します。
Poshmarkのページネーションはどう機能しますか?
検索、カテゴリ、クローゼット、ブランド、トレンドの各エンドポイントはすべてカーソルベースのページネーションを使用します。レスポンスにはhas_moreと(検索の場合)next_max_idトークンが含まれ、その値をページオフセットを計算する代わりに次の呼び出しのmax_idパラメータとして渡します。
Poshmarkであるブランドのトレンドを追跡できますか?
はい — ブランドエンドポイントは指定したブランドのアクティブなリスティングと合計件数を返し、トレンドエンドポイントはキュレーションされたトレンドコレクション(例:デザイナーやスタイルのトレンド)のリスティングを返します。どちらもリセール需要を時系列で追跡するのに役立ちます。
Poshmarkの価格データは市場リサーチに使えるほど信頼できますか?
スナップショットとして扱いましょう。Poshmarkのセラーは頻繁に商品を値下げしたり、バンドルしたり、売却済みにしたりし、フォロワーや評価といったクローゼットの統計も日々変動するため、1回の取得を固定価格として扱うのではなく、保存するものにはタイムスタンプを付けてください。