1688 Scraper — Product & Supplier Search, MOQ & Landed Cost avatar

1688 Scraper — Product & Supplier Search, MOQ & Landed Cost

Pricing

from $3.50 / 1,000 search result cards

Go to Apify Store
1688 Scraper — Product & Supplier Search, MOQ & Landed Cost

1688 Scraper — Product & Supplier Search, MOQ & Landed Cost

Scrape any 1688 category from one English keyword: English titles, MOQ price ladders, landed cost, dropship scores, compliance hints. Or watch a shortlist of offers for price drops and stock changes — daily snapshots, alerts, weekly trend report. Failed runs are never charged.

Pricing

from $3.50 / 1,000 search result cards

Rating

0.0

(0)

Developer

Kyle Wang

Kyle Wang

Maintained by Community

Actor stats

0

Bookmarked

18

Total users

10

Monthly active users

18 hours ago

Last modified

Share

Research ANY product category on 1688.com — Alibaba's domestic wholesale marketplace — and get sourcing-grade rows, not raw Chinese HTML.

Type one English keyword ("led strip lights", "yoga mat", "phone case"), and get back research-ready products: machine-translated English titles, MOQ price ladders, supplier trust signals, a 0–100 dropship score, an estimated landed cost in USD, and compliance hints for your target market. Every row carries a scrapedAt timestamp so freshness is verifiable.

No Chinese needed. No 1688 account. Failed or zero-result runs cost $0; a successful run bills a $0.01 base fee plus per-event fees. Fail-not-billed.

New — Price Monitoring Mode: paste a shortlist of 1688 offer IDs (watchlistOfferIds), attach a Schedule (e.g. daily), and get a per-offer history curve, day-over-day / 7-day-low change metrics and price-drop / stock-tight alerts — without ever re-searching. See Price Monitoring Mode below.

Keywords: 1688, 1688 scraper, wholesale, dropshipping, product research, supplier search, landed cost, MOQ, China sourcing


🎯 What you can do with it

  • Product selection — scan a category at factory prices before you commit to a supplier
  • Price comparison — sort by price or sales and read the full quantity-break ladder per product
  • Dropshipping evaluation — every product scored 0–100 on dropship-readiness (MOQ, 48h pickup, one-piece dropship support)
  • Margin math — estimated landed cost (product + shipping + duty + fees) and suggested retail with margin % for US / EU / UK
  • Compliance screening — required certs and risk level per target market (FDA / CE / Prop 65 / FCC hints)

📈 Price Monitoring Mode

Already know which 1688 offers you care about? Stop re-searching — watch their prices over time. Fill watchlistOfferIds (up to 200 offer IDs) and the Actor switches from search mode to monitoring mode: each run snapshots every watched offer at card level, appends it to your private history, and returns one snapshotItem row per delivered offer with its curve, change metrics and alert status.

Three steps:

  1. Fill the watchlist — paste the numeric offer IDs (from a product URL, e.g. 994632611553) into watchlistOfferIds. Optionally set alert thresholds (alertOnPriceDropPct, alertOnStockTightPct) and a webhookUrl.
  2. Attach a Schedule — the Actor never self-schedules; bind a Schedule (e.g. 0 8 * * * for 08:00 daily) so history accumulates. One run per day = one point on the curve.
  3. Read the results — each successfully persisted offer produces one atomically billed snapshotItem row with snapshotAt, current{price, moq, bookedCount, supplier}, history{days, min, max, last7dLow}, changes{vsPrevDayPct, vs7dLowPct, stockTightPct}, and alertHit. Set includeTrendReport=true for a trendReport roll-up.

What it costs (monitoring mode):

EventPriceWhen it's charged
snapshot-item$0.015Per offer successfully snapshotted and written to history
trend-report$0.25Once per run when includeTrendReport=true delivers a report
alert$0.00Never billed (price-drop / stock-tight alerts are a free retention hook)
run-base-fee$0.01Once per run that bills at least one event

A daily run watching 10 offers costs 10 × $0.015 + $0.01 = $0.16 (no trend report). If the history store is unreachable, the run marks errorCode: KV_UNAVAILABLE, withholds successful snapshot payloads, and charges $0.00—no result is pushed for free. Truncated IDs (over 200) and invalid IDs are reported per-item and never billed.

Your history is private. Snapshots live in an owner-side named Key-Value store (price-snapshots) keyed by your Apify user id, so two users watching the same offer never see each other's curves. The Actor reaches it with a scoped, secret-injected API token — never a hard-coded credential.

Ready-made monitoring templates (one click):

Monitor quick-start input:

{
"watchlistOfferIds": ["994632611553", "951309417091", "700000000001"],
"historyDays": 30,
"alertOnPriceDropPct": 5,
"alertOnStockTightPct": 20,
"includeTrendReport": true
}

⚡ Three points that matter

  1. Decision-grade enrichment, not raw dumps — landed cost, dropship score and compliance hints come attached to each product row. You stop paying for data you still have to research by hand.
  2. Honest billing — search-item (and monitoring snapshot-item / trend-report) uses the SDK's atomic Actor.pushData(rows, eventName) path: budget-limit first, push the accepted prefix, then charge it. detail-item and run-base-fee settle only after the product rows are pushed; the pre-work billing plan reserves those events so they should settle in full, while any partial/zero/error is exposed as billingInvariantViolation plus errorBuckets in SUMMARY.
  3. A budget cap you control — the effective ceiling is min(input maxTotalChargeUsd, Apify platform cap). Current subscription-tier prices are read at runtime, detail/base costs are reserved before work, and the ledger uses the SDK's actual ChargeResult counts.

This is not presented as a distributed transaction across all events: the SDK atomically couples each result-row event to its dataset push, while detail-item and run-base-fee are separate post-push settlements protected by the pre-reserved budget and explicit invariant reporting.


⚡ One-click examples

Skip the input form — these public tasks run proven configurations in one click:


🔑 What keywords can you use? Any category.

This is not a vertical scraper — one input accepts any English product keyword. English keywords are sent to 1688.com as typed and 1688's own search matches them: common product terms like the ones below return relevant results, very niche English terms can return fewer. Pet-supply keywords are additionally mapped to Chinese search terms (500+ built-in mappings). Examples:

KeywordTypical use
led strip lightsConsumer electronics price scan
phone caseHigh-volume accessory sourcing
yoga matSports & fitness selection
stainless steel water bottleHome & outdoor comparison
car phone holderAuto accessories research
plush toyGifts & toys compliance screening

Anything sold on 1688.com is in scope — the plainer and more common the English product name, the better the match.


📄 Sample output

Actual row from a live run (keyword: "led strip lights"):

{
"offerId": "994632611553",
"titleCn": "24V/220V户外防水灯带COB水下IP68灌胶无光斑柔性线性灯硅胶泳池",
"titleEn": "24V/220V Outdoor Waterproof LED Strip COB Underwater IP68 Flexible Linear Light",
"price": { "min": 4.7, "max": 93.94, "currency": "CNY", "unit": "piece" },
"moq": 1,
"salesTotal": 867,
"supplierName": "Zhongshan Qinghe Lighting Co., Ltd.",
"isSuperFactory": true,
"detailUrl": "https://detail.1688.com/offer/994632611553.html",
"skuDetails": [ "…quantity-break price ladder…" ],
"estLandedCostUsd": {
"totalLandedCostUSD": 2.77,
"suggestedRetailPriceUSD": 8.31,
"estimatedMarginPercent": 66.7
},
"dropshipReadyScore": 65,
"dropshipGrade": "C+",
"compliance": { "targetMarket": "US", "suggestedCertifications": ["…"], "riskFlags": ["…"] },
"scrapedAt": "2026-08-28T10:57:59.797Z"
}

Plus 30 more fields per row: SKU details, attributes, shipping & stock, supplier repeat rate, factory-inspection flags, product images and description images.

Translation honesty rule: titleEn only ever carries an English title. Titles are translated via a free translation API chain (translationMethod="api") with an offline dictionary fallback (translationMethod="dictionary"). When neither can produce clean English for a title, titleEn is left empty rather than shipping a Chinese/English mix — the original Chinese is always preserved in titleCn.


🆚 How it compares

This ActorOther 1688 wholesale scrapersTypical 1688 scrapers
Startup / run feeNone — a $0.01 base fee applies only to successful runsOften a per-run fee — billed even when nothing is deliveredOften yes
Failed / zero-result runs$0.00 — never billedUsually billed at least the startup feeUsually billed
Enrichment trio (landed cost + dropship score + compliance)IncludedNot offeredNot offered
Budget cap (maxTotalChargeUsd)Pre-work cap + SDK atomic push/charge + factual ledgerNot offeredNot offered
English titlesMachine-translatedChinese onlyChinese only
Freshness proofscrapedAt on every row——
Pricing$0.005/search-item + $0.003/detail-item + $0.01 base (successful runs only)Per-item + startup + extrasPer-row tables

🛡️ Trust at a glance

What we commit toHow it works here
Pay only for delivered resultsZero-result runs cost $0.00 — billed per row actually delivered; successful runs add a single $0.01 base fee, nothing else
No hidden usage feesPure pay-per-event pricing; proxy and platform compute costs are included, never passed through
Honest degradationEvery run's SUMMARY discloses exactly what happened — partial deliveries always come with a named reason
Audit-ready billing ledgerSUMMARY reports current-tier prices, effective cap, affordable rows, raw ChargeResult outcomes, factual charged counts, withheld rows and platform-count reconciliation
MCP / agentic-payment readyInput, dataset, key-value-store and output schemas are all declared — machines can validate the contract before calling
Issues answered fastOpen an Issue instead of guessing — our response time is public on the developer profile
Loved it? Leave a reviewIf this saved you sourcing hours, a quick review helps other buyers find it — and we read every one

💰 Pricing (pay-per-event, no subscription)

EventPriceWhen it's charged
search-item$0.005Per delivered product card
detail-item$0.003Per delivered card with full detail enrichment
snapshot-item$0.015Per offer successfully snapshotted in Price Monitoring Mode
trend-report$0.25Once per monitoring run when includeTrendReport=true
run-base-fee$0.01Once per successful run (charged once per successful run, only when at least one row was delivered)
Startup fee$0.00Never

There is no minimum charge. Small orders bill strictly per event (a 1-card run costs $0.015). The platform price list's minimalMaxTotalChargeUsd ($0.04) is a budget-PROTECTION parameter for the platform, not a minimum spend.

The "from $3.50 / 1,000" price shown on the Store page is the GOLD subscription-tier rate; on the FREE tier you pay $5 per 1,000 items (the list prices above).

Volume subscribers get the standard Apify platform tier discounts. At runtime the Actor reads those current tier prices plus Apify's platform cap, applies min(input cap, platform cap), reserves run-base-fee, and limits work and delivery to affordable rows. maxTotalChargeUsd: 0 means zero paid rows; the Console schema accepts 0 explicitly.

Failed or zero-result runs cost $0. A successful run bills a $0.01 base fee plus per-event fees ($0.005/search-item, $0.003/detail-item, $0.015/snapshot-item, $0.25/trend-report).

Worked examples (FREE tier):

Run shapeMathTotal
1-item trial (card only)1 × $0.005 + $0.01 base$0.015
10 cards (card only)10 × $0.005 + $0.01 base$0.06
40 fully enriched products40 × $0.005 + 40 × $0.003 + $0.01 base$0.33

Best value at 20+ items — per-item fees amortize the $0.01 run fee. If includeDetails=true is requested with maxItems < 20, the Actor automatically switches to card-only before any proxy/browser starts; SUMMARY.deliveryShape.reason is DETAILS_MIN_20_AUTO_CARD_ONLY.


❓ FAQ

Do I need a 1688 account or any Chinese? No account, no Chinese. Type an English keyword and it is searched on 1688.com as typed (pet-supply terms are also mapped to Chinese); titles come back machine-translated to English (titleCn keeps the original).

How do I search 1688 by keyword in English? Put your term in keyword (e.g. phone case, yoga mat) and run — you get research-ready product cards with prices, MOQ ladders and supplier signals, no URL hunting.

Can I find suppliers / factories, not just products? Yes — every row carries supplier trust signals (name, super-factory flag, repeat-purchase rate, inspection flags) so you can shortlist suppliers, and sort=sales surfaces the highest-volume offers first.

How is this different from an Alibaba.com scraper? 1688.com is Alibaba's domestic wholesale marketplace — factory-direct prices well below Alibaba.com's export listings. This Actor turns that Chinese-only data into English, decision-ready rows (landed cost + dropship score + compliance).

What batch size is best value? 20+ items — per-item fees amortize the flat $0.01 run fee. Below 20, an includeDetails=true request is automatically delivered card-only; request includeDetails=false directly if that is already your intent.

What does the dropship score mean? A 0–100 readiness grade built from MOQ, 48h-pickup support and one-piece dropship availability — a fast filter for which offers are actually dropship-friendly.

How is landed cost calculated? Product price + estimated shipping + duty + fees for your targetMarket (US/EU/UK), returned with a suggested retail price and margin %. It's an estimate to compare offers, not a customs quote.

What happens on a failed or zero-result run? It costs $0.00. A run with no delivery because the search channel is blocked or unavailable ends as FAILED, with RISK_CONTROL_ZERO or INFRA_ERROR in SUMMARY; a genuine NO_MATCH remains a clean zero-result run. A successful run adds a single $0.01 base fee plus per-event fees, and every run writes a SUMMARY ledger (charged vs intended) you can audit.

Can I monitor prices over time? Yes — fill watchlistOfferIds, attach a Schedule, and the Actor switches to Price Monitoring Mode (history curve + drop/stock alerts). See Price Monitoring Mode above.


🧭 Part of the 1688 sourcing toolkit

  • 🖼️ 1688 Image Search Scraper — have a product photo instead of a keyword? Reverse-image-search 1688 and get the same sourcing-grade rows.
  • 🎵 TikTok Shop Scraper — spot a product going viral on TikTok Shop, then bring the keyword here to find the 1688 factory behind it.

🤖 For AI agents / MCP

All four schemas are published: input schema, dataset schema, key-value-store schema and Actor output schema. SUMMARY separates NO_MATCH, RISK_CONTROL_ZERO and infrastructure/billing buckets instead of treating every zero-result run as success. It also exposes deliveryShape{requested,effective,actual,reason}, tokenPath (raw warm acceptance versus later business success), billingPlan, factual chargedCount, and costGuard.freeRows: 0. Apify schemas cannot issue dynamic cross-field warnings, so the maxItems/includeDetails auto-downgrade rule is documented statically in both field descriptions.

  • Complete output schema — every delivered field (English titles, MOQ price ladders, supplier trust signals, dropship scores, landed cost, compliance) is typed and documented, so tool-calling loops can parse results without guesswork.
  • API-first — one English keyword in; one POST to run-sync-get-dataset-items returns the final dataset in a single call. No Chinese required, no browser session, login or captcha step.
  • Agentic payments ready — the effective cap is the lower of input and platform limits; work is pre-capped, detail/base costs are reserved, and search rows use the SDK's atomic push/charge path. The factual ChargeResult.chargedCount controls the delivered prefix, while settlement anomalies are machine-readable in billingInvariantViolation and errorBuckets.

🔧 Input configuration

FieldTypeRequiredDefaultDescription
keywordstring✅—English keyword, searched on 1688.com as typed; pet-supply terms are also mapped to Chinese search terms
offerIdsstring[]——Direct-fetch path: fetch these numeric IDs, bypassing keyword search. A detail request below 20 items auto-downgrades to card-only before browser/proxy work. includeDetails=false also delivers card rows through the mtop-primary transport. Price Monitoring is separate.
maxItemsinteger—401–200. A requested detail batch below 20 is automatically card-only; see SUMMARY.deliveryShape.
includeDetailsboolean—trueRequests enrichment. With maxItems < 20, effective mode is automatically card-only. false requests card-only directly.
targetMarketenum—USUS / EU / UK — drives landed-cost duty and compliance rules
sortenum—relevantrelevant / sales (most sold first) / price (low to high) — the delivered dataset arrives in that order
priceMin / priceMaxnumber——Approximate price range filter in CNY, anchored to the card's min (bulk/MOQ) price: passed to 1688's search and re-checked at delivery — cards whose min price is outside the range are dropped and never charged. Note: a card's price.max (one-piece / top-of-ladder price) may still exceed priceMax, since 1688 prices by quantity breaks
maxTotalChargeUsdnumber——Additional hard billing ceiling. Effective cap is the lower of this and Apify's platform cap; 0 means no paid rows.
watchlistOfferIdsstring[]——Price Monitoring Mode: up to 200 offer IDs to watch. Filling this switches the run from search to monitoring (takes priority over keyword). $0.015 per snapshotted offer per run. Any watchlist size works (1–200) — the DETAILS_MIN_20 minimum does not apply to monitoring mode
historyDaysinteger—30Monitoring curve window in days (1–400)
alertOnPriceDropPctnumber——Fire a free priceDrop alert when price fell ≥ this % vs the previous snapshot
alertOnStockTightPctnumber——Fire a free stockTight alert when the bookable amount shrank ≥ this % vs the previous snapshot
webhookUrlstring——POST the alert payload here when an alert fires (non-fatal, time-bounded)
includeTrendReportboolean—falseAlso deliver a weekly trendReport roll-up ($0.25)
proxyConfigurationobject—Residential (CN)Defaults to Apify residential proxies; override only if you know why

Quick start input:

{
"keyword": "phone case",
"maxItems": 30,
"includeDetails": true,
"targetMarket": "US",
"sort": "relevant"
}

Typical default run: 30 fully-enriched products ≈ $0.25, finished in under 5 minutes.


Reviews

Found a bug or have a wishlist? Open an Issue — a fixed bug helps you more than a one-star rating, and we answer fast.

If this run saved you sourcing hours, a quick review on the Store page helps other buyers find it — 30 seconds, hugely appreciated.