{"openapi":"3.1.0","jsonSchemaDialect":"https://spec.openapis.org/oas/3.1/dialect/base","info":{"title":"search.rakuten.co.jp API — compiled by Unbrowse","version":"2026.09.28","summary":"Call search.rakuten.co.jp's own capabilities over HTTP, without a browser.","description":"The first-party capabilities of search.rakuten.co.jp, compiled from the site's own requests. Each tool is one POST with its inputs as a JSON body; the answer is the run, with the site's result when it is verified. Only verified results bill. The same tools are an MCP server at https://unbrowse.ai/api/v1/sites/search.rakuten.co.jp/mcp. Unofficial: not made or endorsed by search.rakuten.co.jp.","contact":{"name":"Unbrowse","url":"https://unbrowse.ai"}},"externalDocs":{"description":"Calling an indexed website","url":"https://unbrowse.ai/docs/site-apis"},"servers":[{"url":"https://unbrowse.ai","description":"Unbrowse"}],"security":[{"bearer":[]}],"tags":[{"name":"search.rakuten.co.jp","description":"Tools compiled from search.rakuten.co.jp"}],"paths":{"/api/v1/sites/search.rakuten.co.jp/call/search_rakuten_co_jp__get_search_mall":{"post":{"operationId":"search_rakuten_co_jp__get_search_mall","summary":"Read search mall on search.rakuten.co.jp — 【楽天市場】マリオカート ワールド セットの通販","description":"Read search mall on search.rakuten.co.jp — 【楽天市場】マリオカート ワールド セットの通販. Compiled from search.rakuten.co.jp's own requests and shared by an Unbrowse user. Takes the site's own parameters, each optional (left out, the recorded value is sent): s (recorded: \"2\"). Returns the page's title, readable text and links. A large answer comes back as its records at data (as results); pass select for other parts. Read-only on search.rakuten.co.jp.","tags":["search.rakuten.co.jp"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/Deadline"},{"$ref":"#/components/parameters/EndUser"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"s":{"type":"integer","description":"Optional: the site's own s parameter (get_search_mall). Left out, \"2\" is sent, as recorded.","default":"2"},"select":{"type":"array","items":{"type":"string"},"description":"Keep only these parts of the result: dots walk keys, [] maps over a list, a final {a,b} keeps several keys (e.g. \"results[].{title,url}\"). Unmatched paths come back in selectMissing. Left out on a large answer, its records at data come back as results (the rest is named in projection).","examples":[["data[]"]]},"deadlineMs":{"type":"integer","minimum":5000,"maximum":300000,"default":60000,"description":"Answer within this many ms (5,000–300,000). Past it: 504 run_timeout with a runId to poll; the run keeps going. The x-unbrowse-deadline-ms header wins."}},"required":[],"additionalProperties":false},"example":{"s":2}}}},"responses":{"200":{"description":"The run finished: `status` succeeded carries the site's verified `result`; failed carries `error` (never billed).","content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"type":"string","description":"The run, for unbrowse_inspect / resume / cancel"},"status":{"type":"string","enum":["succeeded","input_required","failed","outcome_unknown","cancelled","working","accepted","expired"],"description":"succeeded carries the site's result; input_required lists what to answer (unbrowse_resume)"},"capabilityId":{"type":["string","null"]},"result":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"integer"},"subtitle":{"type":"string"},"url":{"type":"string"},"originalItemUrl":{"type":"string"},"bookmarkUrl":{"type":"null"},"code":{"type":"string"},"images":{"type":"array","items":{"type":"object","properties":{"title":{"type":"null"},"url":{"type":"string"},"resizable_url":{"type":"string"}},"required":["title","url","resizable_url"]}},"genreIdList":{"type":"string"},"rancode":{"type":"string"},"productUrl":{"type":"string"},"isSoldOut":{"type":"boolean"},"options":{"type":"array"},"itemOptions":{"type":"object","properties":{"superDeal":{"type":"boolean"},"premium":{"type":"boolean"},"student":{"type":"boolean"},"used":{"type":"boolean"},"used_condition":{"type":["string","null"]},"rental":{"type":"boolean"},"asuraku":{"type":"boolean"},"preOrder":{"type":"boolean"},"distribution":{"type":"boolean"},"pamphlet":{"type":"boolean"},"subscription":{"type":"boolean"},"video":{"type":"boolean"},"shop39":{"type":["boolean","null"]},"mno":{"type":"boolean"},"cpc":{"type":"null"},"similarImage":{"type":"boolean"},"productFilterTutorial":{"type":"boolean"},"genreKaimawari":{"type":"boolean"},"hometownTax":{"type":"boolean"},"socialGift":{"type":"boolean"}},"required":["superDeal","premium","student","used","used_condition","rental","asuraku","preOrder","distribution","pamphlet","subscription","video","shop39","mno","cpc","similarImage","productFilterTutorial","genreKaimawari","hometownTax","socialGift"]},"shop":{"type":"object","properties":{"name":{"type":"string"},"id":{"type":"integer"},"code":{"type":"string"},"urlCode":{"type":"string"},"url":{"type":"string"},"review":{"type":"null"},"excellent":{"type":"boolean"},"renovating":{"type":"boolean"},"online":{"type":"null"},"officialBrandShopLabel":{"type":"null"}},"required":["name","id","code","urlCode","url","review","excellent","renovating","online","officialBrandShopLabel"]},"shipping":{"type":"object","properties":{"price":{"type":"integer"},"limit":{"type":["null","integer"]},"estimateDeliveryDay":{"type":"string"},"estimateDeliveryDayBoldTexts":{"type":["null","array"]},"estimateDeliveryDayShort":{"type":["null","string"]},"deliveryTextType":{"type":"string"},"deliveryDays":{"type":["null","integer"]},"rsl":{"type":"boolean"},"deliveryCertificationProgram":{"type":"boolean"}},"required":["price","limit","estimateDeliveryDay","estimateDeliveryDayBoldTexts","estimateDeliveryDayShort","deliveryTextType","deliveryDays","rsl","deliveryCertificationProgram"]},"point":{"type":"object","properties":{"count":{"type":"integer"},"baseMultiplier":{"type":"integer"},"dealMultiplier":{"type":"null"},"pointUpMultiplier":{"type":"null"},"itemMultiplier":{"type":["null","integer"]},"shopMultiplier":{"type":"null"},"shopMinRangeMultiplier":{"type":["null","integer"]},"shopMaxRangeMultiplier":{"type":["null","integer"]},"pointUpFestival":{"type":"boolean"},"shopPointRateByRank":{"type":"object","properties":{"gold":{"type":["null","integer"]},"platinum":{"type":["null","integer"]},"diamond":{"type":["null","integer"]},"silver":{"type":["null","integer"]},"regular":{"type":"null"}},"required":["gold","platinum","diamond","silver","regular"]},"showHttFixedCardText":{"type":"boolean"},"hasHttCardPointForBaseOff":{"type":"boolean"},"isHttBasePointOff":{"type":"boolean"}},"required":["count","baseMultiplier","dealMultiplier","pointUpMultiplier","itemMultiplier","shopMultiplier","shopMinRangeMultiplier","shopMaxRangeMultiplier","pointUpFestival","shopPointRateByRank","showHttFixedCardText","hasHttCardPointForBaseOff","isHttBasePointOff"]},"review":{"type":"object","properties":{"score":{"type":"integer"},"numReviews":{"type":"integer"},"url":{"type":"string"}},"required":["score","numReviews","url"]},"sale":{"type":"null"},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"tag_group":{"type":"object"}},"required":["id","name","tag_group"]}},"genres":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"]}},"attributes":{"type":"array"},"brand":{"type":"null"},"product":{"type":"null"},"ranking":{"type":"null"},"units":{"type":"null"},"coupons":{"type":"array"},"variantId":{"type":"string"},"skuInfo":{"type":"object","properties":{"splitType":{"type":"string"},"attrLineHighlightType":{"type":"null"},"priceRange":{"type":"string"},"imageSource":{"type":"string"},"gspDocId":{"type":"string"},"hasMultiSku":{"type":"boolean"}},"required":["splitType","attrLineHighlightType","priceRange","imageSource","gspDocId","hasMultiSku"]},"skuAttributes":{"type":"null"},"affiliate":{"type":"null"},"hasPriceRange":{"type":"boolean"},"subscription":{"type":"null"},"axis":{"type":"null"},"debugInfo":{"type":"null"},"signals":{"type":"null"},"relevancyScore":{"type":"null"}},"required":["name","price","subtitle","url","originalItemUrl","bookmarkUrl","code","images","genreIdList","rancode","productUrl","isSoldOut","options","itemOptions","shop","shipping","point","review","sale","tags","genres","attributes","brand","product","ranking","units","coupons","variantId","skuInfo","skuAttributes","affiliate","hasPriceRange","subscription","axis","debugInfo","signals","relevancyScore"]}},"title":{"type":"string"},"text":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"href":{"type":"string"}},"required":["text","href"]}}},"required":["data","title","text","links"]},"error":{"type":["object","null"]},"requirements":{"type":"array"},"via":{"type":["string","null"],"enum":["http","rendered",null]}},"required":["runId","status"],"additionalProperties":true}}}},"202":{"description":"The run needs input (`status` input_required): answer `requirements` with POST /api/v1/runs/{runId}/responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"400":{"description":"The body is not JSON, or a value is malformed (invalid_input, bad_request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"No API key, or an invalid one: send Authorization: Bearer <key>.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Out of verified calls this month (quota_exceeded) or out of paid credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such tool on this site (not_found).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The tool is quarantined (tool_quarantined): it failed its checks and is rechecked automatically; the message says what to use now.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"An input the tool does not take (unknown_argument): the message lists the ones it does.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (by the site or by Unbrowse): retry after the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"run_timeout: the run did not finish within its deadline. It keeps going: poll the given runId. A verified success is billed once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunTimeout"}}}}},"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -s 'https://unbrowse.ai/api/v1/sites/search.rakuten.co.jp/call/search_rakuten_co_jp__get_search_mall' \\\n  -H \"authorization: Bearer $UNBROWSE_API_KEY\" \\\n  -H \"content-type: application/json\" \\\n  -d '{\"s\":2}'"},{"lang":"TypeScript","label":"TypeScript","source":"import { Unbrowse } from \"@unbrowse/sdk\";\n\nconst ub = new Unbrowse(); // reads UNBROWSE_API_KEY\nconst run = await ub.callTool(\"search.rakuten.co.jp\", \"search_rakuten_co_jp__get_search_mall\", {\n  s: 2,\n});\nif (run.status === \"succeeded\") console.log(run.result);"},{"lang":"Python","label":"Python","source":"import os, requests\n\nr = requests.post(\n    \"https://unbrowse.ai/api/v1/sites/search.rakuten.co.jp/call/search_rakuten_co_jp__get_search_mall\",\n    headers={\"Authorization\": f\"Bearer {os.environ['UNBROWSE_API_KEY']}\"},\n    json={\n        \"s\": 2,\n    },\n    timeout=120,\n)\nr.raise_for_status()\nrun = r.json()\nif run[\"status\"] == \"succeeded\":\n    print(run[\"result\"])"}],"x-unbrowse-capability":"public.search_rakuten_co_jp.get_search_mall","x-unbrowse-read-only":true,"x-unbrowse-version":"2026.09.28"}},"/api/v1/sites/search.rakuten.co.jp/call/search_rakuten_co_jp__read_page":{"post":{"operationId":"search_rakuten_co_jp__read_page","summary":"Read a search.rakuten.co.jp page by s","description":"Read a search.rakuten.co.jp page by s. Compiled from search.rakuten.co.jp's own requests and shared by an Unbrowse user. Inputs: s (optional). Returns the page's title, readable text and links. A large answer comes back as its records at data (as results); pass select for other parts. Read-only on search.rakuten.co.jp.","tags":["search.rakuten.co.jp"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/Deadline"},{"$ref":"#/components/parameters/EndUser"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"s":{"type":"string","description":"s — the part of the search.rakuten.co.jp address that changes","default":"2"},"select":{"type":"array","items":{"type":"string"},"description":"Keep only these parts of the result: dots walk keys, [] maps over a list, a final {a,b} keeps several keys (e.g. \"results[].{title,url}\"). Unmatched paths come back in selectMissing. Left out on a large answer, its records at data come back as results (the rest is named in projection).","examples":[["data[]"]]},"deadlineMs":{"type":"integer","minimum":5000,"maximum":300000,"default":60000,"description":"Answer within this many ms (5,000–300,000). Past it: 504 run_timeout with a runId to poll; the run keeps going. The x-unbrowse-deadline-ms header wins."}},"required":[],"additionalProperties":false},"example":{"s":"2"}}}},"responses":{"200":{"description":"The run finished: `status` succeeded carries the site's verified `result`; failed carries `error` (never billed).","content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"type":"string","description":"The run, for unbrowse_inspect / resume / cancel"},"status":{"type":"string","enum":["succeeded","input_required","failed","outcome_unknown","cancelled","working","accepted","expired"],"description":"succeeded carries the site's result; input_required lists what to answer (unbrowse_resume)"},"capabilityId":{"type":["string","null"]},"result":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"integer"},"subtitle":{"type":"string"},"url":{"type":"string"},"originalItemUrl":{"type":"string"},"bookmarkUrl":{"type":"null"},"code":{"type":"string"},"images":{"type":"array","items":{"type":"object","properties":{"title":{"type":"null"},"url":{"type":"string"},"resizable_url":{"type":"string"}},"required":["title","url","resizable_url"]}},"genreIdList":{"type":"string"},"rancode":{"type":["null","string"]},"productUrl":{"type":["null","string"]},"isSoldOut":{"type":"boolean"},"options":{"type":"array"},"itemOptions":{"type":"object","properties":{"superDeal":{"type":"boolean"},"premium":{"type":"boolean"},"student":{"type":"boolean"},"used":{"type":"boolean"},"used_condition":{"type":["null","string"]},"rental":{"type":"boolean"},"asuraku":{"type":"boolean"},"preOrder":{"type":"boolean"},"distribution":{"type":"boolean"},"pamphlet":{"type":"boolean"},"subscription":{"type":"boolean"},"video":{"type":"boolean"},"shop39":{"type":"boolean"},"mno":{"type":"boolean"},"cpc":{"type":"null"},"similarImage":{"type":"boolean"},"productFilterTutorial":{"type":"boolean"},"genreKaimawari":{"type":"boolean"},"hometownTax":{"type":"boolean"},"socialGift":{"type":"boolean"}},"required":["superDeal","premium","student","used","used_condition","rental","asuraku","preOrder","distribution","pamphlet","subscription","video","shop39","mno","cpc","similarImage","productFilterTutorial","genreKaimawari","hometownTax","socialGift"]},"shop":{"type":"object","properties":{"name":{"type":"string"},"id":{"type":"integer"},"code":{"type":"string"},"urlCode":{"type":"string"},"url":{"type":"string"},"review":{"type":"null"},"excellent":{"type":"boolean"},"renovating":{"type":"boolean"},"online":{"type":"null"},"officialBrandShopLabel":{"type":"null"}},"required":["name","id","code","urlCode","url","review","excellent","renovating","online","officialBrandShopLabel"]},"shipping":{"type":"object","properties":{"price":{"type":"integer"},"limit":{"type":["null","integer"]},"estimateDeliveryDay":{"type":"string"},"estimateDeliveryDayBoldTexts":{"type":"null"},"estimateDeliveryDayShort":{"type":["string","null"]},"deliveryTextType":{"type":"string"},"deliveryDays":{"type":["integer","null"]},"rsl":{"type":"boolean"},"deliveryCertificationProgram":{"type":"boolean"}},"required":["price","limit","estimateDeliveryDay","estimateDeliveryDayBoldTexts","estimateDeliveryDayShort","deliveryTextType","deliveryDays","rsl","deliveryCertificationProgram"]},"point":{"type":"object","properties":{"count":{"type":"integer"},"baseMultiplier":{"type":"integer"},"dealMultiplier":{"type":"null"},"pointUpMultiplier":{"type":"null"},"itemMultiplier":{"type":"null"},"shopMultiplier":{"type":"null"},"shopMinRangeMultiplier":{"type":"null"},"shopMaxRangeMultiplier":{"type":"null"},"pointUpFestival":{"type":"boolean"},"shopPointRateByRank":{"type":"object","properties":{"gold":{"type":"null"},"platinum":{"type":"null"},"diamond":{"type":"null"},"silver":{"type":"null"},"regular":{"type":"null"}},"required":["gold","platinum","diamond","silver","regular"]},"showHttFixedCardText":{"type":"boolean"},"hasHttCardPointForBaseOff":{"type":"boolean"},"isHttBasePointOff":{"type":"boolean"}},"required":["count","baseMultiplier","dealMultiplier","pointUpMultiplier","itemMultiplier","shopMultiplier","shopMinRangeMultiplier","shopMaxRangeMultiplier","pointUpFestival","shopPointRateByRank","showHttFixedCardText","hasHttCardPointForBaseOff","isHttBasePointOff"]},"review":{"type":"object","properties":{"score":{"type":"number"},"numReviews":{"type":"integer"},"url":{"type":"string"}},"required":["score","numReviews","url"]},"sale":{"type":"null"},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"tag_group":{"type":"object"}},"required":["id","name","tag_group"]}},"genres":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"}},"required":["id","name"]}},"attributes":{"type":"array"},"brand":{"type":"null"},"product":{"type":"null"},"ranking":{"type":"null"},"units":{"type":"null"},"coupons":{"type":"array"},"variantId":{"type":"string"},"skuInfo":{"type":"object","properties":{"splitType":{"type":"string"},"attrLineHighlightType":{"type":"null"},"priceRange":{"type":"string"},"imageSource":{"type":"string"},"gspDocId":{"type":"string"},"hasMultiSku":{"type":"boolean"}},"required":["splitType","attrLineHighlightType","priceRange","imageSource","gspDocId","hasMultiSku"]},"skuAttributes":{"type":"null"},"affiliate":{"type":"null"},"hasPriceRange":{"type":"boolean"},"subscription":{"type":"null"},"axis":{"type":"null"},"debugInfo":{"type":"null"},"signals":{"type":"null"},"relevancyScore":{"type":"null"}},"required":["name","price","subtitle","url","originalItemUrl","bookmarkUrl","code","images","genreIdList","rancode","productUrl","isSoldOut","options","itemOptions","shop","shipping","point","review","sale","tags","genres","attributes","brand","product","ranking","units","coupons","variantId","skuInfo","skuAttributes","affiliate","hasPriceRange","subscription","axis","debugInfo","signals","relevancyScore"]}},"title":{"type":"string"},"text":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"href":{"type":"string"}},"required":["text","href"]}},"images":{"type":"array","items":{"type":"object","properties":{"alt":{"type":"string"},"src":{"type":"string"}},"required":["alt","src"]}}},"required":["data","title","text","links","images"]},"error":{"type":["object","null"]},"requirements":{"type":"array"},"via":{"type":["string","null"],"enum":["http","rendered",null]}},"required":["runId","status"],"additionalProperties":true}}}},"202":{"description":"The run needs input (`status` input_required): answer `requirements` with POST /api/v1/runs/{runId}/responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"400":{"description":"The body is not JSON, or a value is malformed (invalid_input, bad_request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"No API key, or an invalid one: send Authorization: Bearer <key>.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Out of verified calls this month (quota_exceeded) or out of paid credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such tool on this site (not_found).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The tool is quarantined (tool_quarantined): it failed its checks and is rechecked automatically; the message says what to use now.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"An input the tool does not take (unknown_argument): the message lists the ones it does.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (by the site or by Unbrowse): retry after the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"run_timeout: the run did not finish within its deadline. It keeps going: poll the given runId. A verified success is billed once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunTimeout"}}}}},"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -s 'https://unbrowse.ai/api/v1/sites/search.rakuten.co.jp/call/search_rakuten_co_jp__read_page' \\\n  -H \"authorization: Bearer $UNBROWSE_API_KEY\" \\\n  -H \"content-type: application/json\" \\\n  -d '{\"s\":\"2\"}'"},{"lang":"TypeScript","label":"TypeScript","source":"import { Unbrowse } from \"@unbrowse/sdk\";\n\nconst ub = new Unbrowse(); // reads UNBROWSE_API_KEY\nconst run = await ub.callTool(\"search.rakuten.co.jp\", \"search_rakuten_co_jp__read_page\", {\n  s: \"2\",\n});\nif (run.status === \"succeeded\") console.log(run.result);"},{"lang":"Python","label":"Python","source":"import os, requests\n\nr = requests.post(\n    \"https://unbrowse.ai/api/v1/sites/search.rakuten.co.jp/call/search_rakuten_co_jp__read_page\",\n    headers={\"Authorization\": f\"Bearer {os.environ['UNBROWSE_API_KEY']}\"},\n    json={\n        \"s\": \"2\",\n    },\n    timeout=120,\n)\nr.raise_for_status()\nrun = r.json()\nif run[\"status\"] == \"succeeded\":\n    print(run[\"result\"])"}],"x-unbrowse-capability":"public.search_rakuten_co_jp.read_page","x-unbrowse-read-only":true,"x-unbrowse-version":"2026.09.22.1"}},"/api/v1/sites/search.rakuten.co.jp/call/search_rakuten_co_jp__render_page":{"post":{"operationId":"search_rakuten_co_jp__render_page","summary":"Search Rakuten for PlayStation 5 Pro listings","description":"Search Rakuten for PlayStation 5 Pro listings. Compiled from search.rakuten.co.jp's own requests and shared by an Unbrowse user. Inputs: keyword. Returns the page's title, readable text and links. Read-only on search.rakuten.co.jp.","tags":["search.rakuten.co.jp"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/Deadline"},{"$ref":"#/components/parameters/EndUser"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"type":"string","description":"keyword — what to search for on search.rakuten.co.jp"},"select":{"type":"array","items":{"type":"string"},"description":"Keep only these parts of the result: dots walk keys, [] maps over a list, a final {a,b} keeps several keys (e.g. \"results[].{title,url}\"). Unmatched paths come back in selectMissing."},"deadlineMs":{"type":"integer","minimum":5000,"maximum":300000,"default":60000,"description":"Answer within this many ms (5,000–300,000). Past it: 504 run_timeout with a runId to poll; the run keeps going. The x-unbrowse-deadline-ms header wins."}},"required":["keyword"],"additionalProperties":false}}}},"responses":{"200":{"description":"The run finished: `status` succeeded carries the site's verified `result`; failed carries `error` (never billed).","content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"type":"string","description":"The run, for unbrowse_inspect / resume / cancel"},"status":{"type":"string","enum":["succeeded","input_required","failed","outcome_unknown","cancelled","working","accepted","expired"],"description":"succeeded carries the site's result; input_required lists what to answer (unbrowse_resume)"},"capabilityId":{"type":["string","null"]},"result":{"type":"object","properties":{"title":{"type":"string"},"text":{"type":"string"},"links":{"type":"array"}},"required":["title","text","links"]},"error":{"type":["object","null"]},"requirements":{"type":"array"},"via":{"type":["string","null"],"enum":["http","rendered",null]}},"required":["runId","status"],"additionalProperties":true}}}},"202":{"description":"The run needs input (`status` input_required): answer `requirements` with POST /api/v1/runs/{runId}/responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"400":{"description":"The body is not JSON, or a value is malformed (invalid_input, bad_request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"No API key, or an invalid one: send Authorization: Bearer <key>.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Out of verified calls this month (quota_exceeded) or out of paid credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such tool on this site (not_found).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The tool is quarantined (tool_quarantined): it failed its checks and is rechecked automatically; the message says what to use now.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"An input the tool does not take (unknown_argument): the message lists the ones it does.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (by the site or by Unbrowse): retry after the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"run_timeout: the run did not finish within its deadline. It keeps going: poll the given runId. A verified success is billed once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunTimeout"}}}}},"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -s 'https://unbrowse.ai/api/v1/sites/search.rakuten.co.jp/call/search_rakuten_co_jp__render_page' \\\n  -H \"authorization: Bearer $UNBROWSE_API_KEY\" \\\n  -H \"content-type: application/json\" \\\n  -d '{\"keyword\":\"<keyword>\"}'"},{"lang":"TypeScript","label":"TypeScript","source":"import { Unbrowse } from \"@unbrowse/sdk\";\n\nconst ub = new Unbrowse(); // reads UNBROWSE_API_KEY\nconst run = await ub.callTool(\"search.rakuten.co.jp\", \"search_rakuten_co_jp__render_page\", {\n  keyword: \"<keyword>\",\n});\nif (run.status === \"succeeded\") console.log(run.result);"},{"lang":"Python","label":"Python","source":"import os, requests\n\nr = requests.post(\n    \"https://unbrowse.ai/api/v1/sites/search.rakuten.co.jp/call/search_rakuten_co_jp__render_page\",\n    headers={\"Authorization\": f\"Bearer {os.environ['UNBROWSE_API_KEY']}\"},\n    json={\n        \"keyword\": \"<keyword>\",\n    },\n    timeout=120,\n)\nr.raise_for_status()\nrun = r.json()\nif run[\"status\"] == \"succeeded\":\n    print(run[\"result\"])"}],"x-unbrowse-capability":"public.search_rakuten_co_jp.render_page","x-unbrowse-read-only":true,"x-unbrowse-version":"2026.09.22.1"}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"An Unbrowse API key (ub_live_…, from https://unbrowse.ai/app/keys) or an OAuth access token."}},"parameters":{"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Makes a retry safe: a repeat with the same key returns the same run instead of starting another."},"Deadline":{"name":"x-unbrowse-deadline-ms","in":"header","required":false,"schema":{"type":"integer","minimum":5000,"maximum":300000,"default":60000},"description":"Answer within this many ms; past it 504 run_timeout (the run keeps going). Same as deadlineMs in the body."},"EndUser":{"name":"X-Unbrowse-End-User","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"With an org key: run as this end user, in their own workspace with their own logins."}},"schemas":{"Run":{"type":"object","properties":{"runId":{"type":"string","description":"The run, for unbrowse_inspect / resume / cancel"},"status":{"type":"string","enum":["succeeded","input_required","failed","outcome_unknown","cancelled","working","accepted","expired"],"description":"succeeded carries the site's result; input_required lists what to answer (unbrowse_resume)"},"capabilityId":{"type":["string","null"]},"result":{},"error":{"type":["object","null"]},"requirements":{"type":"array"},"via":{"type":["string","null"],"enum":["http","rendered",null]}},"required":["runId","status"],"additionalProperties":true},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, e.g. not_found, unknown_argument, quota_exceeded, run_timeout"},"message":{"type":"string","description":"What happened and what to do, in plain words"}},"additionalProperties":true}},"additionalProperties":true},"RunTimeout":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","runId","poll"],"properties":{"code":{"type":"string","const":"run_timeout"},"message":{"type":"string"},"runId":{"type":"string"},"deadlineMs":{"type":"integer"},"poll":{"type":"string","description":"GET this to read the run's answer when it lands"}},"additionalProperties":true}},"additionalProperties":true}}}}