Yahoo! Shopping Japan API & Scraper
Yahoo!ショッピング (shopping.yahoo.co.jp) is one of Japan's largest online malls: thousands of independent stores sell on it, so one product often has many offers.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
This API reads it as JSON. `search` takes Japanese or English words, an optional category, a price range and a free-shipping switch, sorts nine ways (the site's own orders), and returns up to 30 items per page for up to 50 pages, each with the item id, title, store, price including tax, the struck-through price and discount, tax-excluded price, the point figure printed on the search card, free shipping, the delivery promise, stock, new or used, item rating and review count, and the store's rating. `product` takes an item id from search and returns that store's item page: the price a buyer pays now, checked against the page's structured data, tax-excluded, regular, struck-through, sale and premium-member prices, the point reward a logged-out buyer earns, broken down per campaign, the price after points, stock and quantity for each variation, shipping fee, delivery methods and dates, orders in the last 3 and 7 days, rating, review count and star distribution, the newest reviews, category path, payment methods, description and images.
What a Yahoo! Shopping field actually contains
Fields that read differently from how they look. Every row was measured against live shopping.yahoo.co.jp pages on 2026-10-14 and 2026-10-15.
| Field | What it holds |
|---|---|
| item_id | The store id and the store's item code joined by an underscore: oastation2014_iphonese3a is store.shopping.yahoo.co.jp/oastation2014/iphonese3a.html. Pass it unchanged to product; the item URL works too. The same product sold by two stores has two item ids. |
| price | Yen including consumption tax, the price a logged-out buyer pays now. The search row, the item page and the page's structured data gave the same price on 19 of 19 items checked. |
| card_points, card_point_rate_pct, card_points_adjusted_price (search) | The point figure printed on the search card (8 % to 22 % on the items checked) and price minus that figure. It is not the reward the item page grants a logged-out buyer, which was 4.0 % on all 19 items checked; use product for the itemised reward. |
| points, point_campaigns, points_adjusted_price (product) | The reward a logged-out buyer earns on the item page, one entry per campaign (store points, PayPay balance, daily campaigns), their sum, and price minus that sum. extra_points_with_conditions is the further reward the page offers to buyers who meet conditions (login, payment method); it is reported apart and never added in. |
| price_excluding_tax | The price before consumption tax, as the site publishes it (27,000 yen for a 29,700 yen item). |
| variations[].stock | Stock for each colour or size: available flag, quantity when the store publishes it (残り9点 = 9) and the stock text (在庫なし for sold out). |
| delivery_text, delivery_area | The delivery promise as the site shows it for its default prefecture, Tokyo (東京都は13時までの注文で、最短明日…). Other prefectures can get another date. |
| detail_on_lohaco | True for items of the LOHACO store, whose item page lives on lohaco.yahoo.co.jp, a separate site; product does not read those. |
Prices are in yen including Japanese consumption tax. The same item read from two countries in the same minute returned the same price, points, shipping fee and stock.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/yahoo-shopping-jp/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "iphone"
}
}{
"ok": true,
"meta": {
"api": "yahoo-shopping-jp",
"endpoint": "search",
"mode": "live",
"latency_ms": 2676.3,
"record_count": 30,
"bytes": 1481987,
"cache_hit": false,
"price_basis": "JPY, consumption tax included (the price the site shows a logged-out buyer)",
"delivery_area": "東京都 (Tokyo) — the site's default delivery prefecture for a logged-out visitor",
"sponsored_count": 0,
"upstream_requests": 1,
"charged_credits": 3,
"version": "0.1.0",
"request_id": "366cdbadff2b44ee",
"queue_ms": 1.6,
"fetched_at": "2026-10-18T11:42:06.664Z"
},
"data": {
"query": "iphone",
"filters": {
"category_id": null,
"min_price": null,
"max_price": null,
"free_shipping": false,
"sort": "recommended"
},
"total": 2895907,
"page": 1,
"page_size": 30,
"last_page": 50,
"has_more": true,
"page_clamped": false,
"results": [
{
"item_id": "oastation2014_iphonese3a",
"store_id": "oastation2014",
"item_code": "iphonese3a",
"url": "https://store.shopping.yahoo.co.jp/oastation2014/iphonese3a.html",
"title": "Apple iPhone SE3 第3世代 A2782 MMYD3J/A MMYC3J/A スターライト ミッドナイト 64GB 美品 中古 本体 ほぼスレキズなし",
"image": "https://item-shopping.c.yimg.jp/i/j/oastation2014_iphonese3a?resolution=2x",
"price": 29700,
"currency": "JPY",
"original_price": null,
"discount_rate_pct": null,
"price_excluding_tax": 27000,
"card_point_rate_pct": 9,
"card_points": 2443,
"card_points_adjusted_price": 27257,
"immediate_discount": null,
"free_shipping": true,
"shipping_condition": "FREE",
"delivery_text": "最短10/20お届け",
"delivery_type": "Yokuyokujitsu",
"good_delivery": true,
"in_stock": true,
"used": true,
"pre_order": false,
"rating": 4.4,
"review_count": 5,
"brand": "iPhone SE(第3世代)",
"brand_id": "63802",
"category_ids": [
"2502",
"38338",
"38340"
],
"category_id": "38340",
"catalog_url": null,
"variation_image_count": null,
"store": {
"store_id": "oastation2014",
"name": "OAステーション ヤフー店",
"url": "https://store.shopping.yahoo.co.jp/oastation2014/",
"rating": 4.71,
"rating_count": 443,
"is_best_store": false,
"excellent_store_level": 2
},
"detail_on_lohaco": false,
"sponsored": false
},
{
"item_id": "jcka-mobile2_4549995677539",
"store_id": "jcka-mobile2",
"item_code": "4549995677539",
"url": "https://store.shopping.yahoo.co.jp/jcka-mobile2/4549995677539.html",
"title": "★Apple国内正規SIMフリー iPhone17e 256GB ホワイト MHRP4J/A A3575 新品未開封 本体eSIM専用端末♪9H硬度高質ガラスフィルムと透明ケースプレゼント",
"image": "https://item-shopping.c.yimg.jp/i/j/jcka-mobile2_4549995677539?resolution=2x",
"price": 125700,
"currency": "JPY",
"original_price": null,
"discount_rate_pct": null,
"price_excluding_tax": 114273,
"card_point_rate_pct": 4,
"card_points": 4626,
"card_points_adjusted_price": 121074,
"immediate_discount": null,
"free_shipping": true,
"shipping_condition": "FREE",
"delivery_text": "最短10/20お届け",
"delivery_type": "Yokuyokujitsu",
"good_delivery": null,
"in_stock": true,
"used": false,
"pre_order": false,
"rating": 5,
"review_count": 76,
"brand": "iPhone",
"brand_id": "16244",
"category_ids": [
"2502",
"38338",
"38340"
],
"category_id": "38340",
"catalog_url": "https://shopping.yahoo.co.jp/product/j/4549995677539/compare.html",
"variation_image_count": null,
"store": {
"store_id": "jcka-mobile2",
"name": "ジェーシカモバイル2号店",
"url": "https://store.shopping.yahoo.co.jp/jcka-mobile2/",
"rating": 4.94,
"rating_count": 307,
"is_best_store": false,
"excellent_store_level": 1
},
"detail_on_lohaco": false,
"sponsored": false
},
{
"item_id": "hanaro_tpu-ring-iphone3",
"store_id": "hanaro",
"item_code": "tpu-ring-iphone3",
"url": "https://store.shopping.yahoo.co.jp/hanaro/tpu-ring-iphone3.html",
"title": "iPhone17 ケース Magsafe対応 リング付き iPhone18Pro iPhone17e iPhone16 iPhone16e iPhone17Pro Air 16Pro 17ProMax 18ProMax リング TPU アイフォン17",
"image": "https://item-shopping.c.yimg.jp/i/j/hanaro_tpu-ring-iphone3?resolution=2x",
"price": 1780,
"currency": "JPY",
"original_price": 1980,
"discount_rate_pct": 10,
"price_excluding_tax": 1619,
"card_point_rate_pct": 13,
"card_points": 209,
"card_points_adjusted_price": 1571,
"immediate_discount": null,
"free_shipping": true,
"shipping_condition": "FREE",
"delivery_text": "最短10/20お届け",
"delivery_type": "Yokuyokujitsu",
"good_delivery": true,
"in_stock": true,
"used": false,
"pre_order": false,
"rating": 4.49,
"review_count": 1099,
"brand": "HanaRo",
"brand_id": "53533",
"category_ids": [
"2502",
"38346",
"38347"
],
"category_id": "49333",
"catalog_url": null,
"variation_image_count": null,
"store": {
"store_id": "hanaro",
"name": "HANARO-SHOP ヤフー店",
"url": "https://store.shopping.yahoo.co.jp/hanaro/",
"rating": 4.64,
"rating_count": 18649,
"is_best_store": false,
"excellent_store_level": 2
},
"detail_on_lohaco": false,
"sponsored": false
}
],
"sponsored": []
}
}What the Yahoo! Shopping Japan API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search Yahoo!ショッピング (shopping.yahoo.co.jp) across every store by keyword, optionally inside one category, a price range and free shipping only, in one of the site's nine sort orders. Up to 30 items per page (21-30 measured), up to 50 pages (the site's own limit: 1,500 items per query). Each row: item id, title, store, price (tax included), the struck-through price and discount, the point reward (points and %) and the points-adjusted price, tax-excluded price, free-shipping flag, the delivery promise (for Tokyo), stock, used/new, item rating and review count, store rating, brand and category ids. | Pricing teams call search to search Yahoo!ショッピング (shopping.yahoo.co.jp) across every store by keyword, optionally inside o…. | query, category_id, min_price, max_price, free_shipping, ... |
| product | One store's item page on Yahoo!ショッピング: title, brand, JAN, new/used and condition, the price a buyer pays now (tax included, checked against the page's structured data), tax-excluded, regular, struck-through, sale and premium-member prices, the point reward a logged-out buyer earns (each campaign: store points, PayPay, daily bonus) and the points-adjusted price, the extra points offered with conditions, stock and quantity per variation, shipping fee and free-shipping flag, delivery promise and methods (for Tokyo), orders in the last 3 and 7 days, item rating, review count and distribution, the newest reviews shown on the page, category path, store category path, payment methods, description, images and the store's rating. | Marketplace operators call product to get one store's item page on Yahoo!ショッピング. | item_id, url |
Call search from your stack
curl -X POST https://api.reefapi.com/yahoo-shopping-jp/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"iphone"}'import requests
r = requests.post(
"https://api.reefapi.com/yahoo-shopping-jp/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "iphone"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/yahoo-shopping-jp/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "iphone"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.yahoo-shopping-jp.search with {"query":"iphone"}.Who uses this API and why
- Track the price, discount and point reward of the same product across several Yahoo! Shopping stores.
- Monitor stock per colour and size, and the delivery promise, for a list of items every day.
- Find the cheapest offers in a category and price range, with shipping fee and store rating.
- Collect store ratings, item ratings and recent reviews for seller research.
- Build a Japanese product feed with brand, category path, JAN where the store publishes it, and images.
Questions developers ask before integrating
Do I need a Yahoo! JAPAN ID or an appid?
No. Everything is read logged out from the public site, and you call reefapi.com from anywhere.
Can I search in Japanese?
Yes. Japanese and English words both work, and full-width letters are normalised. "iphone" matched 2,889,819 items and "ダイソン 掃除機" 13,874 on 2026-10-14.
Which search filters are there?
Category, price range, free shipping and nine sort orders. Each was checked against the unfiltered count in the same run: "iphone" 2,889,819 → 10,000 to 30,000 yen 56,650 (30 of 30 rows in range), free shipping 2,561,834, category iPhone (38340) 37,768; "シャンプー" 311,608 → 1,000 to 3,000 yen 116,178.
How deep can I page?
50 pages of up to 30 items, so 1,500 items per query: the site's own limit, whatever the total says. Most pages hold 30 items; one query returned 21 on its first page. Narrow with a category or a price range to reach more items.
Why does the total change when I sort by price?
Yahoo! Shopping narrows the match set when sorting by price or by reviews: "iphone" matched 2,889,819 items by recommendation, 104,153 sorted by price ascending and 128,920 descending in the same run. total is returned as the site prints it on each call.
Why are the points on a search row different from the product's points?
The search card prints its own point figure (8 % to 22 % on the items checked), while the item page grants a logged-out buyer 4.0 % on every item checked and lists further points for buyers who meet conditions. Search rows return the card figure as card_points; product returns the itemised grant as points.
Are sponsored items mixed into the results?
Rows the site marks as ads would be returned in sponsored[], apart from results. None of the 291 rows read on 10 first result pages carried an ad mark.
What happens with an item that no longer exists?
product answers NOT_FOUND. A query with no match answers an empty results list with total 0.
What is the Yahoo! Shopping Japan API?
Yahoo! Shopping Japan API is a ReefAPI endpoint group for search every store on yahoo!ショッピング and read any item: price, point reward, stock per variation, shipping fee, delivery promise and ratings. It returns live JSON through POST requests under /yahoo-shopping-jp/v1.
Is the Yahoo! Shopping Japan API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Yahoo! Shopping Japan calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Yahoo! Shopping Japan login or account?
No login to Yahoo! Shopping Japan is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Yahoo! Shopping Japan data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Yahoo! Shopping Japan API use?
Yahoo! Shopping Japan actions currently cost 3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Yahoo! Shopping Japan from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call yahoo-shopping-jp actions with the same key, credit pool and JSON envelope used by normal REST requests.