{
  "openapi": "3.0.1",
  "info": {
    "title": "1688 Scraper — Wholesale Offers, Prices & Suppliers",
    "description": "1688.com scraper (阿里巴巴1688): export wholesale offers with price tiers, MOQ, units sold, supplier company, province and city, 诚信通 years and service scores. Search by keyword, paste 1688 search URLs, list a supplier's whole catalogue or read offer pages with SKUs and attributes. No login.",
    "version": "1.0",
    "x-build-id": "7zdOLhNjqkFELYgkY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~1688-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-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/logiover~1688-scraper/runs": {
      "post": {
        "operationId": "runs-sync-logiover-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/logiover~1688-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-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": "Search keywords",
            "type": "array",
            "description": "What to search on 1688, one keyword per line. Chinese works best (手机壳, 保温杯, 连衣裙, 数据线, 收纳盒); English and model numbers work too. Each keyword is its own 1688 search.",
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "1688 search URLs",
            "type": "array",
            "description": "Search result pages copied from your browser, e.g. https://s.1688.com/selloffer/offer_search.htm?keywords=%CA%D6%BB%FA — GBK and UTF-8 encoded links are both read, and the link's own sort and filters are kept.",
            "items": {
              "type": "string"
            }
          },
          "suppliers": {
            "title": "Supplier shops (whole catalogue)",
            "type": "array",
            "description": "Supplier shop links (https://<shop>.1688.com) or 1688 member IDs (b2b-…). Every offer the supplier lists is collected; sort and price filters below apply.",
            "items": {
              "type": "string"
            }
          },
          "offerUrls": {
            "title": "Offer URLs or IDs",
            "type": "array",
            "description": "Single offers: https://detail.1688.com/offer/<id>.html links or bare offer IDs. Each one is read from its offer page (attributes, SKUs, stock, price tiers, ship-from, reviews, supplier).",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max offers",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Total offers to save across all searches, suppliers and offer links (0 = no limit). Several searches share it fairly.",
            "default": 1000
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc",
              "sales"
            ],
            "type": "string",
            "description": "1688's own sort order for keyword and supplier searches.",
            "default": "relevance"
          },
          "minPrice": {
            "title": "Min price (CNY)",
            "minimum": 0,
            "type": "number",
            "description": "Lowest price in Chinese yuan (¥). Leave empty for no lower limit."
          },
          "maxPrice": {
            "title": "Max price (CNY)",
            "minimum": 0,
            "type": "number",
            "description": "Highest price in Chinese yuan (¥). Leave empty for no upper limit."
          },
          "province": {
            "title": "Supplier province",
            "type": "string",
            "description": "Only suppliers located in this province — Chinese name, e.g. 广东, 浙江, 福建, 江苏, 山东."
          },
          "city": {
            "title": "Supplier city",
            "type": "string",
            "description": "Only suppliers in this city — Chinese name, e.g. 东莞, 义乌, 金华, 广州. Use it together with the province."
          },
          "includeDetails": {
            "title": "Read every offer page (details)",
            "type": "boolean",
            "description": "Adds attributes (品牌, 材质, 型号 …), every SKU with its own price and stock, total stock, exact units sold, 30-day orders, review count and rating, ship-from city, courier, ship-within hours, buyer protections, weight, video and 实力商家 / 诚信通 flags. Slower: one more page per offer.",
            "default": false
          },
          "splitLargeSearches": {
            "title": "Go past 1688's ~2,000-offer window",
            "type": "boolean",
            "description": "1688 shows at most ~2,040 offers for any one search. When Max offers asks for more, a search is split into price bands, each read as its own search, and duplicates are removed by offer ID.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Search pages read at the same time, each through its own Chinese residential address. The default is measured to be fast without tripping 1688's slider wall.",
            "default": 6
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "1688's search answers Chinese residential addresses only, so searches always go through Apify's residential proxy in China (no setup needed). The setting here is used for offer pages first. Your own proxy URLs, if set, are used for everything.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}