{
  "openapi": "3.0.1",
  "info": {
    "title": "1688.com Wholesale Scraper - Prices, MOQ, Suppliers & SKUs",
    "description": "Scrape 1688.com wholesale offers by keyword, offer id or URL: quantity price tiers, MOQ, supplier and trade-service scores, factory inspection, SKU matrix with stock, specs, shipping, rating, dropship stats and English titles. Monitor new offers and price changes. No login.",
    "version": "0.1",
    "x-build-id": "cuz0csAh7Zgf0gbGJ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/topapi~alibaba-1688-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-topapi-alibaba-1688-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/topapi~alibaba-1688-scraper/runs": {
      "post": {
        "operationId": "runs-sync-topapi-alibaba-1688-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/topapi~alibaba-1688-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-topapi-alibaba-1688-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",
            "type": "array",
            "description": "Search terms in Chinese or English, e.g. \"手机壳\", \"wireless earbuds\", \"led strip\". Chinese terms match far more offers: 1688 titles are Chinese.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔗 Offer or search URLs",
            "type": "array",
            "description": "detail.1688.com/offer/<id>.html or m.1688.com/offer/<id>.html (read from the offer page) or an s.1688.com search URL (its keyword, price and province are kept).",
            "items": {
              "type": "string"
            }
          },
          "offerIds": {
            "title": "🆔 Offer ids",
            "type": "array",
            "description": "Numeric 1688 offer ids, e.g. \"735353578254\". Each one is read from its offer page (charged as a product with details).",
            "items": {
              "type": "string"
            }
          },
          "searchArray": {
            "title": "🧩 Searches with their own filters (advanced)",
            "type": "array",
            "description": "Independent searches: [{\"keyword\":\"手机壳\",\"sortBy\":\"bestSelling\",\"priceMax\":10,\"province\":\"广东\",\"maxResults\":300}]. Keys: keyword, sortBy, marketplace, priceMin, priceMax, province, city, supplierType, onePerSupplier, maxResults."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "bestSelling",
              "priceAsc",
              "priceDesc"
            ],
            "type": "string",
            "description": "The order 1688 returns offers in. Best selling also drops sponsored offers.",
            "default": "relevance"
          },
          "marketplace": {
            "title": "Market",
            "enum": [
              "pcmarket",
              "pcindustry"
            ],
            "type": "string",
            "description": "Which 1688 market to search. Industrial products returns factory/industrial suppliers for the same keyword.",
            "default": "pcmarket"
          },
          "priceMin": {
            "title": "Min price (CNY)",
            "minimum": 0,
            "type": "number",
            "description": "Lowest unit price in Chinese yuan, e.g. 5."
          },
          "priceMax": {
            "title": "Max price (CNY)",
            "minimum": 0,
            "type": "number",
            "description": "Highest unit price in Chinese yuan, e.g. 50."
          },
          "province": {
            "title": "Supplier province",
            "enum": [
              "",
              "广东",
              "浙江",
              "福建",
              "江苏",
              "山东",
              "上海",
              "河北",
              "河南",
              "安徽",
              "湖北",
              "湖南",
              "江西",
              "北京",
              "天津",
              "重庆",
              "四川",
              "辽宁",
              "广西",
              "云南",
              "贵州",
              "陕西",
              "山西",
              "吉林",
              "黑龙江",
              "内蒙古",
              "海南",
              "甘肃",
              "新疆",
              "宁夏",
              "青海",
              "西藏"
            ],
            "type": "string",
            "description": "Only suppliers located in this province, e.g. Guangdong for Shenzhen/Guangzhou electronics, Zhejiang for Yiwu small goods.",
            "default": ""
          },
          "city": {
            "title": "Supplier city",
            "type": "string",
            "description": "Chinese city name, e.g. \"深圳\", \"义乌\", \"东莞\"; common English names (Shenzhen, Yiwu, Dongguan, Guangzhou) are converted. Pair it with the province."
          },
          "supplierType": {
            "title": "Supplier type",
            "enum": [
              "any",
              "manufacturer",
              "wholesaler"
            ],
            "type": "string",
            "description": "The supplier's business model as 1688 records it. 1688's own filter only favours the type, so every row is re-checked: only offers whose supplier shows the chosen type are delivered and charged; offers with another or no business type are left out.",
            "default": "any"
          },
          "onePerSupplier": {
            "title": "One offer per supplier",
            "type": "boolean",
            "description": "At most one offer per supplier in each keyword's results. 1688's own option only favours different suppliers (56 suppliers in 60 rows measured), so every row is re-checked: a supplier's further offers are left out uncharged.",
            "default": false
          },
          "merchantType": {
            "title": "Merchant type",
            "enum": [
              "any",
              "superFactory",
              "inspectedFactory",
              "verifiedMerchant"
            ],
            "type": "string",
            "description": "Keep only offers whose supplier carries this 1688 verification badge.",
            "default": "any"
          },
          "maxMoq": {
            "title": "Max MOQ",
            "minimum": 1,
            "type": "integer",
            "description": "Keep offers whose MOQ is at most this, e.g. 10. Without details, search rows that print no MOQ are kept. With details on, the MOQ comes from the offer page; an offer whose MOQ stays unknown (page not readable) is left out, not charged."
          },
          "minSupplierYears": {
            "title": "Min years on 1688",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "Keep suppliers with at least this many years of 1688 membership, e.g. 3."
          },
          "categoryId": {
            "title": "Category id",
            "type": "string",
            "description": "Keep offers in this 1688 category (leaf, parent or top level), e.g. \"1046694\" (iPhone cases). Comma-separate several."
          },
          "excludeAds": {
            "title": "Exclude sponsored offers",
            "type": "boolean",
            "description": "Drop offers marked as paid placements (P4P / bid) in relevance order.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude words",
            "type": "array",
            "description": "Drop offers whose title or supplier name contains any of these, e.g. \"二手\", \"定制\".",
            "items": {
              "type": "string"
            }
          },
          "fastShippingOnly": {
            "title": "Ships within 48 hours",
            "type": "boolean",
            "description": "Keep offers whose page promises dispatch within 48 hours. Reads the offer page (turns on details).",
            "default": false
          },
          "certifications": {
            "title": "Certifications",
            "type": "array",
            "description": "Keep offers whose page lists a certificate containing one of these words, e.g. \"3C\", \"CCC\". 1688 lists certificates for regulated categories. Reads the offer page (turns on details).",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Offer details",
            "type": "boolean",
            "description": "Read each offer page: images, video, specs, SKU matrix with stock, total sold, shipping, buyer protection, rating summary, shop stats. Charged as product details per row that gets them.",
            "default": false
          },
          "includeSkuDetails": {
            "title": "SKU matrix",
            "type": "boolean",
            "description": "With details on: every variant with its attributes, stock, sales and image. Included in the details price.",
            "default": true
          },
          "includeDescription": {
            "title": "Description text and images",
            "type": "boolean",
            "description": "With details on: the seller's description text and image list. Included in the details price.",
            "default": false
          },
          "includeDescriptionHtml": {
            "title": "Description HTML",
            "type": "boolean",
            "description": "With details on: also the raw description HTML.",
            "default": false
          },
          "includeSupplierIntelligence": {
            "title": "Supplier intelligence",
            "type": "boolean",
            "description": "Dropship stats (30/7-day dropship orders, distributors, 24/48 h dispatch, quality and retention rates), sell points, certificates, per-SKU pack sizes, badges, dropship score. Turns on details.",
            "default": false
          },
          "translateTitles": {
            "title": "English titles",
            "type": "boolean",
            "description": "Add titleEn (and specsEn with details) translated from Chinese.",
            "default": true
          },
          "targetMarket": {
            "title": "Landed cost market",
            "enum": [
              "none",
              "US",
              "EU",
              "UK",
              "AU",
              "global"
            ],
            "type": "string",
            "description": "With supplier intelligence: estLandedCostUsd = unit price x usdPerCny + unit weight x shipping rate per kg (US 9, EU/UK/AU 10, elsewhere 11 USD by default).",
            "default": "none"
          },
          "usdPerCny": {
            "title": "USD per CNY",
            "minimum": 0.01,
            "maximum": 1,
            "type": "number",
            "description": "Exchange rate used for estLandedCostUsd. Default 0.14."
          },
          "shippingUsdPerKg": {
            "title": "Shipping USD per kg",
            "minimum": 0,
            "maximum": 200,
            "type": "number",
            "description": "Override the shipping rate per kg used for estLandedCostUsd."
          },
          "monitorMode": {
            "title": "Monitor mode",
            "type": "boolean",
            "description": "Keywords: deliver only offers not delivered by earlier runs. Offer ids: deliver only offers whose price or stock changed, with previousPrice and priceChangePct.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Named key-value store that remembers delivered offers. Use one name per watchlist. Default \"alibaba-1688-monitor\"."
          },
          "alertOnPriceDropPct": {
            "title": "Alert on price drop (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Monitor mode, offer ids: flag rows whose price fell by at least this percent (alerts: [\"priceDrop\"])."
          },
          "alertOnStockDropPct": {
            "title": "Alert on stock drop (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Monitor mode, offer ids: flag rows whose stock fell by at least this percent (alerts: [\"stockDrop\"])."
          },
          "webhookUrl": {
            "title": "Alert webhook URL",
            "type": "string",
            "description": "POST the run's alerts as JSON to this URL when the run ends (only when there are alerts)."
          },
          "maxResults": {
            "title": "Max results per keyword",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Offers per keyword. 1688 showed signed-out visitors 300-400 per sort order in the measured runs; the actor then adds more sort orders and price bands (one search reached 6,208 unique offers for \"手机壳\").",
            "default": 100
          },
          "maxItems": {
            "title": "Max results in total",
            "minimum": 1,
            "type": "integer",
            "description": "Stop the whole run after this many offers. Empty = no total cap."
          },
          "compact": {
            "title": "Compact output",
            "type": "boolean",
            "description": "Core fields only (title, price ladder, MOQ, supplier essentials), sized for AI agents and MCP. With offer details or supplier intelligence on, the fields those add-ons charge for are kept in full.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy for search",
            "type": "object",
            "description": "Search and side-service calls. Default: the first 20 search calls of a run use Apify's own connection, then Apify datacenter proxy sessions of 10 calls each (side services always on datacenter sessions)."
          },
          "detailProxyConfiguration": {
            "title": "Proxy for offer pages",
            "type": "object",
            "description": "Offer pages. Default: Apify residential (China), one fresh IP per offer page."
          },
          "maxConcurrency": {
            "title": "Offer pages in parallel",
            "minimum": 1,
            "maximum": 32,
            "type": "integer",
            "description": "How many offer pages are read at once (each on its own residential IP).",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}