{
  "openapi": "3.0.1",
  "info": {
    "title": "Rakuten Japan Scraper - Rakuten Ichiba Products & Prices",
    "description": "Get Rakuten Ichiba (楽天市場) product prices, shops and reviews by keyword, search link or product link: price, shop, shipping, points, review count, genre, tags, plus similar products from a product link. Filters for price, free shipping, used, sold out and sort. No login or API key.",
    "version": "0.1",
    "x-build-id": "3epFGBzZGycyFrGjp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~rakuten-japan-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-rakuten-japan-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrapewise~rakuten-japan-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-rakuten-japan-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrapewise~rakuten-japan-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-rakuten-japan-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Keywords to search on Rakuten Ichiba, one per line. Japanese gives the most results (ワイヤレスイヤホン, プロテイン, 水) and English works too (wireless earphones, protein). Each term runs one Rakuten search with its own limit, and every row keeps its term and its position in the results. Leave empty and use the links below, or leave both empty to run the example 'wireless earphones'. Also accepts 'keywords', 'queries' or 'query'.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Rakuten search links",
            "type": "array",
            "description": "Search result links from search.rakuten.co.jp, one per line, for example https://search.rakuten.co.jp/search/mall/wireless+earphones/ or a genre search. The link keeps its own filters (genre, sort, price) and the filters below are added on top. Product links (item.rakuten.co.jp) pasted here are treated as 'find similar products'. Other links return a free error row. Also accepts 'urls' or 'searchUrls'.",
            "items": {
              "type": "string"
            }
          },
          "similarToItems": {
            "title": "Find similar products (Rakuten product links)",
            "type": "array",
            "description": "Rakuten Ichiba product links, one per line (https://item.rakuten.co.jp/<shop>/<item>/), or 'shopId/itemId' numbers (the shopId column and the number after ':' in itemCode, e.g. 303383/10000975). For each one the Actor returns the products Rakuten shows as visually similar (似た商品, about 40 to 45 per product, one page), in the same row format plus sourceItem. The product itself is left out. Price range, sort order, free shipping, used and the skip filters below apply. Charged per product like a search. Also accepts 'similarItems'.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerItem": {
            "title": "Max similar products per item",
            "minimum": 0,
            "type": "integer",
            "description": "How many similar products to take for each product link (Rakuten returns about 40 to 45). Empty or 0 means all of them."
          },
          "maxResultsPerSearch": {
            "title": "Max products per search",
            "minimum": 1,
            "maximum": 6750,
            "type": "integer",
            "description": "How many products to take from each search, in the chosen order (1 to 6,750). Rakuten serves 45 products per page and at most 6,750 per search (150 pages). Empty means 45, one page. You pay per product delivered, so raise it step by step. Also accepts 'maxItemsPerSearch'."
          },
          "maxItems": {
            "title": "Max products in total",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on charged products for the whole run, across all searches and links together (for example 500). Empty or 0 means no run cap besides the per-search limit. Also accepts 'maxResults' or 'limit'."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "standard",
              "priceLow",
              "priceHigh",
              "newest",
              "mostReviews",
              "bestRated"
            ],
            "type": "string",
            "description": "Order of the results, the same options as the Rakuten search page: Standard (Rakuten's default ranking, used when empty), Price low to high, Price high to low, Newest, Most reviews or Best rated. With a per-search limit it also decides which products you get. A link keeps its own order unless you pick one here."
          },
          "minPrice": {
            "title": "Min price (JPY)",
            "minimum": 0,
            "type": "integer",
            "description": "Only products priced at or above this amount in Japanese yen (for example 3000), with Rakuten's own price filter. Leave empty for no minimum."
          },
          "maxPrice": {
            "title": "Max price (JPY)",
            "minimum": 0,
            "type": "integer",
            "description": "Only products priced at or below this amount in Japanese yen (for example 20000), with Rakuten's own price filter. Must be higher than the minimum price. Leave empty for no maximum."
          },
          "freeShippingOnly": {
            "title": "Free shipping only",
            "type": "boolean",
            "description": "Uses Rakuten's free-shipping filter (送料無料), so every product has shipping included in the price. Off by default."
          },
          "usedOnly": {
            "title": "Used items only",
            "type": "boolean",
            "description": "Uses Rakuten's used-goods filter (中古), so only second-hand products are returned. Off by default, which returns new and used products together."
          },
          "excludeKeywords": {
            "title": "Exclude products whose name contains",
            "type": "array",
            "description": "Words, one per line (for example 中古, ケース, anker). Products with any of them in the name are skipped and not charged. Case does not matter. Useful to drop accessories, cases or a brand from a broad search.",
            "items": {
              "type": "string"
            }
          },
          "excludeSoldOut": {
            "title": "Skip sold-out products",
            "type": "boolean",
            "description": "Skips products Rakuten marks as sold out (売り切れ), so every row can still be bought. Skipped products are not charged. Off by default."
          },
          "minReviews": {
            "title": "Min number of reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Skips products with fewer reviews than this number (for example 50); skipped products are not charged. Works best with the 'Most reviews' order, because the Actor reads at most 10 extra pages to fill the limit after skipping. Leave empty for no minimum."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Keep the default (Apify Proxy on). Search pages are fetched from Apify datacenter IPs with a fresh IP for every page; when Rakuten refuses one or returns a suspiciously empty page, the Actor retries it from Japanese IPs by itself, and similar-product lookups always go through Japan because Rakuten answers them only there. Proxy cost is included in the per-product price. Your own proxy URLs are used as they are, with no fallback.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}