Rakuten APIsearch.rakuten.co.jp ↗
Search Rakuten Ichiba's Japanese marketplace. Returns product names, URLs, prices, shop IDs, and Furusato Nozei eligibility flags via a single endpoint.
What is the Rakuten API?
The Rakuten Ichiba Search API gives you access to Rakuten Japan's product catalog through one endpoint, search_products, which returns up to 7 structured fields per item — including name, price, shop ID, item ID, product URL, and a Furusato Nozei eligibility flag. Queries accept a Japanese or romaji keyword and an optional page number, making it straightforward to paginate through search results ranked by Rakuten's default relevance algorithm.
curl -X GET 'https://api.parse.bot/scraper/3d94b0f3-f45a-45a4-9ba2-7e2ab41606fd/search_products?page=1&query=%E3%83%86%E3%83%AC%E3%83%93' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace search-rakuten-co-jp-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Rakuten Search API — search products and identify Furusato Nozei items."""
from parse_apis.rakuten_search_api import Rakuten, ProductNotFound
client = Rakuten()
# Search for TV products, capped at 5 items total.
for product in client.products.search(query="テレビ", limit=5):
print(product.name, product.price, product.is_furusato_nozei)
# Drill into first result of a different query.
item = client.products.search(query="コーヒー", limit=1).first()
if item:
print(item.name, item.url, item.shop_id)
# Typed error handling around a search that may yield nothing.
try:
result = client.products.search(query="ふるさと納税 牛肉", limit=3).first()
if result:
print(result.name, result.price, result.item_id)
except ProductNotFound as exc:
print(f"No products found for: {exc.query}")
print("exercised: products.search / first / iteration with limit")Search for products on Rakuten Ichiba. Returns paginated results including product names, URLs, prices, and shop IDs, with a flag indicating whether each item is Furusato Nozei (Hometown Tax) eligible. Results follow Rakuten's default relevance ranking. Approximately 50 items per page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number to fetch. Must be a positive integer. |
| queryrequired | string | Search keyword to query Rakuten's product catalog (e.g. 'テレビ', 'コーヒー'). |
{
"type": "object",
"fields": {
"page": "integer, page number returned",
"count": "integer, number of items on this page",
"items": "array of product objects with name, url, is_furusato_nozei, price, shop_id, item_id",
"query": "string, the search keyword used"
},
"sample": {
"data": {
"page": 1,
"count": 50,
"items": [
{
"url": "https://grp07.ias.rakuten.co.jp/redirect_rpp/?s=example",
"name": "FPD チューナーレステレビ 50V型 4K Google TV",
"price": "47621",
"item_id": "432862/10000001",
"shop_id": "432862",
"is_furusato_nozei": false
}
],
"query": "テレビ"
},
"status": "success"
}
}About the Rakuten API
What the API Returns
The search_products endpoint queries Rakuten Ichiba and returns a paginated list of matching products. Each response includes the page number returned, a count of items on that page, and an items array. Every item in that array carries six fields: name (product title), url (direct link to the listing), price (listed price), shop_id (the merchant identifier), item_id (Rakuten's unique item identifier), and is_furusato_nozei (a boolean flag indicating whether the item is eligible for Japan's Furusato Nozei — Hometown Tax — program based on its title). The response also echoes back the query string you submitted.
Using the Endpoint
The only required input is query, a search keyword string. Japanese characters work as expected — for example, テレビ for televisions or コーヒー for coffee. The optional page parameter must be a positive integer and lets you walk through result pages. Results follow Rakuten's default relevance ranking; there is no sort parameter exposed by this endpoint.
Furusato Nozei Detection
The is_furusato_nozei flag is derived from each product's title. Rakuten Ichiba hosts a large number of tax-donation-eligible items through the Furusato Nozei scheme, and this field lets you filter or segment those products without parsing product titles yourself. Keep in mind the flag is title-based, so edge cases with ambiguous naming may affect accuracy.
The Rakuten API is a managed, monitored endpoint for search.rakuten.co.jp — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when search.rakuten.co.jp changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official search.rakuten.co.jp API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track price changes for specific product keywords across Rakuten Ichiba by polling
search_productsover time. - Build a Furusato Nozei gift catalog by filtering results where
is_furusato_nozeiis true. - Identify which
shop_idvalues dominate search results for a given category keyword. - Aggregate
item_idandurlpairs to build a link directory of Rakuten listings for a niche product segment. - Compare listing counts (
count) across different keyword variants to gauge relative product availability. - Feed product names and prices into a price-comparison tool covering Japanese marketplace inventory.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Rakuten have an official developer API?+
What does the `is_furusato_nozei` field actually indicate?+
name field. It is not a guarantee of eligibility — it reflects what is present in the title text of each listing.Does the API return product reviews, ratings, or review counts?+
search_products endpoint returns name, url, price, shop_id, item_id, and is_furusato_nozei — no review scores or counts are included. You can fork this API on Parse and revise it to add a review-data endpoint if that data is part of what you need.Can I filter results by price range or product category?+
query and page are currently exposed. Results follow Rakuten's default relevance ranking for the given keyword. You can fork this API on Parse and revise it to add category or price-range filter inputs to the endpoint.