API
PayPayフリマ API:出品検索と商品詳細を JSON で
PayPayフリマには開発者向けの公開 API がありません。ここで返すのは、サイトが公開している出品情報そのものです。エンドポイントは二つだけで、できることもその二つに限られます。できないことを並べ立てるより、この範囲で足りるかどうかを先に判断していただくほうが早いと思います。
エンドポイント
| endpoint | 返ってくるもの | 必須 |
|---|---|---|
| search | 公開出品のキーワード検索。1 ページあたり 100 件が標準で、limit を指定すると各ページがその件数に切り詰められます。 | query |
| product/detail | 検索で得た id を使って 1 件の公開出品を読み取ります。 | item_id |
呼び出しごとにクレジットを消費します。失敗した呼び出しとブロックされた呼び出しは無料です。
動作する例
商品詳細は検索で得た id が前提です。手元にある URL から id を推測して渡すと、形は合っていても該当なしになることがあります。まず検索してから詳細を引くのが確実です。
リクエスト
curl -X POST https://api.reefapi.com/paypay-flea-market/v1/search \
-H "x-api-key: あなたのキー" \
-H "content-type: application/json" \
-d '{"query": "スニーカー", "limit": 100}'レスポンス(抜粋)
{
"ok": true,
"data": {
"results": [
{
"item_id": "...",
"title": "...",
"price": 6800,
"status": "..."
}
]
},
"meta": { "record_count": 100, "cache_hit": false, "mode": "live" }
}自分でスクレイピングを書く代わりに
PayPayフリマのスクレイピングは最初の一回なら動きます。問題はそのあとです。ページ構造が変わるとパーサーはエラーを出さずに空を返し、ボット対策が働けばリクエストは静かに弾かれます。どちらも手元では「出品がない」と同じに見えます。
ここでは保守はこちらの仕事です。構造が変われば直し、ブロックされた場合はエラーコードを返し、その呼び出しは課金しません。
一度きりの調査なら自分のスクリプトのほうが安いです。これは正直にそう言います。継続して動かすものを作るなら、費用はコードではなく気づかない故障のほうに積み上がります。
制限と正直な注記
- PayPayフリマの公式 API ではなく、提携関係もありません。
- エンドポイントは検索と詳細の二つだけです。出品者の一覧やカテゴリツリーは提供していません。
- 検索は 1 ページ 100 件が標準です。limit はページを切り詰めるもので、総件数を増やすものではありません。
- キャッシュはありません。毎回その時点の状態を取得します。