1688 Wholesale Product Scraper
Pricing
from $2.99 / 1,000 wholesale products
Go to Apify Store
1688 Wholesale Product Scraper
Extract public 1688.com wholesale products with tier pricing, MOQ, supplier details, SKU attributes, and images.
1688 Wholesale Product Scraper
Pricing
from $2.99 / 1,000 wholesale products
Extract public 1688.com wholesale products with tier pricing, MOQ, supplier details, SKU attributes, and images.
You can access the 1688 Wholesale Product Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.2", "x-build-id": "tSOMvevoKLCkcZJOe" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/w3crawler~alibaba-1688-wholesale-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-w3crawler-alibaba-1688-wholesale-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/w3crawler~alibaba-1688-wholesale-scraper/runs": { "post": { "operationId": "runs-sync-w3crawler-alibaba-1688-wholesale-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/w3crawler~alibaba-1688-wholesale-scraper/run-sync": { "post": { "operationId": "run-sync-w3crawler-alibaba-1688-wholesale-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", "minLength": 1, "maxLength": 200, "type": "string", "description": "Search terms used to construct a public 1688 search URL when Start URLs is empty.", "default": "wireless earbuds" }, "startUrls": { "title": "Start URLs", "maxItems": 20, "type": "array", "description": "Optional public 1688 search or product URLs. When supplied, these URLs take precedence over generated keywords; each URL is paginated independently up to Max Pages.", "items": { "type": "object", "properties": { "url": { "title": "Public 1688 URL", "type": "string", "description": "HTTPS URL on an allowed 1688 search path (/selloffer/) or product path (/offer/)." } }, "required": [ "url" ], "additionalProperties": false } }, "minPrice": { "title": "Minimum Price", "minimum": 0, "maximum": 1000000, "type": "number", "description": "Keep products whose price range reaches this value. Products without a price are excluded when this filter is set." }, "maxPrice": { "title": "Maximum Price", "minimum": 0, "maximum": 1000000, "type": "number", "description": "Keep products whose price range starts at or below this value." }, "minMoq": { "title": "Minimum MOQ", "minimum": 0, "maximum": 10000000, "type": "integer", "description": "Minimum minimum-order quantity. Products without a parsed MOQ are excluded when this filter is set." }, "maxMoq": { "title": "Maximum MOQ", "minimum": 0, "maximum": 10000000, "type": "integer", "description": "Maximum minimum-order quantity." }, "minSalesVolume": { "title": "Minimum Sales Volume", "minimum": 0, "maximum": 1000000000, "type": "integer", "description": "Minimum parsed sales or transaction count." }, "minRating": { "title": "Minimum Rating", "minimum": 0, "maximum": 5, "type": "number", "description": "Minimum public product rating from 0 to 5." }, "minReviewCount": { "title": "Minimum Review Count", "minimum": 0, "maximum": 100000000, "type": "integer", "description": "Minimum public review count." }, "supplierLocation": { "title": "Supplier Location", "maxLength": 120, "type": "string", "description": "Case-insensitive text matched against the parsed supplier location." }, "requiredBadges": { "title": "Required Supplier Badges", "maxItems": 10, "type": "array", "description": "Keep products whose parsed badge list contains every requested badge, such as 诚信通 or Verified.", "items": { "type": "string", "minLength": 1, "maxLength": 60 } }, "sortBy": { "title": "Sort Results", "enum": [ "relevance", "price_asc", "price_desc", "sales_desc", "rating_desc", "reviews_desc", "supplier_years_desc" ], "type": "string", "description": "Sorting is applied globally across all fetched pages before Max Items is selected.", "default": "relevance" }, "maxItems": { "title": "Max Items", "minimum": 1, "maximum": 500, "type": "integer", "description": "Maximum unique product rows emitted across all start URLs and pages.", "default": 50 }, "maxPages": { "title": "Max Pages Per Start URL", "minimum": 0, "maximum": 100, "type": "integer", "description": "Maximum search pages per start URL. Use 0 to continue until no new products are found, with a hard safety cap of 100 pages. Product URLs are fetched once.", "default": 3 }, "deduplicate": { "title": "Deduplicate Results", "type": "boolean", "description": "Remove repeated product IDs or URLs across pages and multiple start URLs.", "default": true }, "includeDiagnostics": { "title": "Include Diagnostic Rows", "type": "boolean", "description": "Emit a rich fail-closed diagnostic row when a page is blocked, unavailable, empty, or fails after bounded retries.", "default": true }, "includeImages": { "title": "Include Product Images", "type": "boolean", "description": "Include validated product image URLs, thumbnail, and imageCount fields.", "default": true }, "includeAttributes": { "title": "Include Product Attributes", "type": "boolean", "description": "Include normalized SKU/specification attributes when public structured data or DOM tables expose them.", "default": true }, "requestDelayMs": { "title": "Request Delay (ms)", "minimum": 0, "maximum": 15000, "type": "integer", "description": "Developer option: delay before each public page request. A respectful non-zero value is recommended for live runs.", "default": 1000 }, "maxConcurrency": { "title": "Max Concurrency", "minimum": 1, "maximum": 5, "type": "integer", "description": "Developer option: maximum number of independent start-URL/page requests in flight. Higher values can increase blocking risk.", "default": 2 }, "maxRequestRetries": { "title": "Max Request Retries", "minimum": 0, "maximum": 10, "type": "integer", "description": "Developer option: bounded retries for timeouts, transient network failures, and retryable HTTP responses. Login, CAPTCHA, and access barriers are never bypassed or retried.", "default": 3 }, "requestTimeoutSecs": { "title": "Request Timeout (sec)", "minimum": 1, "maximum": 120, "type": "integer", "description": "Developer option: timeout for each public HTTP request.", "default": 30 }, "timeoutMs": { "title": "Legacy Request Timeout (ms)", "minimum": 1000, "maximum": 120000, "type": "integer", "description": "Legacy compatibility alias. requestTimeoutSecs takes precedence when both are supplied." }, "proxyConfiguration": { "title": "Proxy Configuration", "type": "object", "description": "Optional standard Apify Proxy configuration. Direct public access is the default; a proxy only changes transport routing and never bypasses authentication, CAPTCHA, or access controls.", "properties": { "useApifyProxy": { "title": "Use Apify Proxy", "description": "Route public requests through Apify Proxy.", "type": "boolean" }, "apifyProxyGroups": { "title": "Apify Proxy Groups", "description": "Optional Apify Proxy groups.", "type": "array", "items": { "type": "string" } }, "apifyProxyCountry": { "title": "Apify Proxy Country", "description": "Optional two- or three-letter country code.", "type": "string", "pattern": "^[A-Za-z]{2,3}$" }, "proxyUrls": { "title": "Custom Proxy URLs", "description": "Optional custom HTTP(S) proxy URLs.", "type": "array", "items": { "type": "string" } } }, "default": { "useApifyProxy": false }, "additionalProperties": false }, "fixtureFile": { "title": "Local HTML Fixture", "pattern": "^(?!.*(?:^|[/\\\\])\\.\\.(?:[/\\\\]|$))(?![/\\\\])[^:]+\\.(?:html?|xhtml)$", "type": "string", "description": "Optional Actor-relative HTML fixture for deterministic parser and schema QA. Omit this in production to request public 1688 pages." } } }, "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 } } }, "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for 1688 Wholesale Product Scraper from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: