{
  "openapi": "3.0.1",
  "info": {
    "title": "1688 Products Scraper: Wholesale, MOQ & 1688 Image Search",
    "description": "Scrape 1688.com products by keyword (English or Chinese), search URL, offer id, shop or image: price tiers by quantity, MOQ, sold count, images, the supplier's name, years, location and scores; every SKU, specs and shipping on a switch. No login. Export to CSV, JSON or Excel. Misses free.",
    "version": "0.1",
    "x-build-id": "iWDVLF4rmdbsIwUNt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/hyperbach~1688-products-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-hyperbach-1688-products-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/hyperbach~1688-products-scraper/runs": {
      "post": {
        "operationId": "runs-sync-hyperbach-1688-products-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/hyperbach~1688-products-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-hyperbach-1688-products-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": {
          "keywords": {
            "title": "Keywords",
            "maxItems": 1000,
            "type": "array",
            "description": "Search words, one search a line, in English (<code>wireless earbuds</code>) or Chinese (<code>蓝牙耳机</code>), sent to 1688 as you type them (never machine-translated). Each keyword is its own search, capped by <b>Max results per search</b>.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "1688 URLs",
            "maxItems": 1000,
            "type": "array",
            "description": "1688 links, one a line: a search page (<code>https://s.1688.com/selloffer/offer_search.htm?keywords=…</code>, its sort, price, province, city and supplier filters kept), a product page (<code>https://detail.1688.com/offer/853958648180.html</code>), or a shop link that carries its member id (<code>…memberId=b2b-…</code>, <code>m.1688.com/winport/b2b-….html</code>, or the bare <code>b2b-…</code> id). A shop's own address (<code>name.1688.com</code>) cannot be read logged out: its row says so and names the forms that work.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "offerIds": {
            "title": "Offer IDs or product URLs",
            "maxItems": 5000,
            "type": "array",
            "description": "Products to read directly, one a line: the offer id (the digits of <code>detail.1688.com/offer/<b>853958648180</b>.html</code>) or the product URL. Each is one row with its product page (every SKU, the specs, shipping, the shop card).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "imageUrls": {
            "title": "Image URLs (search by image)",
            "maxItems": 200,
            "type": "array",
            "description": "Images to find on 1688, one URL a line (a JPEG, PNG, WebP, GIF or BMP of at most 4 MB). The image is uploaded to 1688's own image search, and its similar products are read page by page (60 a page) to <b>Max results per search</b>.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max results per search",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop each keyword, search URL, shop or image after this many product rows (0 = to the end of 1688's list; 1688 shows at most 2,000 products a search). A product a filter leaves out, or one an earlier input of the run already delivered, is not counted.",
            "default": 100
          },
          "maxItems": {
            "title": "Max results (whole run)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "The most product rows of the whole run, all inputs together; 0 = no cap beyond your charge limit.",
            "default": 0
          },
          "includeDetails": {
            "title": "Read each product's page",
            "type": "boolean",
            "description": "Read every product's own page as well: every SKU with its price and stock, the full price tiers, the specs, the category, the listing date, shipping (origin, dispatch promise, fee, weight, package sizes), services, promotions, the review summary, certificates, dropship figures and the shop card (followers, main category, shop scores). Slower (the page is read on several connections at once) and charged as a product page per row. Offer IDs and product URLs always get it.",
            "default": false
          },
          "includeDescription": {
            "title": "Add the description",
            "type": "boolean",
            "description": "Add the seller's long description: its text, its image URLs and its raw HTML. Reads the product page too (as <b>Read each product's page</b>).",
            "default": false
          },
          "translateTitles": {
            "title": "English titles",
            "type": "boolean",
            "description": "Add <code>title_en</code>: each title in English from 1688's own translator (the one its pages use), next to the Chinese title.",
            "default": false
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "relevance",
              "bestSelling",
              "priceAsc",
              "priceDesc"
            ],
            "type": "string",
            "description": "1688's own sort of the search list.",
            "default": "relevance"
          },
          "priceMin": {
            "title": "Min price (CNY)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "number",
            "description": "Only products whose price is at least this many yuan (0 = no minimum). Sent to 1688's own price filter and checked on each row."
          },
          "priceMax": {
            "title": "Max price (CNY)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "number",
            "description": "Only products whose price is at most this many yuan (0 = no maximum). Sent to 1688's own price filter and checked on each row."
          },
          "maxMinOrder": {
            "title": "Max minimum order",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Only products whose minimum order quantity is at most this (0 = any), judged on each row's own minimum order. 1688's own MOQ filter works the other way (at least N), so this filter is applied here. Without the product page, a card that shows no minimum order is left out (free); with it, the page's minimum order decides."
          },
          "merchantType": {
            "title": "Supplier type",
            "enum": [
              "any",
              "superFactory",
              "verifiedMerchant"
            ],
            "type": "string",
            "description": "1688's own supplier filter: Super Factory (超级工厂) or Verified Merchant (实力商家).",
            "default": "any"
          },
          "manufacturersOnly": {
            "title": "Manufacturers only",
            "type": "boolean",
            "description": "Only suppliers 1688 lists as production and processing (生产加工).",
            "default": false
          },
          "province": {
            "title": "Supplier province",
            "type": "string",
            "description": "Only suppliers in this province, in Chinese as 1688 writes it: <code>广东</code> (Guangdong), <code>浙江</code> (Zhejiang), <code>江苏</code> (Jiangsu)."
          },
          "city": {
            "title": "Supplier city",
            "type": "string",
            "description": "Only suppliers in this city, in Chinese, with its province: <code>深圳</code> (Shenzhen) with <code>广东</code>, <code>义乌</code> (Yiwu) with <code>浙江</code>."
          },
          "onePerSupplier": {
            "title": "One product per supplier",
            "type": "boolean",
            "description": "Keep one product of each supplier in a search (1688 merges most; the rest are left out here, free).",
            "default": false
          },
          "excludeAds": {
            "title": "Leave out ads",
            "type": "boolean",
            "description": "Leave out the promoted (ad) products of the search list (free, not counted).",
            "default": false
          },
          "excludeKeywords": {
            "title": "Leave out titles with these words",
            "maxItems": 200,
            "type": "array",
            "description": "Leave out a product whose title holds any of these words (any case; Chinese or English); free, not counted.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "feedback": {
            "title": "Feedback to the maintainers",
            "maxLength": 2000,
            "type": "string",
            "description": "A note to the people who maintain this Actor: what you needed and did not get. For example a missing field, a wrong or empty result, or the Actor you switch from or to, and why. The run does not read it: the rows and the charges stay the same. A person reads every note."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}