# Yodobashi Camera API — Japan's largest electronics retailer: search, prices with Gold Point rewards, stock and delivery date, reviews, per-store stock and bestseller rankings

> Search yodobashi.com (ヨドバシ・ドット・コム) by keyword and/or category, optionally narrowed to one maker and a price range, in one of the site's five sort orders. 48 products per page (sponsored listings returned apart in `sponsored[]`, never mixed in) with price (tax included), Gold Point reward (points and %), stock text, the delivery promise, star rating (rounded icon), review count, how many stores hold stock, maker and release date. Needs `query` OR `category` (or both). Discontinued products are hidden unless `include_discontinued` is true, as on the site.
> ReefAPI engine `yodobashi` · 5 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/yodobashi/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/yodobashi/v1/search — 3 credits
Search yodobashi.com (ヨドバシ・ドット・コム) by keyword and/or category, optionally narrowed to one maker and a price range, in one of the site's five sort orders. 48 products per page (sponsored listings returned apart in `sponsored[]`, never mixed in) with price (tax included), Gold Point reward (points and %), stock text, the delivery promise, star rating (rounded icon), review count, how many stores hold stock, maker and release date. Needs `query` OR `category` (or both). Discontinued products are hidden unless `include_discontinued` is true, as on the site.

**Parameters:**
- `query` (string, optional) — Search words, Japanese or English (e.g. `SSD`, `iphone`, `ミラーレス一眼`). Full-width letters are normalised. Required unless `category` is given.
- `category` (string, optional) — Yodobashi category path: the numbers of a category URL joined by `/` (yodobashi.com/category/19531/19532/19545/19667/ = 外付けSSD). Search rows return it as `category_path`, `product` as `category_path[].category_path`.
- `maker` (string, optional) — Yodobashi maker code (10 digits), as returned in `maker_facets[].maker_code` or a row's `maker_code`.
- `min_price` (integer, optional) — Minimum price in JPY (tax included).
- `max_price` (integer, optional) — Maximum price in JPY (tax included).
- `sort` (enum, optional, default "popular") — Result order (the site's own five). [one of: popular, newest, price_asc, price_desc, release_date]
- `include_discontinued` (boolean, optional, default false) — Also list products no longer sold (販売終了). Off by default, as on the site.
- `page` (integer, optional, default 1) — Result page, 48 products per page. A page past the last one answers an empty list.

**Returns:** results[]{sku, url, title, brand, maker, maker_code, release_date, image, price, currency=JPY, points, point_rate_pct, stock_text, sales_status, delivery_text, delivery_date, rating_approx, review_count, store_stock_count, category, category_path, tags[], sponsored=false} + sponsored[] (same fields, sponsored=true) + total, page, last_page, has_more, maker_facets[]{maker_code, name, count}

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

### POST https://api.reefapi.com/yodobashi/v1/product — 3 credits
One yodobashi.com product page: title, brand, maker and maker code, sale start date, price (tax included, checked against the page's structured data), maker's list price or 'open price', Gold Point reward (points, rate %, yen value) and the points-adjusted price, stock text and structured availability, delivery promise and date (for the site's default Tokyo address), how many stores hold stock, rating, review and Q&A counts, number of variations, category path, rank in each category, notes, description, images and the full spec sheet.

**Parameters:**
- `sku` (string, optional) — Yodobashi product number: 18 digits, the `sku` of a search or ranking row (also the number in a product URL yodobashi.com/product/<sku>/). Provide sku OR url.
- `url` (string, optional) — A yodobashi.com product URL; alternative to sku.

**Returns:** product{sku, url, title, brand, maker, maker_code, sale_start_date, price, currency=JPY, tax_label, price_mismatch, list_price, list_price_text, points, point_rate_pct, point_value_yen, points_adjusted_price, availability, stock_text, sales_status, delivery_text, delivery_date, delivery_free, delivery_area, store_stock_count, rating, review_count, question_count, variation_count, category_path[]{name, category_path, url}, category_ranks[]{category, rank, streak_text, ranking_category, ranking_url}, notes, description, images[], specs[]{label, value, values[]}}

**Example request body:**
```json
{
  "sku": "100000001005925961"
}
```

### POST https://api.reefapi.com/yodobashi/v1/reviews — 2 credits
Customer reviews of one product, newest first: star rating, full text, reviewer's public nickname, post time, when they bought it, likes, comments and helpful votes. Up to `limit` reviews in one call (all of them when limit ≥ the total).

**Parameters:**
- `sku` (string, optional) — Yodobashi product number: 18 digits, the `sku` of a search or ranking row (also the number in a product URL yodobashi.com/product/<sku>/). Provide sku OR url.
- `url` (string, optional) — A yodobashi.com product URL; alternative to sku.
- `limit` (integer, optional, default 50) — How many of the newest reviews to return (1-1000).

**Returns:** total, count, rating_average (of the returned star ratings), reviews[]{review_id, rating (1-5 or null), text, reviewer, posted_at, purchased_text, review_type, like_count, comment_count, helpful_yes, helpful_no, image}

**Example request body:**
```json
{
  "sku": "100000001005925961",
  "limit": 20
}
```

### POST https://api.reefapi.com/yodobashi/v1/store_stock — 2 credits
Stock of one product in every Yodobashi Camera store: store name, prefecture, address, phone, the store's price and points, in-stock flag and text (在庫あり / 残少 / お取り寄せ …), whether it is on display, and when an order can be picked up there.

**Parameters:**
- `sku` (string, optional) — Yodobashi product number: 18 digits, the `sku` of a search or ranking row (also the number in a product URL yodobashi.com/product/<sku>/). Provide sku OR url.
- `url` (string, optional) — A yodobashi.com product URL; alternative to sku.

**Returns:** product{sku, url, online_price} + stores[]{store_code, name, prefecture_code, prefecture, address, zip, lat, lng, phone, url, price, points, currency, in_stock, stock_text, on_display, pickup_ready_by, pickup_text, pickup_unavailable_text, business_hours[]{date, open, opens, closes}, shops_in_store[]} + count, in_stock_count

**Example request body:**
```json
{
  "sku": "100000001005925961"
}
```

### POST https://api.reefapi.com/yodobashi/v1/ranking — 3 credits
Yodobashi's bestseller ranking (ベストセラーランキング) of one category: the top 20 with rank, movement, days in the top 100, price, points, stock, delivery, rating and review count. The category is a path like `19531/19532/19545/19667` (a product's `category_ranks[].ranking_category`, or any `category_path`).

**Parameters:**
- `category` (string, required) — Category path (numbers joined by `/`) or a yodobashi category / ranking URL.

**Returns:** results[]{rank, rank_move, streak_text, sku, url, title, brand, maker, maker_code, release_date, image, price, currency, points, point_rate_pct, stock_text, sales_status, delivery_text, delivery_date, rating_approx, review_count, store_stock_count} + title, category, updated_at

**Example request body:**
```json
{
  "category": "19531/19532/19545/19667"
}
```

## 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=yodobashi
- Human docs page: https://reefapi.com/docs/yodobashi
- Overview page: https://reefapi.com/yodobashi-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
