1688 Supplier Price & MOQ Monitor avatar

1688 Supplier Price & MOQ Monitor

Pricing

from $5.10 / 1,000 1688 product checkeds

Go to Apify Store
1688 Supplier Price & MOQ Monitor

1688 Supplier Price & MOQ Monitor

Monitor public 1688 wholesale offers for price tiers, MOQ, stock, supplier and promotion changes.

Pricing

from $5.10 / 1,000 1688 product checkeds

Rating

0.0

(0)

Developer

Tim Zinin

Tim Zinin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Monitor a fixed list of public 1688 wholesale offers and receive one structured row per successful check. Track price tiers, minimum order quantity, public stock, supplier identity, badges and promotions without a 1688 login.

This Actor is built for scheduled procurement monitoring, sourcing teams and agents that need stable JSON instead of repeatedly reading product pages. It does not search 1688: you submit the exact offer URLs you are permitted to monitor.

What it monitors

  • wholesale price range and quantity-price tiers;
  • MOQ, public bookable stock and unit;
  • offer title and stable offer ID;
  • supplier ID, company name and login ID;
  • public supplier badges and promotion labels;
  • deterministic field-level changes against the previous successful run of the same watchName.

The first successful check creates a baseline. Later checks return changed or no_change. A blocked, malformed or partial page is unknown state: it produces an honest free error row and never erases or advances the previous baseline.

Quick start

{
"productUrls": [
"https://detail.1688.com/offer/1000406623486.html"
],
"watchName": "main-supplier-watch",
"maxChanges": 20,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "CN"
}
}

Run this input once to create a baseline, then add an Apify Schedule using the same watchName. Use a different watch name for a logically independent procurement list. If an owner-token portal calls the Actor for multiple customers, the portal must prefix watchName with its authenticated tenant ID; never accept a tenant namespace from an unauthenticated request.

Input

FieldRequiredDescription
productUrlsyes1–50 public URLs in the exact https://detail.1688.com/offer/<id>.html form. Query and fragment are stripped.
watchNameyesStable baseline scope, 1–80 characters. Keep it unchanged across scheduled runs.
maxChangesnoStop checking new targets after this many changed rows, 1–50; default 20.
proxyConfigurationnoResidential CN is the tested default. Custom proxy URLs are allowed; direct fallback is not.

Only HTTPS detail.1688.com product URLs are accepted as input. After strict ID normalization, the Actor fetches the matching robots-allowed public https://m.1688.com/offer/<id>.html document as its evidence page. Credentials, custom ports, arbitrary hosts and non-offer paths are rejected before network access. Redirects to login, challenge or any other URL are refused. Up to three bounded fresh proxy sessions may be tried when public HTML is incomplete; an attempt succeeds only after the offer is semantically parsed. This does not solve or bypass challenges.

Output

Each successfully parsed product creates exactly one paid Dataset row. The important fields are:

{
"watchName": "main-supplier-watch",
"source": "1688",
"targetId": "1000406623486",
"targetUrl": "https://detail.1688.com/offer/1000406623486.html",
"evidenceUrl": "https://m.1688.com/offer/1000406623486.html",
"found": true,
"changeType": "changed",
"changedFields": ["priceMin", "priceTiers", "promotions"],
"previous": {"offerId": "1000406623486", "priceMin": 4.8},
"current": {
"offerId": "1000406623486",
"title": "Example wholesale offer",
"priceMin": 4.5,
"priceMax": 5.2,
"currency": "CNY",
"priceTiers": [{"beginAmount": 10, "price": 5.2}, {"beginAmount": 100, "price": 4.5}],
"moq": 10,
"stock": 8000,
"unit": "件",
"supplier": {"id": "b2b-example", "name": "Example Supplier", "loginId": "example"},
"badges": [],
"promotions": []
},
"partial": false,
"partialReason": "",
"error": "",
"checkedAt": "2026-08-06T05:00:00.000Z",
"isDemo": false
}

baseline_created, changed and no_change are all successful checks: they incur the same retrieval cost and each is one paid row. Error rows have partial: true, preserve the previous snapshot and are free. The OUTPUT key-value record contains terminal status, counters and the baseline-store name.

Pricing

Pay per event: $0.005 per run start + $0.006 per successfully delivered product check on the FREE tier. Errors and partial rows are free. Account-tier discounts follow the standard six-step ladder:

TierStartProduct checkDiscount
FREE$0.00500$0.006000%
BRONZE$0.00475$0.005705%
SILVER$0.00450$0.0054010%
GOLD$0.00425$0.0051015%
PLATINUM$0.00410$0.0049218%
DIAMOND$0.00400$0.0048020%

The Dataset delivery and the item-checked charge use one SDK call. If pricing or the remaining charge budget cannot be verified, paid work fails closed.

API and automation

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('zinin/china-1688-supplier-monitor').call({
productUrls: ['https://detail.1688.com/offer/1000406623486.html'],
watchName: 'main-supplier-watch'
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('zinin/china-1688-supplier-monitor').call(run_input={
'productUrls': ['https://detail.1688.com/offer/1000406623486.html'],
'watchName': 'main-supplier-watch',
})
print(client.dataset(run['defaultDatasetId']).list_items().items)

CLI / REST

$apify call zinin/china-1688-supplier-monitor -p '{"productUrls":["https://detail.1688.com/offer/1000406623486.html"],"watchName":"main-supplier-watch"}'

Apify Schedules can run either included Task input on an hourly or daily cadence. Use a webhook on ACTOR.RUN.SUCCEEDED and read the Dataset changes view in your n8n, Make, Slack or procurement pipeline.

中文说明

此 Actor 用于监控固定的 1688 公开商品链接。它会提取批发价格区间、阶梯价、 最小起订量(MOQ)、公开库存、供应商信息、认证标签和促销信息,并与同一个 watchName 的上一次成功结果进行比较。

第一次成功运行会建立基线;之后结果为 changedno_change。如果页面被 风控拦截、需要登录、内容不完整或解析失败,Actor 会返回免费的错误记录,且 不会覆盖旧基线。默认使用 Apify Residential Proxy 的中国出口节点。不使用登录、 Cookie、验证码绕过或私有接口。输入仍使用 detail.1688.com 商品链接;Actor 在严格 校验商品 ID 后读取 robots 允许的 m.1688.com/offer/<数字>.html 公开移动页面作为证据。

建议先手动运行一次并检查 Dataset,然后创建 Apify Schedule。定时任务必须保持 相同的 watchName。本工具不提供关键词搜索,只接受格式为 https://detail.1688.com/offer/<数字>.html 的公开商品链接。

Limitations and responsible use

  • Public page structure can change. Failed parsing is reported as unknown state, not as a product disappearance.
  • Prices are CNY values published in the fetched offer state. Tax, shipping, negotiation, login-only discounts and final checkout terms are outside scope.
  • Public stock may be absent or approximate; null means the page did not publish a reliable value.
  • The Actor intentionally does not search 1688, sign in, solve challenges, fetch private APIs or follow redirects.
  • You are responsible for lawful use and for respecting 1688 terms and applicable data rules. Keep schedules proportionate to your procurement need.

Built by zinin. Questions: Telegram @timzinin.