# 1688 Wholesale Supplier Scraper (`om_kh/1688-wholesale-supplier-scraper`) Actor

1688 products with real MOQ price tiers and a factory-or-trader verdict on the supplier — each call backed by the source URL. Per-item error handling.

- **URL**: https://apify.com/om\_kh/1688-wholesale-supplier-scraper.md
- **Developed by:** [omar khandji](https://apify.com/om_kh) (community)
- **Categories:** E-commerce, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.30 / 1,000 product results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 1688 Wholesale Supplier Scraper — Factory-or-Trader Verdict

> **You paste a 1688 product URL. You get real MOQ price tiers and**
> **whether the seller is a factory or a trader** — the fact that decides a
> purchase, backed by evidence, never guessed.

### ✅ Live-verified 2026-09-10

Field names confirmed with a real paid test call (keyword search
`"phone case"`, cost $0.005): `offerId`, `title`, `detailUrl`,
`price{min,max,currency}`, `quantityPrices[]`
(`{quantityMin, quantityMax, price}` — the real MOQ tiers),
`minOrderQuantity`, and `supplier{companyName, shopUrl, tpYear, bizType,
isFactoryInspected, isSuperFactory}`. The live call corrected the guessed
names (`quantityMin` not `beginAmount`, `companyName` not `name`) and gave
a better evidence basis for the factory-or-trader verdict than the
keyword heuristic first planned.

**Still pending:** this was a single schema check, not the 200-run
reliability recipe required by `NORME_VIGIA.md` §5 / addendum A1. Do not
publish before that recipe is run and its failure rate recorded.

### The angle

Buyers on this niche don't ask for more fields — they ask for MOQ price
tiers and a factory-or-trader verdict. `supplier.type` is only ever set
when `type_basis` names real observed evidence; otherwise both stay
`"unknown"`.

### 5 advantages

1. **One bad URL never kills your batch.**
2. **Never billed on a failed lookup.**
3. **Real MOQ price tiers**, not a single blended price.
4. **Factory-or-trader verdict with its evidence** — never a guess.
5. **Hard cost cap you control.** Set `maxTotalChargeUsd`.

### Pricing

Pay per event, base FREE-tier prices: **$0.012** per product delivered, **$0.002** per verified supplier, **$0.0008** per MOQ price tier.
Paid Store plans pay less on every event — the largest plans reach $0.00044 on the cheapest event; the Pricing tab on this Actor's Store page is
always the authority. **No event is ever charged on an item that returns an `error`** —
a batch of 200 with one bad input bills 199.

### Use it from an AI agent (MCP)

```
https://om-kh--1688-wholesale-supplier-scraper.apify.actor/mcp
```

### Related Actors

- [Shopee Product Detail Scraper](https://apify.com/om_kh/shopee-product-detail-scraper) — verified detail for resale, not sourcing

### Support

Found a bug or have a feature request? Use the **Issues** tab on this
Actor's Apify Store page, or message the author (`om_kh`) directly.

# Actor input Schema

## `productUrls` (type: `array`):

1688 product URLs to fetch.

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

Product or supplier keywords, if you don't have exact URLs.

## `supplierUrls` (type: `array`):

1688 supplier/shop URLs, if you have them.

## `includePriceTiers` (type: `boolean`):

Include minimum-order-quantity price tiers.

## `includeSupplierType` (type: `boolean`):

Include a factory-or-trader verdict with its evidence basis. Never guessed — 'unknown' when there is no basis.

## `monitorEnabled` (type: `boolean`):

On later runs with the same Monitor ID, deliver only products not seen before.

## `monitorId` (type: `string`):

Groups runs into one monitored target. Leave blank for a one-off run.

## `maxTotalChargeUsd` (type: `number`):

Hard ceiling on what this run can bill you.

## Actor input object example

```json
{
  "includePriceTiers": true,
  "includeSupplierType": true,
  "monitorEnabled": false,
  "maxTotalChargeUsd": 1
}
```

# Actor output Schema

## `report` (type: `string`):

A visual summary of delivery, charges, and source issues.

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

Products in a sortable table. No JSON knowledge required.

## `csv` (type: `string`):

Results ready for spreadsheets, CRMs, and analytics tools.

## `excel` (type: `string`):

Results as an Excel workbook for non-technical teams.

## `runSummary` (type: `string`):

Machine-readable delivery, billing, and source diagnostics.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("om_kh/1688-wholesale-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 = {}

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

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

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

```

## CLI example

```bash
echo '{}' |
apify call om_kh/1688-wholesale-supplier-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,om_kh/1688-wholesale-supplier-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/a1ojNapd2pgZazlNr/builds/0T9F2WYX1zrm4c6zU/openapi.json
