> ## 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 1688.com wholesale search results

> Searches 1688.com (China's B2B wholesale marketplace) for `q` and returns the offers as JSON: `offerId`, `title`, `url`, `image`/`images`, `price` in yuan (`currency` CNY), `priceTiers` (price per quantity range with `minQuantity`/`maxQuantity`), `soldText` + `sold` (lower bound of units sold), `repurchaseRatePercent`, `serviceTags`, `promotionTags`, `tags`, `sponsored`, and the `supplier` (`name`, `loginId`, `memberId`, `shopUrl`, `yearsOnPlatform`, `province`, `city`, `factoryInspected`, `businessInspected`, `superFactory`, `tradeScores`). Sort by relevance, sales or price, filter with `price_min`/`price_max` (yuan) and `province`, and collect up to `max_results` across pages (60 per page, each page billed as one request, see `pagesFetched`). Paging: `nextPage` is the next 1688 page not yet returned (pass it as `page` to continue) and `hasMore` says whether there is one; when `max_results` ends inside a page, the rest of that page is not returned (`droppedFromLastPage`), so use multiples of 60 to get every offer. Text is returned in Chinese as 1688 publishes it. Companion to `/marketplace/1688-product`.



## OpenAPI

````yaml /api-reference/openapi.json post /marketplace/1688-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/1688-search:
    post:
      tags:
        - Plugins
      summary: Scrape 1688.com wholesale search results
      description: >-
        Searches 1688.com (China's B2B wholesale marketplace) for `q` and
        returns the offers as JSON: `offerId`, `title`, `url`, `image`/`images`,
        `price` in yuan (`currency` CNY), `priceTiers` (price per quantity range
        with `minQuantity`/`maxQuantity`), `soldText` + `sold` (lower bound of
        units sold), `repurchaseRatePercent`, `serviceTags`, `promotionTags`,
        `tags`, `sponsored`, and the `supplier` (`name`, `loginId`, `memberId`,
        `shopUrl`, `yearsOnPlatform`, `province`, `city`, `factoryInspected`,
        `businessInspected`, `superFactory`, `tradeScores`). Sort by relevance,
        sales or price, filter with `price_min`/`price_max` (yuan) and
        `province`, and collect up to `max_results` across pages (60 per page,
        each page billed as one request, see `pagesFetched`). Paging: `nextPage`
        is the next 1688 page not yet returned (pass it as `page` to continue)
        and `hasMore` says whether there is one; when `max_results` ends inside
        a page, the rest of that page is not returned (`droppedFromLastPage`),
        so use multiples of 60 to get every offer. Text is returned in Chinese
        as 1688 publishes it. Companion to `/marketplace/1688-product`.
      operationId: search_1688_marketplace_1688_search_post
      parameters:
        - name: q
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              What to search, in Chinese or English, e.g. '手机壳', '连衣裙',
              'bluetooth earphones'. Chinese keywords match the most offers.
            title: Q
          description: >-
            What to search, in Chinese or English, e.g. '手机壳', '连衣裙', 'bluetooth
            earphones'. Chinese keywords match the most offers.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            description: >-
              1-based results page to start from (1-34). Use `nextPage` of a
              previous response to continue.
            default: 1
            title: Page
          description: >-
            1-based results page to start from (1-34). Use `nextPage` of a
            previous response to continue.
        - name: max_results
          in: query
          required: false
          schema:
            type: integer
            description: >-
              Offers to collect across pages (1-300); 1688 serves 60 per page
              and each page fetched is billed as one request.
            default: 60
            title: Max Results
          description: >-
            Offers to collect across pages (1-300); 1688 serves 60 per page and
            each page fetched is billed as one request.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            description: >-
              Order: relevance, sales, price_asc, price_desc (sales = most sold
              in the last 30 days first; price in yuan).
            default: relevance
            title: Sort
          description: >-
            Order: relevance, sales, price_asc, price_desc (sales = most sold in
            the last 30 days first; price in yuan).
        - name: price_min
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            description: Only offers priced at or above this many yuan (CNY).
            title: Price Min
          description: Only offers priced at or above this many yuan (CNY).
        - name: price_max
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            description: Only offers priced at or below this many yuan (CNY).
            title: Price Max
          description: Only offers priced at or below this many yuan (CNY).
        - name: province
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Only suppliers in this Chinese province, by its Chinese name, e.g.
              广东 (Guangdong), 浙江 (Zhejiang), 江苏 (Jiangsu).
            title: Province
          description: >-
            Only suppliers in this Chinese province, by its Chinese name, e.g.
            广东 (Guangdong), 浙江 (Zhejiang), 江苏 (Jiangsu).
        - name: proxy_country
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Proxy country the request is sent from (ISO-2, e.g. 'DE', 'SG').
              Leave blank to let the API pick.
            title: Proxy Country
          description: >-
            Proxy country the request is sent from (ISO-2, e.g. 'DE', 'SG').
            Leave blank to let the API pick.
      responses:
        '200':
          description: >-
            JSON with a `products` array plus paging totals. A query 1688 has no
            offers for answers 200 with an empty array.
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid parameters.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: >-
            1688 refused every exit (slider page), no results page returned, 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.