# 1688 Supplier Scraper (`maximedupre/1688-com-supplier-scraper`) Actor

Search public 1688 factory results with English or Chinese keywords. Export supplier profiles with company links, manufacturing evidence, marketplace signals, and representative offers.

- **URL**: https://apify.com/maximedupre/1688-com-supplier-scraper.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** E-commerce, Lead generation, Business
- **Stats:** 3 total users, 1 monthly users, 76.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.45 / 1,000 supplier profiles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### 🏭 Build a source-backed 1688 supplier shortlist

Sourcing teams, importers, and procurement researchers can search public 1688 supplier and factory results with English or Chinese keywords and export structured supplier profiles. Compare company identity, location, marketplace tenure and labels, manufacturing capabilities, activity signals, and representative offers while keeping direct 1688 links for review.

- **[1688 supplier scraper](https://apify.com/maximedupre/1688-com-supplier-scraper/examples/1688-supplier-scraper)** — turn product keywords into structured supplier profiles.
- **[1688 factory search](https://apify.com/maximedupre/1688-com-supplier-scraper/examples/1688-factory-search)** — find factories shown for an English or Chinese sourcing term.
- **[1688 manufacturer lookup](https://apify.com/maximedupre/1688-com-supplier-scraper/examples/1688-manufacturer-lookup)** — review source-visible manufacturing roles, main products, and capabilities.
- **[1688 supplier comparison](https://apify.com/maximedupre/1688-com-supplier-scraper/examples/1688-supplier-comparison)** — compare location, platform tenure, response rates, repeat-buyer rates, and offers.
- **[1688 sourcing research](https://apify.com/maximedupre/1688-com-supplier-scraper/examples/1688-sourcing-research)** — preserve marketplace labels, certifications, inspection evidence, and source links for due diligence.
- **[1688 supplier list export](https://apify.com/maximedupre/1688-com-supplier-scraper/examples/1688-supplier-list-export)** — send supplier profiles to a spreadsheet, database, or internal workflow.
- **[1688 OEM supplier search](https://apify.com/maximedupre/1688-com-supplier-scraper/examples/1688-oem-supplier-search)** — identify profiles that show OEM, ODM, or processing capabilities.

#### 📦 What data is returned?

Each dataset item is one supplier with four required fields:

- `searchMatches`: the submitted keyword and one-based source result position that produced the saved profile
- `supplierId`: source-native supplier identifier
- `supplierName`: company or shop name in the language shown by 1688
- `supplierUrl`: direct public 1688 company page

The Actor also returns fields when the source exposes them:

| Group | Fields |
| --- | --- |
| Company | `location`, `companyAddress`, `businessRole`, `factoryStatus` |
| Marketplace evidence | `platformLevel`, `yearsOnPlatform`, `qualityScore`, `verificationLabels`, `certifications`, `inspectionEvidence` |
| Activity | `responseRatePercent`, `repeatBuyerRatePercent`, `responseBehavior`, `transactionContext`, `recentActivity` |
| Manufacturing | `mainProducts`, `capabilities`, `processingModes` |
| Offers | `offers` with title, URL, image, CNY price range, sales unit, minimum order, quantity pricing, and sourcing context when available |

Offers are representative supplier-comparison evidence, not a complete catalog. Marketplace labels and metrics retain the source's meaning; they are not independent supplier verification or a recommendation to transact.

#### 🚀 Running the Actor

1. Open the Actor in Apify Console.
2. Add one or more focused product, factory, or manufacturer terms under **Supplier search keywords**.
3. Choose the marketplace and any supplier, location, offer-price, MOQ, or ordering criteria you need.
4. Set **Maximum suppliers per keyword** from 1 to 500.
5. Start the run and open **Supplier profiles** in the default dataset.

The maximum is a ceiling, not a guaranteed count. All keywords in one run share the same criteria and per-keyword limit. Use separate runs when searches need different settings.

#### ⚙️ Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `keywords` | String array | Yes | One or more non-empty English or Chinese product, factory, or manufacturer keywords. |
| `maxSuppliersPerQuery` | Integer | No | Maximum profiles accepted per keyword. Defaults to `20`; accepts `1`–`500`. |
| `marketplace` | String | No | Search the consumer-goods or industrial-goods marketplace. |
| `marketplaceProgram` | String | No | Filter for TrustPass or Super Factory membership, or accept any program. |
| `supplierQualification` | String | No | Require a source-visible factory or manufacturer role, or accept any role. |
| `verificationStatus` | String | No | Require source-visible verification or factory-inspection evidence, or accept any status. |
| `locations` | String array | No | Match Chinese provinces, cities, or industrial regions. |
| `minPriceCny` / `maxPriceCny` | Number | No | Apply representative-offer price criteria in CNY. |
| `maxMinimumOrder` | Integer | No | Set the highest acceptable minimum-order quantity shown for a representative offer. |
| `sortBy` | String | No | Use relevance, sales, ascending price, or descending price order. |

```json
{
  "keywords": ["蓝牙耳机", "phone case manufacturer"],
  "maxSuppliersPerQuery": 20,
  "marketplace": "consumer",
  "supplierQualification": "factory",
  "locations": ["广东"],
  "maxPriceCny": 50,
  "sortBy": "sales"
}
```

No buyer-provided 1688 login, cookies, credentials, or external API key are required.

#### 🧾 Output example

```json
{
  "searchMatches": [
    {
      "query": "蓝牙耳机",
      "position": 1
    }
  ],
  "supplierId": "b2b-2200717149444ca6b9",
  "supplierName": "深圳市示例科技有限公司",
  "supplierUrl": "https://example.1688.com",
  "location": "广东, 深圳",
  "businessRole": "Factory / manufacturer",
  "factoryStatus": "Factory",
  "yearsOnPlatform": 8,
  "mainProducts": ["蓝牙耳机"],
  "capabilities": ["OEM", "ODM"],
  "responseRatePercent": 95,
  "offers": [
    {
      "offerId": "123456789",
      "title": "无线蓝牙耳机",
      "url": "https://detail.1688.com/offer/123456789.html",
      "priceCny": {
        "min": 38,
        "max": 42
      }
    }
  ]
}
```

Optional fields are omitted when unavailable. Keep supplier and offer URLs with exports so reviewers can inspect the public source evidence.

#### 💳 Pricing

This Actor uses pay-per-event pricing. You are charged for each successfully saved, visible, source-backed supplier profile. Available company, marketplace, manufacturing, and representative-offer data are bundled with that profile. Empty searches, failed work, retries, internal steps, and work that does not produce a supplier profile are not charged as supplier profiles. Check the pricing panel for the current per-profile price.

#### 🔌 Integrations

Run the Actor in Apify Console or through the Apify API. Schedule repeat runs, trigger workflows with webhooks, or export the default dataset in JSON, CSV, Excel, XML, RSS, or HTML for spreadsheets, databases, and BI tools.

#### ❓ FAQ

##### Why did I receive fewer suppliers than the requested maximum?

The limit is a ceiling. A query may expose fewer public profiles, and a profile is saved only when usable supplier identity and a source link are available. Filters can reduce the count further.

##### How do price and MOQ filters handle missing offer data?

These criteria use representative public offers when 1688 exposes the relevant value. Optional values are omitted rather than inferred, so review the exported offers and source links before making sourcing decisions.

##### What happens when the same supplier appears in multiple searches?

A supplier is emitted at most once per run. Later occurrences of the same source supplier are skipped, so run separate keyword searches when you need a complete result-position trail for each term.

##### Does a verification label mean a supplier is safe?

No. Factory status, marketplace labels, certifications, inspection evidence, and quality or activity metrics are source-visible evidence, not independent due diligence. Review the linked pages and conduct your own checks.

##### Does the Actor translate Chinese text or convert CNY prices?

No. Supplier names and source-visible text may remain in Chinese, and prices remain in CNY. The Actor does not perform automatic translation or exchange-rate conversion.

##### Does it collect complete catalogs, buyer reviews, or hidden contacts?

No. It returns supplier profiles and bounded representative offers, not complete catalogs, SKU inventory, buyer reviews, order histories, or authenticated contact data.

##### How is this different from a 1688 product scraper?

This Actor starts with supplier and factory sourcing criteria and emits one profile per accepted supplier. Choose a product-focused Actor when you need broad product search, full offer details, SKU data, or product reviews.

### 🔗 Related actors

- [1688 Products Wholesale Scraper - 50+ Fields, 250+ Products/Min](https://apify.com/zen-studio/1688-wholesale-scraper) — collect broader product data, tiered pricing, supplier facts, and specifications from 1688.
- [1688 Wholesale Scraper — Tier Pricing · MOQ · Supplier Data](https://apify.com/sian.agency/alibaba-1688-wholesale-scraper) — research 1688 product offers with quantity breaks, MOQ, supplier details, and SKU attributes.
- [1688.com Products Scraper](https://apify.com/devcake/1688-com-products-scraper) — find 1688 products with bulk pricing tiers, specifications, supplier badges, and demand metrics.
- [1688.com Search Scraper](https://apify.com/datacach/1688-search-scraper) — export product search listings with prices, images, sellers, sales, and locations.

### 📝 Changelog

- **0.1** — Initial release with source-backed supplier profiles, manufacturing and marketplace evidence, and representative offers.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~1688-com-supplier-scraper/issues).

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `marketplace` (type: `string`):

Choose the 1688 marketplace to search for supplier profiles.

## `keywords` (type: `array`):

Enter one or more English or Chinese product, factory, or manufacturer keywords. All keywords use the same criteria and supplier limit; use separate runs for differently configured searches.

## `maxSuppliersPerQuery` (type: `integer`):

Collect up to this many supplier profiles for each keyword, or stop earlier when public results are exhausted. A supplier is saved at most once per run.

## `marketplaceProgram` (type: `string`):

Narrow suppliers by a source-visible 1688 membership or factory program. Choose Any program to avoid this filter.

## `supplierQualification` (type: `string`):

Choose Factory or manufacturer to require that source-visible business role, or Any role to avoid this filter.

## `verificationStatus` (type: `string`):

Narrow suppliers by source-visible verification or factory-inspection evidence. These labels are 1688 marketplace evidence, not independent due diligence.

## `locations` (type: `array`):

Enter Chinese provinces, cities, or industrial regions to match, such as Guangdong or 深圳. Leave empty to search all locations.

## `minPriceCny` (type: `number`):

Keep suppliers with a representative public offer at or above this CNY price when 1688 exposes price criteria.

## `maxPriceCny` (type: `number`):

Keep suppliers with a representative public offer at or below this CNY price when 1688 exposes price criteria.

## `maxMinimumOrder` (type: `integer`):

Keep suppliers with a representative public offer whose shown minimum order does not exceed this quantity. The offer's source-native sales unit is preserved in output.

## `sortBy` (type: `string`):

Use 1688's relevance order, prioritize sales, or order by representative-offer price. Ordering signals remain source marketplace evidence.

## Actor input object example

```json
{
  "marketplace": "consumer",
  "keywords": [
    "phone case manufacturer",
    "手机壳厂家"
  ],
  "maxSuppliersPerQuery": 20,
  "marketplaceProgram": "any",
  "supplierQualification": "any",
  "verificationStatus": "any",
  "locations": [
    "广东",
    "深圳"
  ],
  "sortBy": "relevance"
}
```

# Actor output Schema

## `results` (type: `string`):

Open supplier profiles in the default dataset or export them in JSON, CSV, Excel, and other formats supported by Apify.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "marketplace": "consumer",
    "keywords": [
        "手机壳"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/1688-com-supplier-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "marketplace": "consumer",
    "keywords": ["手机壳"],
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/1688-com-supplier-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "marketplace": "consumer",
  "keywords": [
    "手机壳"
  ]
}' |
apify call maximedupre/1688-com-supplier-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=maximedupre/1688-com-supplier-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/JkXUMSDByOs7MMGC3/builds/cPVQDqpFJgvgwBLSW/openapi.json
