# Yahoo! Shopping Japan API — search the whole mall and read any store's item: price, PayPay / store points, stock, delivery, shipping fee, store and item ratings

> 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.
> ReefAPI engine `yahoo-shopping-jp` · 2 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/yahoo-shopping-jp/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/yahoo-shopping-jp/v1/search — 3 credits
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.

**Parameters:**
- `query` (string, required) — Search words, Japanese or English (e.g. `iphone`, `ダイソン 掃除機`). Full-width letters are normalised.
- `category_id` (string, optional) — Yahoo! Shopping category id (digits) to search inside, as returned in a row's `category_ids` / `category_id` or `product.category_path[].category_id` (38340 = iPhone).
- `min_price` (integer, optional) — Minimum price in JPY (tax included).
- `max_price` (integer, optional) — Maximum price in JPY (tax included).
- `free_shipping` (boolean, optional, default false) — Only items with free shipping (送料無料).
- `sort` (enum, optional, default "recommended") — Result order (the site's own nine). [one of: recommended, recommended_fast, price_asc, price_desc, total_price_asc, total_price_desc, review_count, review_score, discount]
- `page` (integer, optional, default 1) — Result page, 30 items per page, 1-50 (the site serves at most 50 pages per query).

**Returns:** results[]{item_id, store_id, item_code, url, title, image, price, currency=JPY, original_price, discount_rate_pct, price_excluding_tax, card_point_rate_pct, card_points, card_points_adjusted_price, immediate_discount, free_shipping, shipping_condition, delivery_text, delivery_type, good_delivery, in_stock, used, pre_order, rating, review_count, brand, brand_id, category_ids[], category_id, catalog_url, variation_image_count, detail_on_lohaco, store{store_id, name, url, rating, rating_count, is_best_store, excellent_store_level}, sponsored} + sponsored[] + total, page, last_page, has_more, query, filters

**Example request body:**
```json
{
  "query": "iphone"
}
```

### POST https://api.reefapi.com/yahoo-shopping-jp/v1/product — 3 credits
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.

**Parameters:**
- `item_id` (string, optional) — Item id `<store>_<item code>` exactly as a search row's `item_id` returns it. Required unless `url` is given.
- `url` (string, optional) — An item page URL store.shopping.yahoo.co.jp/<store>/<item code>.html (tracking query is ignored).

**Returns:** product{item_id, store_id, item_code, url, title, catch_copy, brand, brand_id, jan, condition, used_condition, price, currency, price_excluding_tax, regular_price, original_price, sale_price, premium_member_price, subscription_price, sale_period, ld_price, price_mismatch, points, point_rate_pct, points_adjusted_price, point_campaigns[]{group, title, points, rate_pct, type, immediate_points}, extra_points_with_conditions, extra_point_rate_with_conditions_pct, availability, in_stock, stock, variations[]{sku_id, options, price, stock{available, quantity, stock_text}, delivery_text}, shipping_fee, free_shipping, shipping_fee_area, shipping_free_condition, delivery_text, good_delivery, shipping_type, delivery_methods[], delivery_area, orders_last_3_days, orders_last_7_days, rating, review_count, rating_distribution_pct{5..1}, reviews_sample[]{review_id, rating, title, text, posted_date, reviewer (masked by the site), variation, helpful_count, image_count}, category_path[]{category_id, name}, category_id, store_category_path[], payment_methods[], description, images[], store{store_id, name, url, rating, rating_count, excellent_store_level, cancel_ratio, is_open, description}}

**Example request body:**
```json
{
  "item_id": "oastation2014_iphonese3a"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=yahoo-shopping-jp
- Human docs page: https://reefapi.com/docs/yahoo-shopping-jp
- Overview page: https://reefapi.com/yahoo-shopping-jp-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
