The problem
If you source from 1688, supplier terms move constantly: prices drift, minimum order quantities change, stock disappears, and tiered pricing gets quietly restructured. Catching those changes means comparing two exports — last month's and this month's — line by line, offer by offer, in a spreadsheet. With a real supplier list, that manual diff is slow, error-prone, and impossible to audit later.
The paid alternatives are not much better for this specific job. A SaaS "1688 API" wants recurring fees and often your supplier URLs or platform credentials, and it still hands you raw data rather than a reviewed change list. What a sourcing or procurement team actually needs is a deterministic diff of the offer data it already lawfully possesses, with evidence attached to every detected change.
What the actor does
The 1688 Supplier Price & MOQ Monitor is a comparison engine for buyer-owned, merchant-authorized, or licensed 1688 offer exports. One boundary up front: it does not scrape 1688. It makes zero source network requests — no login, no proxy, no API call, no offer-URL fetching. It processes only the JSON records supplied in the run input, and the README is explicit that it never verifies suppliers, prices, stock, or purchasing suitability.
What it does do, deterministically:
- Normalizes text, currency, price tiers, string lists, and timestamps in closed
previousandcurrentsnapshots, then diffs the top-level fields. - Detects changes in price range, MOQ, stock, pricing tiers, unit, supplier fields, badges, and promotions.
- Emits one reviewable comparison row per unique
offerIdwith achangeTypeofbaseline_created,changed,no_change, or a diagnostic status — never an invented change. - Attaches a stable
1688-offer:<offerId>identity plus SHA-256 record and request digests for tamper comparison and downstream joins. - Computes freshness from your supplied retrieval time, an evidence-completeness confidence score with explicit data gaps, a review priority, and a recommended human action such as
REVIEW_OFFER_CHANGE. - Always sets
safeToAutomate:falseand writes an authoritative settlement receipt to the key-value storeOUTPUT, reconciling delivered, paid, free, and withheld counts for the exact run.
Legacy URL-based productUrls input still parses, but only produces one free migration diagnostic; those URLs are never fetched.
Example: input and output
Input is a closed JSON contract. Each offer carries a previous snapshot (null on the first comparison, which yields baseline_created), a required current snapshot, and provenance fields:
{
"schemaVersion": "2.0",
"authorization": "I confirm I am authorized to process and deliver these 1688 offer records",
"sourceContext": "buyer_owned_1688_export",
"watchName": "usb-c-supplier-review",
"maxChanges": 20,
"offers": [
{
"offerId": "1000406623486",
"previous": { "offerId": "1000406623486", "title": "USB-C cable wholesale pack", "priceMin": 3.8, "priceMax": 4.6, "currency": "CNY", "moq": 100, "stock": 12000, "unit": "piece" },
"current": { "offerId": "1000406623486", "title": "USB-C cable wholesale pack", "priceMin": 3.6, "priceMax": 4.4, "currency": "CNY", "moq": 100, "stock": 15000, "unit": "piece" },
"sourceName": "Buyer-owned 1688 export",
"sourceLicense": "Buyer confirms authorization to process and deliver this export.",
"sourceRetrievedAt": "2026-08-13T00:00:00Z"
}
]
}
For that input, the README's checked-in fixture delivers a dataset row whose core decision fields look like this (trimmed):
{
"recordType": "china_1688_supplier_monitor",
"entityId": "1688-offer:1000406623486",
"changeType": "changed",
"changedFields": ["priceMax", "priceMin", "priceTiers", "promotions", "stock"],
"recommendedAction": "REVIEW_OFFER_CHANGE",
"safeToAutomate": false
}
The run-level KVS OUTPUT receipt then reconciles the exact run: one requested, one unique, one delivered, one paid, zero failed, networkRequestsMade: 0, platformLoginUsed: false.
Pricing and the free limit
The actor is pay-per-event: $0.005 per actor start plus $0.006 per delivered comparison row (the item-checked event), with lower per-event prices on paid Apify plans. At those list prices, a 100-offer comparison run costs $0.005 + 100 × $0.006 = $0.605. Apify's free plan includes $5 of usage credits per month, which covers about 8 full 100-offer runs — roughly 830 individual comparison rows — before you pay anything. Free diagnostics (legacy migration, invalid records, duplicates) are not billed as results.
Try it
Run a one-record comparison first, verify the dataset row and the KVS OUTPUT receipt, then scale the batch: 1688 Supplier Price & MOQ Monitor.
For AI agents and MCP
The actor takes JSON in and returns structured JSON via the Apify API, so an agent can call it directly with apify-client or the REST API. The README ships an MCP server setup (https://mcp.apify.com with this actor's tool) and an "MCP or agent workflow" recipe: an agent may submit records already present in its authorized workspace, but it must not invent authorization, browse 1688, or decide a purchase — every row carries safeToAutomate:false, explicit gaps, and a human-review route by design.
Top comments (0)