1688 Sourcing Profit Analyzer — Landed Cost, Margin & ROI
Pricing
from $2.00 / 1,000 results
1688 Sourcing Profit Analyzer — Landed Cost, Margin & ROI
Search 1688.com wholesale products and calculate landed cost, unit profit, margin, ROI, break-even price and maximum sourcing cost. Combine live product, demand and supplier signals with your exchange rate, freight, duty, marketplace fee and target-margin assumptions.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Security
Limited permissionsShare
📦 1688 Scraper & Sourcing Profit Analyzer — Landed Cost, Margin, ROI
Turn raw 1688.com wholesale listings into a margin-aware sourcing shortlist. This 1688 scraper searches the Chinese wholesale marketplace, pulls live product, demand and supplier signals, and layers on your real-world cost assumptions to calculate landed cost, unit profit, net margin, ROI, break-even price, maximum sourcing price, a 0–100 sourcing score and machine-readable risk flags — no login, no coding, no spreadsheet formulas. When you scrape 1688 with this tool you get the listing and the business case in one row.
Export to JSON, CSV, Excel, or API.
Built for Amazon FBA and private-label sellers, Shopify and dropshipping researchers, wholesale importers, sourcing agents, and procurement teams who need to know — fast — which 1688 products can actually clear their target margin.
🔎 Why scrape 1688?
1688.com is Alibaba's domestic Chinese wholesale marketplace and the real source behind a huge share of products resold on Amazon, eBay, Shopify, Etsy and local marketplaces worldwide. Prices on 1688 are typically far lower than on Alibaba's international site, which makes it the first place serious sourcers and importers look for factory-direct pricing, minimum order quantities and supplier signals.
The problem is that 1688 is built for the Chinese domestic market: the interface is in Chinese, prices are in CNY, and the demand and supplier information is scattered across search cards. Manually copying listings, converting currency, estimating freight and duty, subtracting marketplace fees and working out whether a product actually leaves you a profit is slow, error-prone and impossible to do at scale across dozens of product ideas.
This 1688 scraper removes that friction. It collects the listings for you and runs every product through one consistent landed-cost and profit model, so you can compare hundreds of wholesale offers on the same financial footing in a single run. Every row carries the raw 1688 data and the derived economics, so a buyer can sort a whole category by modeled margin or ROI in seconds.
Common reasons people scrape 1688:
- Product research — find cheap factory-direct products and instantly see which ones can support a target retail price and margin.
- Landed-cost modeling — convert CNY prices to your currency and add freight, duty, marketplace fees and other per-unit costs automatically.
- Supplier screening — capture supplier location, years active, factory and verification badges, sales volume and repurchase rate.
- Competitor and price monitoring — track displayed wholesale price ranges across keywords, categories and sort orders over time.
- Dropshipping and FBA sourcing — shortlist products with healthy modeled ROI before committing to samples or inventory.
- Procurement reporting — export consistent, structured sourcing data for client decks, dashboards and internal review.
- Catalog building — bulk-collect product titles, images, offer IDs and direct 1688 URLs for a buying list.
✨ What this 1688 scraper does
- ✅ Keyword search in English or Chinese — pass one or many search terms; Chinese keywords usually give the best category precision.
- ✅ Consumer or industrial marketplace — switch between consumer wholesale (
pcmarket) and industrial procurement (pcindustry) search. - ✅ Automatic multi-page pagination — walks through 1688 search result pages and returns hundreds of de-duplicated products, controlled by
maxItems. - ✅ Live product data — captures
offerId,title, displayedpriceCny,currency,imageUrl, direct producturl, the resultposition,searchKeywordandsearchPage. - ✅ Demand & supplier signals —
sales(recent sales volume),returnRatePercent(repurchase rate),supplierLocation,supplierYears,isFactory,isVerifiedand the rawtagsshown on each card (present when 1688 displays them). - ✅ Full landed-cost model —
productCost(CNY → your currency),freightPerUnit,dutyAndTax,otherCostPerUnitand the combinedlandedCost. - ✅ Profitability math —
marketplaceFees,totalCostPerUnit,unitProfit,netMarginPercent,roiPercentandbreakEvenSellingPrice. - ✅ Buying target —
maximumSourcePriceCny, the highest displayed source price that still supports your desired margin. - ✅ Decision support — a 0–100
sourcingScorefor triage plus clearriskFlagssuch asNEGATIVE_MODELED_PROFITorABOVE_MAXIMUM_SOURCE_PRICE. - ✅ Price & MOQ filters — optional
priceMin,priceMaxandminOrderQuantitypushed into the 1688 search. - ✅ Fast & reliable — lightweight HTTP collection (no heavy browser) with China residential proxy rotation, automatic session retry on anti-bot challenges, and de-duplication across pages and keywords.
- ✅ Export anywhere — JSON, CSV, Excel, XML or RSS, plus the Apify API and client libraries.
🎯 Use cases
- Amazon FBA & private label — compare product ideas on one cost model, spot margin headroom, and drop offers priced above your maximum viable sourcing cost.
- Shopify & dropshipping — test a planned retail price against source cost, freight, payment and marketplace fees and target margin before you list a product.
- Wholesale importing — build a purchasing shortlist with supplier age, location, demand and repurchase signals beside landed-cost estimates.
- Sourcing & buying agencies — export consistent opportunity data for client reports, supplier screening and review workflows.
- Procurement teams — benchmark factory-direct pricing and MOQ for industrial and consumer products in one place.
- Market & competitor research — track displayed wholesale price ranges across keywords and compare consumer with industrial listings.
📥 Input
Provide at least one product keyword and your cost assumptions. Everything else is optional and has a sensible default.
| Field | Type | Description |
|---|---|---|
keywords | array | Required. Search terms in English or Chinese (e.g. ["wireless earbuds", "蓝牙耳机"]). |
maxItems | integer | Global number of unique products to save across all keywords. Default 100, max 5000. |
sortBy | string | How 1688 ranks results: relevance, priceAsc or priceDesc. Default relevance. |
priceMin | number | Optional lower source-price filter in CNY. |
priceMax | number | Optional upper source-price filter in CNY. |
minOrderQuantity | integer | Optional MOQ filter sent to 1688 search. |
searchType | string | pcmarket (consumer wholesale) or pcindustry (industrial products). |
targetSellingPrice | number | Planned selling price per unit in your target currency. |
cnyExchangeRate | number | Value of CNY 1 in your target currency (e.g. 0.14 for USD). |
freightPerUnit | number | International freight and forwarding cost per unit. |
dutyPercent | number | Duty and import tax applied to product cost plus freight. |
marketplaceFeePercent | number | Marketplace and payment fees as a percent of selling price. |
otherCostPerUnit | number | Packaging, inspection, labeling, domestic delivery and other unit costs. |
targetMarginPercent | number | Desired net margin used to calculate the maximum sourcing price. |
proxyConfiguration | object | Proxy settings. 1688 search requires a China residential session (prefilled). |
Example input
{"keywords": ["phone case", "手机壳", "wireless earbuds", "蓝牙耳机"],"maxItems": 400,"sortBy": "relevance","searchType": "pcmarket","targetSellingPrice": 29.99,"cnyExchangeRate": 0.14,"freightPerUnit": 2.5,"dutyPercent": 5,"marketplaceFeePercent": 15,"otherCostPerUnit": 1,"targetMarginPercent": 25,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "CN" }}
All monetary outputs use the same target currency you set through cnyExchangeRate. For USD, enter the current USD value of CNY 1 and keep selling price, freight and other costs in USD.
📤 Output
Each dataset item is one analyzed 1688 product — the scraped listing plus the full profit model. This example is a real record from a live verification run:
{"offerId": "854938564474","searchKeyword": "phone case","searchPage": 1,"position": 1,"title": "来图定制适用安卓苹果手机保护套卡通可爱软壳全包防摔硅胶手机壳","priceCny": 1.45,"currency": "CNY","sales": 12,"returnRatePercent": 0,"supplierLocation": "东莞市","isFactory": true,"isVerified": false,"tags": ["深度验厂"],"imageUrl": "https://cbu01.alicdn.com/img/ibank/O1CN01rs5LJF1uX7cpRqz5V_!!948876046-0-cib.jpg_270x270xzq60.jpg","url": "https://detail.1688.com/offer/854938564474.html","targetSellingPrice": 29.99,"productCost": 0.2,"freightPerUnit": 2.5,"dutyAndTax": 0.14,"marketplaceFees": 4.5,"otherCostPerUnit": 1,"landedCost": 3.84,"totalCostPerUnit": 8.34,"unitProfit": 21.65,"netMarginPercent": 72.19,"roiPercent": 259.59,"breakEvenSellingPrice": 4.52,"maximumSourcePriceCny": 97.75,"sourcingScore": 89.5,"riskFlags": ["LOW_REPURCHASE_RATE"],"assumptions": {"targetCurrencyPerCny": 0.14,"freightPerUnit": 2.5,"dutyPercent": 5,"marketplaceFeePercent": 15,"otherCostPerUnit": 1,"targetMarginPercent": 25},"scrapedAt": "2026-11-02T00:57:03.843Z"}
Field reference
| Field | Description |
|---|---|
offerId | 1688 offer ID (unique product identifier and natural dedup key). |
searchKeyword | The keyword that returned this product. |
searchPage, position | Result page and ranked position within the search. |
title | Product title (original Chinese preserved when provided). |
priceCny | Displayed source price in CNY. |
currency | Source currency, always CNY. |
sales | Recent sales signal (present when displayed). |
returnRatePercent | Repurchase rate percent (present when displayed). |
supplierLocation | Supplier city/region (present when displayed). |
supplierYears | Years the supplier has been active (present when displayed). |
isFactory, isVerified | Whether factory / verification badges appear on the card. |
tags | Raw badge/label text shown on the listing card (e.g. 深度验厂, 48小时发货). |
imageUrl | Product image URL (Alibaba CDN). |
productCost | priceCny converted to your target currency. |
freightPerUnit, dutyAndTax, otherCostPerUnit | Your per-unit cost inputs and computed duty/tax. |
landedCost | Product cost + freight + duty/tax + other costs. |
marketplaceFees | Selling price × marketplace fee rate. |
totalCostPerUnit | Landed cost + marketplace fees. |
unitProfit | Target selling price − total cost per unit. |
netMarginPercent | Unit profit ÷ selling price. |
roiPercent | Unit profit ÷ total cost per unit. |
breakEvenSellingPrice | Selling price at which unit profit is zero. |
maximumSourcePriceCny | Highest source price (CNY) that still hits your target margin. |
sourcingScore | 0–100 triage score combining margin, demand and supplier signals. |
riskFlags | Machine-readable warnings (see table below). |
assumptions | The exact cost inputs used for this record (audit trail). |
url | Direct link to the 1688 offer page. |
scrapedAt | ISO timestamp of collection. |
Field coverage (from a live run): identity and calculated fields — offerId, title, priceCny, url, imageUrl, landedCost, unitProfit, netMarginPercent, roiPercent, sourcingScore, assumptions — populate at 100%. Supplier/demand fields are present when 1688 shows them on the card: sales, returnRatePercent and supplierLocation on virtually every card, supplierYears on a majority, and tags/badge flags only when the listing carries them. The scraper never invents missing supplier facts — it leaves the field empty and raises a riskFlag instead.
The dataset ships with two ready-made views: Sourcing opportunities (a compact decision table) and Full sourcing data (every field, assumption and calculation).
🔁 Pagination & scale
The 1688 scraper paginates automatically. For every keyword it walks the search result pages in order (beginPage=1,2,3…), collecting roughly 16–19 products per page and de-duplicating by offerId across all pages and keywords. It keeps going until it reaches your maxItems target, the keyword's results are exhausted (a nearly-empty page, or two pages in a row that add no new unique offers), or it passes the total match count 1688 reports for that search — then stops cleanly. With several focused keywords and a high maxItems, a single run returns hundreds of unique analyzed products.
maxItems is the single global cap (default 100, up to 5000). 1688 serves search behind a China-residential anti-bot layer that occasionally challenges a session; the scraper rotates to a fresh China-residential session and retries up to six times per page, and treats a blocked page as "try the next page" rather than "end of results", so an unlucky batch of sessions recovers instead of ending the run early. To go broad, use several focused keyword variants rather than one giant generic search.
⚙️ How to use
- Open the actor on the Apify Console and add one or more product
keywords. - Enter your
targetSellingPriceand cost assumptions (cnyExchangeRate,freightPerUnit,dutyPercent,marketplaceFeePercent,otherCostPerUnit,targetMarginPercent). - Set
maxItemsand optional filters (sortBy,priceMin,priceMax,minOrderQuantity,searchType). - Click Start, then open the Dataset tab when the run finishes.
- Export as JSON, CSV, Excel, XML or RSS, or pull results via the Apify API.
- Automate it: run on a schedule, trigger via API, or pipe the dataset into Make, Zapier, Google Sheets, a webhook, a database or your own app.
💡 Tips
- Use both English and Chinese keywords for the same product to widen and sharpen coverage (e.g.
"phone case"and"手机壳"). Chinese terms often return more results and more precise categories. - Keep your
cnyExchangeRate,freightPerUnit,dutyPercentandmarketplaceFeePercentcurrent — they drive every downstream number. - Sort by
priceAscto surface the cheapest factory-direct offers, then let thesourcingScoreandriskFlagsfilter out weak suppliers. - Watch the
ABOVE_MAXIMUM_SOURCE_PRICEflag: it marks offers whose CNY price is too high to ever hit your target margin. - Switch
searchTypetopcindustryfor industrial, machinery and bulk procurement categories. - Start with the prefilled 20-result example, then scale
maxItemsup and add more keyword variants.
❓ FAQ
Is scraping 1688 legal? The actor collects publicly visible search-listing data. Use it in line with applicable laws, 1688's terms and Apify's policies, avoid collecting personal data, and verify commercial, customs, tax and supplier details independently. The outputs are estimates for research, not financial, legal, tax or customs advice.
How many products can it return and how fast?
As many as your maxItems allows, up to 5000, paginating automatically across search pages and keywords. It uses lightweight HTTP collection rather than a full browser; a broad multi-keyword search returns hundreds of unique analyzed products, and the default prefill is capped at 20 for a quick first run. Runtime scales with how many pages and sessions are needed to clear the anti-bot layer.
Do I need proxies or a login?
No login. 1688 search requires a China residential session, which is prefilled in proxyConfiguration. The scraper rotates sessions and retries automatically when it hits an anti-bot challenge.
What export formats are supported? JSON, CSV, Excel, XML and RSS from the Apify dataset, plus the Apify API and JavaScript/Python clients.
Is there a 1688 API? 1688 has no convenient public product API for international sourcing, which is why this actor exists. You consume the data through the standard Apify API and dataset endpoints instead.
Can I search in English, or do I need Chinese?
Both work. English keywords are convenient; Chinese keywords usually give better category precision. Pass several variants in the keywords array.
How fresh is the data?
Every item is scraped live at run time and stamped with scrapedAt. Schedule the actor to keep a dataset continuously up to date.
Can I filter by price or minimum order quantity?
Yes — set priceMin, priceMax and minOrderQuantity, and choose relevance, priceAsc or priceDesc with sortBy.
Why are supplierYears, tags or returnRatePercent sometimes empty?
1688 doesn't display these on every card. When a signal is missing the scraper leaves it empty and raises the relevant risk flag (e.g. MISSING_DEMAND_SIGNAL or NO_VISIBLE_VERIFICATION) rather than guessing.
Is the displayed price the final price? Not always. A card price can be a starting or promotional price; final price depends on SKU, quantity tier, customization and shipping. Confirm specifications, MOQ, tier pricing and the final quote directly with the supplier before buying.
🔧 How the calculations work
Product cost = 1688 price CNY × target currency per CNYDuty and tax = (product cost + freight) × duty rateLanded cost = product cost + freight + duty/tax + other unit costsMarketplace fees = target selling price × marketplace fee rateTotal unit cost = landed cost + marketplace feesUnit profit = target selling price − total unit costNet margin = unit profit ÷ target selling priceROI = unit profit ÷ total unit costBreak-even price = landed cost ÷ (1 − marketplace fee rate)
maximumSourcePriceCny solves the model in reverse — the highest displayed source price that still supports your chosen targetMarginPercent. The sourcingScore is a 0–100 sorting aid that blends modeled margin with visible demand, repurchase, supplier-age, factory and verification signals; it is for triage, not a guarantee of supplier quality.
Risk flags
| Flag | Meaning |
|---|---|
MISSING_SOURCE_PRICE | A usable displayed price was unavailable. |
MISSING_DEMAND_SIGNAL | No sales signal was visible. |
LOW_RECENT_SALES | Visible sales signal was below 10. |
LOW_REPURCHASE_RATE | Visible repurchase rate was below 10%. |
NEW_SUPPLIER | Visible supplier history was below two years. |
NO_VISIBLE_VERIFICATION | No factory or verification badge appeared. |
NEGATIVE_MODELED_PROFIT | Your assumptions produce a unit loss. |
ABOVE_MAXIMUM_SOURCE_PRICE | Source price exceeds your target-margin ceiling. |
🔗 Related scrapers
Building a cross-marketplace sourcing and supplier pipeline? Pair this 1688 scraper with other B2B suppliers scrapers from the same author:
- Made-in-China.com Scraper — Suppliers, Prices & MOQ
- TradeIndia Scraper — B2B Suppliers, Prices, Email & Phone
- IndiaMART Scraper — Suppliers, Exporters, Prices & GST
- Europages Scraper — European B2B Suppliers & Products
From a 1688 wholesale search to a margin-aware sourcing shortlist — in one run. ▶️ Hit Start and scrape 1688 now.