> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapeunblocker.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Scrape Rakuten Ichiba (Japan) product search

> Searches Rakuten Ichiba (rakuten.co.jp) for `query` and returns `products`, each with `position`, `itemId`, `itemCode`, `shopId` / `shopCode` / `shopName`, `title`, `subtitle`, `url`, `price` (yen, tax included; `priceMax` when variants are priced differently), `points` (Rakuten points a signed-out shopper earns) and `pointMultiplier`, `rating`, `reviewCount`, `shippingFee` / `freeShipping`, `deliveryEstimate`, `nextDayDelivery`, `unitPrice` / `unitPriceText` / `packCount`, `subscriptionPrice`, `saleEnds`, `ranking` (daily genre rank), `soldOut`, `used`, `preOrder`, `superDeal`, `hasVariants`, `genreId` / `genres`, `tags` and `image` / `images`. Rakuten's sponsored results come back in `sponsored` (same fields). Also `totalResults`, `reachableResults` (how far Rakuten lets the search be paged), `relatedKeywords` and `nextPage`. Sort with `sort`, filter with `min_price` / `max_price` / `genre_id`, start at `page` and collect up to `max_results` across pages (45 per page, each page billed as one request, see `pagesFetched`). `url` takes a Rakuten search link instead of `query`.



## OpenAPI

````yaml /api-reference/openapi.json post /marketplace/rakuten-search
openapi: 3.1.0
info:
  title: ScrapeUnblocker API
  description: >-
    Public API for the ScrapeUnblocker proxy/anti-bot service. Authenticate
    every request with the `x-scrapeunblocker-key` header. Documented here:
    page-source extraction, Google SERP scraping, image fetch, and the dedicated
    plugin endpoints (search engines, marketplaces, reviews, travel, social and
    more). All other paths exist for internal operations and are intentionally
    hidden from this spec.
  version: 3.0.0
servers:
  - url: https://api.scrapeunblocker.com
    description: Production
security: []
paths:
  /marketplace/rakuten-search:
    post:
      tags:
        - Plugins
      summary: Scrape Rakuten Ichiba (Japan) product search
      description: >-
        Searches Rakuten Ichiba (rakuten.co.jp) for `query` and returns
        `products`, each with `position`, `itemId`, `itemCode`, `shopId` /
        `shopCode` / `shopName`, `title`, `subtitle`, `url`, `price` (yen, tax
        included; `priceMax` when variants are priced differently), `points`
        (Rakuten points a signed-out shopper earns) and `pointMultiplier`,
        `rating`, `reviewCount`, `shippingFee` / `freeShipping`,
        `deliveryEstimate`, `nextDayDelivery`, `unitPrice` / `unitPriceText` /
        `packCount`, `subscriptionPrice`, `saleEnds`, `ranking` (daily genre
        rank), `soldOut`, `used`, `preOrder`, `superDeal`, `hasVariants`,
        `genreId` / `genres`, `tags` and `image` / `images`. Rakuten's sponsored
        results come back in `sponsored` (same fields). Also `totalResults`,
        `reachableResults` (how far Rakuten lets the search be paged),
        `relatedKeywords` and `nextPage`. Sort with `sort`, filter with
        `min_price` / `max_price` / `genre_id`, start at `page` and collect up
        to `max_results` across pages (45 per page, each page billed as one
        request, see `pagesFetched`). `url` takes a Rakuten search link instead
        of `query`.
      operationId: rakuten_search_marketplace_rakuten_search_post
      parameters:
        - name: query
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              What to search, in Japanese or English, e.g. 'iphone', 'コーヒー' or
              'ナイキ スニーカー'.
            title: Query
          description: >-
            What to search, in Japanese or English, e.g. 'iphone', 'コーヒー' or
            'ナイキ スニーカー'.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            description: >-
              Order: relevance, price_low, price_high, newest, review_count,
              review_score.
            default: relevance
            title: Sort
          description: >-
            Order: relevance, price_low, price_high, newest, review_count,
            review_score.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            description: >-
              1-based results page to start from (1-150; Rakuten lets a search
              be paged through to 6750 items).
            default: 1
            title: Page
          description: >-
            1-based results page to start from (1-150; Rakuten lets a search be
            paged through to 6750 items).
        - name: min_price
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: Lowest price, in yen.
            title: Min Price
          description: Lowest price, in yen.
        - name: max_price
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: Highest price, in yen.
            title: Max Price
          description: Highest price, in yen.
        - name: genre_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Limit to one Rakuten genre (category) id, e.g. '100227' (food) -
              every result's `genreId` is one.
            title: Genre Id
          description: >-
            Limit to one Rakuten genre (category) id, e.g. '100227' (food) -
            every result's `genreId` is one.
        - name: max_results
          in: query
          required: false
          schema:
            type: integer
            description: >-
              Items to collect across pages (1-450); Rakuten serves 45 per page
              and each page read is billed as one request.
            default: 45
            title: Max Results
          description: >-
            Items to collect across pages (1-450); Rakuten serves 45 per page
            and each page read is billed as one request.
        - name: url
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Instead of `query`: a Rakuten search link, e.g.
              https://search.rakuten.co.jp/search/mall/coffee/?s=2 (its keyword,
              genre, sort, page and price filter are used).
            title: Url
          description: >-
            Instead of `query`: a Rakuten search link, e.g.
            https://search.rakuten.co.jp/search/mall/coffee/?s=2 (its keyword,
            genre, sort, page and price filter are used).
      responses:
        '200':
          description: JSON with a `products` array plus paging totals.
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid parameters.
        '404':
          description: Rakuten found no items for this search.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: >-
            No usable answer from Rakuten on every attempt, or the call did not
            finish in time.
      security:
        - ScrapeUnblockerKey: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ScrapeUnblockerKey:
      type: apiKey
      in: header
      name: x-scrapeunblocker-key
      description: Your ScrapeUnblocker API key. Apply on every request.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.