Rakuten Ichiba API

Search Rakuten Ichiba and read Japanese marketplace prices as JSON

The Rakuten Ichiba API returns product data from Japan's largest e-commerce marketplace as clean JSON.

no credit card1,000 free credits · instant API key · live in 10 seconds
Missing a Rakuten Ichiba endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
R
/rakuten/v1

7 active endpoints. Every call is 1 credit.

  • POST/rakuten/v1/search
  • POST/rakuten/v1/item
  • POST/rakuten/v1/reviews
  • POST/rakuten/v1/variants
  • POST/rakuten/v1/shop
  • POST/rakuten/v1/ranking
  • POST/rakuten/v1/genres

What Rakuten Ichiba endpoints does ReefAPI ship?

7 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

7 endpoints

search

1 cr

Search Rakuten Ichiba by keyword or genre with sort and price filters.

required
optional
keyword, q, genre_id, page, sort, min_price, max_price

item

1 cr

Get a Rakuten Ichiba product's detail.

required
optional
url, item_url, shop_code, item_path, manage_number

reviews

1 cr

Get ALL buyer reviews for a Rakuten Ichiba item, paginated (30/page).

required
optional
url, item_url, shop_code, item_path, manage_number, page

variants

1 cr

Get a Rakuten Ichiba item's SKU variant matrix.

required
optional
url, item_url, shop_code, item_path, manage_number

shop

1 cr

List a Rakuten Ichiba shop's catalog by shop_code.

required
shop_code
optional
sid, page

ranking

1 cr

Get the Rakuten Ichiba best-seller ranking.

required
optional
genre_id, period, page

genres

1 cr

Browse the Rakuten Ichiba category (genre) tree.

required
optional
genre_id

Every parameter, every allowed value →

Rakuten Ichiba API

3 of 7 endpoints, ready to run

View docs ↗

The result feed: item name, price in yen, the shop selling it, the star average and review count, availability, shipping cost and the loyalty points the buyer earns.

1 credit0 required · 6 optional
POST/rakuten/v1/search
ok1554 ms · 50 records · sample
{
  "ok": true,
  "meta": {
    "api": "rakuten",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 1554.3,
    "record_count": 50,
    "cache_hit": false
  },
  "data": {
    "results": [
      {
        "item_code": "10000021",
        "item_name": "EDIFIER W820NB PLUS Gen2 ワイヤレスヘッドホン Bluetooth 6.1 ノイズキャンセリング Hi-Res LDAC対応 最大88時間再生 マルチポイント接続 折りたたみ式 マイク付き 無線 軽量 オーバーイヤー ヘッドフォン PC スマホ iPhone Android テレビ かわいい",
        "item_price": 8980,
        "currency": "JPY",
        "item_url": "https://item.rakuten.co.jp/edifier-2022/w820nbplus/",
        "shop_name": "EDIFIER楽天市場店",
        "shop_code": "edifier-2022",
        "shop_id": 415727,
        "review_average": 4.59,
        "review_count": 1000,
        "review_url": "https://review.rakuten.co.jp/item/1/415727_10000021/1.1/",
        "image_urls": [
          "https://thumbnail.image.rakuten.co.jp/@0_mall/edifier-2022/cabinet/09887945/12271860/imgrc0101615080.jpg"
        ],
        "availability": "in_stock",
        "genre_id": "502835",
        "genre_path": "/0/211742/100155/502835",
        "subtitle": "ノイズキャンセリング・マルチポイント接続・ハイレゾ・LDAC対応・外音取り込み・風切り音低減・折り畳み可能・通話ノイキャン・USB-C急速充電・低遅延ゲームモード・専用アプリ",
        "shipping_price": 0,
        "points": 81,
        "is_sold_out": false,
        "product_url": null
      },
      {
        "item_code": "10000200",
        "item_name": "「VGP 2024金賞」【有線・無線両用】 SOUNDPEATS Space ワイヤレスヘッドホン Bluetooth 5.3 最大123時間再生 35dB ANCアクティブノイズキャンセリング 高音質40mm大口径ドライバー マルチポイント 65ms低遅延 折りたたみ 外部音取り込み ケーブル 専用アプリ対応 通気性良い",
        "item_price": 5584,
        "currency": "JPY",
        "item_url": "https://item.rakuten.co.jp/sonic-store/space/?variantId=space-bk",
        "shop_name": "sonic",
        "shop_code": "sonic-store",
        "shop_id": 409304,
        "review_average": 4.68,
        "review_count": 84,
        "review_url": "https://review.rakuten.co.jp/item/1/409304_10000200/1.1/",
        "image_urls": [
          "https://thumbnail.image.rakuten.co.jp/@0_mall/sonic-store/cabinet/soundpeats/space/00-5.jpg"
        ],
        "availability": "in_stock",
        "genre_id": "502835",
        "genre_path": "/0/211742/100155/502835",
        "subtitle": "あす楽 送料無料 1年間品質保証 iPhone/Androidに対応 自動ペアリング 低遅延 2台同時接続 おしゃれ テレワーク",
        "shipping_price": 0,
        "points": 50,
        "is_sold_out": false,
        "product_url": null
      },
      {
        "item_code": "10000274",
        "item_name": "SOUNDPEATS CovePro ワイヤレスヘッドホン Bluetooth 6.0 LDAC/ハイレゾ対応 最大-56 ANCアクティブノイズキャンセリング 外部音取り込み 最大95時間再生+急速充電 高音質40mm大口径デュアルドライバー マルチポイント対応 軽量 通気性良い 専用アプリ対応 有線/無線",
        "item_price": 8380,
        "currency": "JPY",
        "item_url": "https://item.rakuten.co.jp/sonic-store/sp-covepro/?variantId=sp-covepro",
        "shop_name": "sonic",
        "shop_code": "sonic-store",
        "shop_id": 409304,
        "review_average": 4.67,
        "review_count": 6,
        "review_url": "https://review.rakuten.co.jp/item/1/409304_10000274/1.1/",
        "image_urls": [
          "https://thumbnail.image.rakuten.co.jp/@0_mall/sonic-store/cabinet/soundpeats/covepro/0-1.jpg"
        ],
        "availability": "in_stock",
        "genre_id": "502835",
        "genre_path": "/0/211742/100155/502835",
        "subtitle": "あす楽 送料無料 1年間品質保証 iPhone/Androidに対応 自動ペアリング 低遅延 2台同時接続 おしゃれ テレワーク",
        "shipping_price": 0,
        "points": 76,
        "is_sold_out": false,
        "product_url": null
      }
    ],
    "keyword": "headphones",
    "genre_id": null,
    "page": 1,
    "page_size": 45,
    "has_more": true,
    "total": 170588,
    "next_page": 2
  }
}
Real response, fetched from the live endpoint with the parameters on the left — trimmed to the first few rows, with seller names left out. Press Try it for the untrimmed response.

How the Rakuten Ichiba API works

Rakuten Ichiba is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 185 engines.

02
Call
POST /rakuten/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 credit per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Search, then read every review a product has

Rakuten review counts run into the thousands on popular items, and the reviews action pages through all of them rather than handing back the first screen.

01search
POST/rakuten/v1/search
{"keyword": "headphones", "page": 1}

Take item_url from a row. De-duplicate page 1 — the coverage block explains why.

02reviews
POST/rakuten/v1/reviews
{"url": "<item_url>", "page": 1}

30 reviews a page with the rating, the body, the post date, the order date and the helpful count, plus the total so you know how many pages there are.

One credit per page of reviews. The shop action does the same for a whole store, and the ranking action needs no search at all.

request
curl -X POST https://api.reefapi.com/rakuten/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"keyword":"ヘッドホン"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "rakuten",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

Rakuten Ichiba identifiers: which id is which, and where the prices come from

This is Rakuten Ichiba, the Japanese marketplace at rakuten.co.jp, not Rakuten's US, French or German storefronts. One field name, item_code, means two different things depending on the action, which is the single most likely thing to break a pipeline here. All values below were measured on 2026-08-27 against items seedcoms/10003515-198 and meisei/246.

Identifier or fieldWhat it holdsMeasured example
item_code in search rowsThe numeric item idSearch returned item_code "10000150" for the meisei cable; calling item on that URL returned item_id 10000150
item_code in item detailThe shop's own SKU string, which is not the same thingThe same meisei cable returned item_code "246"; the seedcoms supplement returned item_code "P6-1"
manage_numberThe path segment in item.rakuten.co.jp/<shop_code>/<manage_number>/"10003515-198" for seedcoms, "246" for meisei
shop_codeThe shop's urlCode, always a string"seedcoms", "meisei", "rakuten24"
shop_idNumeric shop id, typed inconsistently across actionsInteger 390372 in search rows, string "390372" in the item response for the same shop
review_urlreview.rakuten.co.jp/item/1/<shop_id>_<item_id>/1.1/270693_10006243 for the seedcoms item, 390372_10000150 for the meisei one
item_priceInteger JPY, no decimals, and no separate tax field anywhere in the response198, 258, 328, 1980
pointsCampaign reward points, not a flat percentage of price20 points on a 258 yen item, 10 on 328, 270 on 1980; one shop page ranged from 6 to 1,882
review_averageStar average, but not always presentnull on the seedcoms item despite review_count 684; 4.429999828338623 on the meisei item, which search reported as 4.43
Rows per responsesearch pages report page_size 45 but return a few more49 and 50 rows measured on two different keywords; ranking returns 80, reviews 30
genre_idNumeric category id, with genre_path giving the ancestrygenre_id "564278" with genre_path "/0/564500/564278"

There is no tax field and no tax-inclusive flag anywhere in the response. item_price is the single integer figure the listing displays, so carry it as-is rather than deriving a pre-tax number from it.

Yen, points, and how deep a Rakuten query really goes

Measured on the live marketplace across one query paged to 1,000, plus repeat runs of page 1. One of these goes against us.

One market: Japan, yen, on every row

50 of 50 rows priced, all in JPY and stated as such on the row. Two fields that usually go missing elsewhere are filled here too: shipping_price and points, the loyalty points the purchase earns, on 50 of 50 rows.

Against us: page 1 returns fifty rows for a page size of forty-five

The five extra rows are promoted placements, and on both runs three or four of them duplicated an item already in the organic set — 50 rows collapsed to 47 and then 46 distinct item URLs. Pages 2 and onwards returned a clean 45 with no duplicates at all. De-duplicate page 1 by item_url.

Paging goes a thousand pages deep and stays fresh

Pages 10, 100 and 1,000 of one query each returned 45 rows, and page 100 and page 1,000 shared none. That is roughly 45,000 items reachable on a single query whose reported total was 170,163 — the deepest paging measured anywhere in this batch.

The same query twice is nearly the same query

Two runs minutes apart shared 45 of 46 distinct items. The one that moved was a promoted slot. Deeper pages were stable.

A dead item is an unambiguous not-found

An item path that does not exist answers NOT_FOUND with retryable false and names the URL it tried. A catalogue sync can close the row on the first answer.

Reviews are complete and paginated to the end

30 a page with the rating, the body, the post date, the order date and the helpful count, plus a total to page against. The reviewer is a Rakuten nickname rather than a name, and our published sample drops that field.

The star average is not on every row

review_average and review_count were filled on 49 of 50 rows. The missing one had no reviews rather than a broken field — a new listing looks exactly like this.

What people build with Rakuten Ichiba

The jobs this data is most often used for.

7

endpoints

1

credit per call

01

Pricing teams call search and ranking to track Rakuten prices and best-sellers by genre.

02

Catalog-enrichment tools use item and variants to fill listings with images and options.

03

Market analysts use genres and shop to map supply and top sellers in the Japanese market.

What Rakuten Ichiba data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 185 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/rakuten/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"keyword":"ヘッドホン"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/rakuten/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "keyword": "ヘッドホン"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Rakuten Ichiba.

Get a free key →
Which Rakuten does this cover?

Rakuten Ichiba, the Japanese marketplace on rakuten.co.jp. Prices come back as integer JPY, item names and review bodies are in Japanese, shop names are Japanese, and images are served from thumbnail.image.rakuten.co.jp and tshop.r10s.jp. Keyword search accepts either Japanese or Latin text: "iphone" reported 8,254,515 matches and "ヘッドホン" reported 601,555.

Why does item_code mean something different in search than in item?

Because the two surfaces label their identifiers differently and the engine passes each through as found. A search row for the meisei cable returned item_code "10000150", which is the numeric item id; calling item on that same URL returned item_id 10000150 and item_code "246", which is the shop's SKU. The safe join key across actions is the pair shop_code plus manage_number, or the item_url itself, not item_code.

Do the prices include tax?

There is no way to tell from the response, because there is no tax field, no tax-inclusive flag and no pre-tax figure in search, item, variants or ranking. item_price is a single integer in JPY, exactly the number the listing shows, and currency is always "JPY". If your accounting needs a split, you have to apply Japanese consumption tax rules yourself against the displayed figure.

What are the points values?

Campaign reward points the buyer earns, and they are not a fixed percentage of the price. Measured examples: 20 points on a 258 yen cable, 10 on a 328 yen case, 270 on a 1,980 yen lotion, and one catalogue page spanning 6 to 1,882 points. points appears on search rows but not on the item detail response, so pull it from a listing row when you need it.

Why is review_average null when review_count is not zero?

The item detail surface does not always carry the aggregate. The seedcoms item returned review_average null alongside review_count 684, and the reviews action returned the same null in its summary while still paging 684 real reviews. Where it is present it can arrive with float artifacts: the meisei item returned 4.429999828338623 for an average that search reported as 4.43. Take the average from a search row and round it.

How do I page through every review on an item?

The reviews action returns 30 per page, with meta.total giving the real count and meta.next_page pointing forward, so 684 reviews is 23 pages. Each row carries rating as an integer 1 to 5, body, reviewer (a Japanese handle ending in さん), helpful_count, posted_at and, usefully, ordered_at, which is the purchase date rather than the review date, so you can measure the gap between buying and reviewing.

Why do search pages return more rows than page_size?

page_size reports 45 but the actual page carries a handful more: two different keyword searches returned 49 and 50 rows. Because the next_page cursor advances by the reported page size, consecutive pages can overlap. Deduplicate on item_url when you concatenate pages rather than assuming every row is new.

What does the variants action give me?

One row per selectable combination, each with variant_id, selector_values, item_price, currency and merchant_sku_id. A phone case returned 31 variant rows across two selectors, タイプ for model and カラー for color, all at the same 328 yen. Two things to expect: variant_id has no consistent format, mixing plain numbers like "24737" with strings like "r-sku00000009", and image_urls came back empty on every variant, so per-variant photos are not available.

What is the Rakuten Ichiba API?

Rakuten Ichiba API is a ReefAPI endpoint group for rakuten ichiba It returns live JSON through POST requests under /rakuten/v1.

Is the Rakuten Ichiba API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Rakuten Ichiba calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Rakuten Ichiba login or account?

No login to Rakuten Ichiba 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 Rakuten Ichiba 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 Rakuten Ichiba API use?

Rakuten Ichiba actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Rakuten Ichiba from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call rakuten actions with the same key, credit pool and JSON envelope used by normal REST requests.

37 E-commerce & Marketplaces APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Rakuten Ichiba, you are one call away from the rest of the category — no second contract, no second integration.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 184 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-08-28.