Rakuten API: Search products
Searches Rakuten Ichiba products by keyword, price range, free shipping and sort order. Returns up to 45 regular listings in the order shown; sponsored placements are excluded. Prices are listed starting prices when an item has variants.
Unofficial. Not affiliated with or endorsed by Rakuten.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Sort optional
sort Results order, for example price_low_to_high.
price_low_to_high
One of
standard,price_low_to_high,price_high_to_low,most_reviews,newest. Defaultstandard.- Query, required
query Product keywords in Japanese or English, for example ワイヤレスイヤホン or Nintendo Switch.
ワイヤレスイヤホン
- Max Price optional
max_price Highest listed price in yen, for example 6000.
6000
Whole number 0 or more.
- Min Price optional
min_price Lowest listed price in yen, for example 3000.
3000
Whole number 0 or more. Default
0.- Max Results optional
max_results Maximum products to return, for example 20 (at most 45).
5
Whole number from 1 to 45. Default
20.- Free Shipping Only optional
free_shipping_only Show only products marked free shipping, for example true.
true
True or false. Default
false.
Input as JSON
{ "sort": "price_low_to_high", "query": "ワイヤレスイヤホン", "max_price": 6000, "min_price": 3000, "max_results": 5, "free_shipping_only": true}Output
{ "products": [ { "name": "【送料無料】 ワイヤレスイヤホン bluetooth 5.1 無線 イヤフォン iphone スマホ android アンドロイド ブルートゥース Siri 高音質 防水 スポーツ 左右分離 YOUJ", "price": 3000, "points": "27ポイント(1倍)〜", "currency": "JPY", "item_code": "shopkurano:m-mi0403-10a", "shop_name": "SHOP KURANO", "image_link": "https://tshop.r10s.jp/shopkurano/cabinet/2067/m-mi0403-10a-10.jpg?fitin=275:275" , "star_rating": 3.28, "product_link": "https://item.rakuten.co.jp/shopkurano/m-mi0403-10a/" , "review_count": 29, "free_shipping": true }, { "name": "ブルートゥース ワイヤレスイヤホン 送料無料 スポーツ イヤホン ウォーキング 運動 マグネット搭載 ハンズフリー 運動 通話 マイク付き 首かけ ネックバンドイヤホン ノイズキャンセリング 高音質 ヘッドホン 防水防汗 スマホ スマートフォン 在宅 テレワーク bluetooth", "price": 3000, "points": "27ポイント(1倍)", "currency": "JPY", "item_code": "bellezzavoce:cjfj228", "shop_name": "ベレザヴォーチェ", "image_link": "https://tshop.r10s.jp/gold/bellezzavoce/lib/image/cjfj228.jpg?fitin=275:275" , "star_rating": 3, "product_link": "https://item.rakuten.co.jp/bellezzavoce/cjfj228/" , "review_count": 4, "free_shipping": true }, { "name": "Sony ソニー WF-1000xm4 ケース WF-1000xm4 カバー sony ヘッドホン WF-1000xm4 ケース シリコン ソフトケース カラビナ付き 保護 2021最新 収納 専用ケース カバー イヤホン キズ防止 耐衝撃 保護カバー 保護ケース シンプル 落下防止 かわいい 防", "price": 3000, "points": "30ポイント(1倍)", "currency": "JPY", "item_code": "yakia:h-snbh", "shop_name": "yakia", "image_link": "https://tshop.r10s.jp/yakia/cabinet/h-snbh/h-snbh-1.jpg?fitin=275:275" , "star_rating": null, "product_link": "https://item.rakuten.co.jp/yakia/h-snbh/" , "review_count": 0, "free_shipping": true } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"rakuten.co.jp/search_products","input":{"sort":"price_low_to_high","query":"ワイヤレスイヤホン","max_price":6000,"min_price":3000,"max_results":5,"free_shipping_only":true}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "rakuten.co.jp/search_products" , "input": { "sort": "price_low_to_high", "query": "ワイヤレスイヤホン", "max_price": 6000, "min_price": 3000, "max_results": 5, "free_shipping_only": True }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "rakuten.co.jp/search_products" , "input": { "sort": "price_low_to_high", "query": "ワイヤレスイヤホン", "max_price": 6000, "min_price": 3000, "max_results": 5, "free_shipping_only": true } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run rakuten.co.jp/search_products# with {"sort":"price_low_to_high","query":"ワイヤレスイヤホン","max_price":6000,"min_price":3000,"max_results":5,"free_shipping_only":true}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "query" ], "properties": { "sort": { "enum": [ "standard", "price_low_to_high", "price_high_to_low", "most_reviews", "newest" ], "type": "string", "default": "standard", "description": "Results order, for example price_low_to_high." }, "query": { "type": "string", "minLength": 1, "description": "Product keywords in Japanese or English, for example ワイヤレスイヤホン or Nintendo Switch." }, "max_price": { "type": "integer", "minimum": 0, "description": "Highest listed price in yen, for example 6000." }, "min_price": { "type": "integer", "default": 0, "minimum": 0, "description": "Lowest listed price in yen, for example 3000." }, "max_results": { "type": "integer", "default": 20, "maximum": 45, "minimum": 1, "description": "Maximum products to return, for example 20 (at most 45)." }, "free_shipping_only": { "type": "boolean", "default": false, "description": "Show only products marked free shipping, for example true." } }}Output schema
{ "type": "object", "required": [ "products" ], "properties": { "products": { "type": "array", "items": { "type": "object", "required": [ "name", "price", "currency", "shop_name", "star_rating", "review_count", "free_shipping", "points", "image_link", "product_link", "item_code" ], "properties": { "name": { "type": "string", "description": "Product name as shown on Rakuten." }, "price": { "type": "integer", "description": "Listed price in yen; lowest price for variants." }, "points": { "type": [ "string", "null" ], "description": "Points text as shown, such as 254ポイント(1倍); null when not shown." }, "currency": { "enum": [ "JPY" ], "type": "string", "description": "Currency for price." }, "item_code": { "type": "string", "description": "Rakuten shop and item code, for example book:18210481." }, "shop_name": { "type": "string", "description": "Seller shop name." }, "image_link": { "type": [ "string", "null" ], "description": "Product image link." }, "star_rating": { "type": [ "number", "null" ], "description": "Average star rating; null when not rated." }, "product_link": { "type": "string", "description": "Product page link." }, "review_count": { "type": "integer", "description": "Number of reviews; zero when not rated." }, "free_shipping": { "type": "boolean", "description": "Whether the listing says shipping is free." } }, "additionalProperties": false }, "description": "Products in the order shown by Rakuten." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
rakuten.co.jp/search_products- Returns
- name, price, shop, rating, reviews, free shipping, points, image, link, item code
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method rakuten.co.jp/search_products with the inputs above.
Ask your agent
- Find me wireless earbuds on Rakuten under ¥6,000 with free shipping, cheapest first
- 楽天市場で「ふるさと納税 米 10kg」を検索して、レビュー件数が多い順に30件見せて
- I need a rice cooker between 10,000 and 25,000 yen, sorted by most reviews, free shipping only
- Show the newest listings for Nintendo Switch Pro controller, top 15 results with shop names and ratings
- Pull up to 45 results for 電動歯ブラシ priced 3000 to 8000 yen, lowest price first, and include points and item codes
See more
Searches AliExpress listings by product words, shipping destination, price range and sort order. Unpriced promotional cards are omitted; free shipping is marked only when the listing explicitly says so.
aliexpress.com/search_productsSearches Kohl's products in site order and returns prices, offers, ratings and links for each result.
kohls.com/search_productsSearch Nordstrom products by words, price, sale status and sort order. Prices are the lowest listed price. Available sizes may be empty when a product page is unavailable.
nordstrom.com/search_productsSearches Flipkart products by keyword, with an optional price range and sort order. Returns current listings in site order.
flipkart.com/search_productsSearches Best Buy US products with an optional price range, sort order and page. Prices and availability come from public listings and may vary by location.
bestbuy.com/search_productsSearches Mercari US listings for items for sale or sold, with condition, price and sorting filters, and adds seller, size and shipping details from each item page. Sold prices are displayed listing prices.
mercari.com/search_listingsSearches Macy's products in the site's order with optional USD price bounds, sale-only results and sorting. Prices for products with a range use the lowest shown price.
macys.com/search_productsSearch Chewy products by words, pet type, and sort order. Returns up to 72 products in Chewy's order, including listed and first-order Autoship prices when shown.
chewy.com/search_products