1688 Image Search Scraper — Find Suppliers by Photo avatar

1688 Image Search Scraper — Find Suppliers by Photo

Pricing

from $3.50 / 1,000 image searches

Go to Apify Store
1688 Image Search Scraper — Find Suppliers by Photo

1688 Image Search Scraper — Find Suppliers by Photo

Find the factory behind any product photo: reverse image search on 1688.com with supplier prices, MOQ ladders, landed cost and dropship scores — pay only for successful matches.

Pricing

from $3.50 / 1,000 image searches

Rating

0.0

(0)

Developer

Kyle Wang

Kyle Wang

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

3 hours ago

Last modified

Share

Screenshot → factory price → landed cost in one call. Upload a product photo, get up to 20 visually similar 1688.com listings per image with factory prices, MOQ and supplier trust signals — $0.005 per successful search + a $0.01 run base fee charged only when matches are delivered, no start fee, no login, no need to read Chinese (titles arrive machine-translated to English, originals preserved). Switch on enrichDetails and every delivered match arrives with SKUs, an English title, a dropship-ready score and an estimated landed cost in USD.

✅ What you get / ❌ what you avoid

✅ You get❌ What others charge you for (or fail at)
Pay-per-success: only images returning ≥1 match are billed ($0.005)devcake-style per-row billing from $3.00/1k rows (as of Aug 2026) — you pay for every row, even useless ones
Full detail enrichment at $0.003 per delivered detail — failed details are never chargedHidden start fees (apify-actor-start) on top of item pricing
Decision-grade output: landed cost, dropship score, compliance hintsField-stuffed dumps you still have to analyze by hand
No 1688 account, no login, no cookies to babysitSolutions that break when your session expires
Failed / empty / truncated work is never charged; hard budget cap per rundev00's reverse-image-search API shows ~80–85% run success rate per Apify Store stats (as of Aug 2026) — you gamble on every call
Automatic compensation retry for transient detail failures (see Limits)Silent partial deliveries you discover days later

Who it's for

  • 📸 Dropshippers & TikTok Shop sellers — screenshot a trending product, find the factory behind it and its real price in seconds
  • 🛒 Amazon/eBay resellers — compare 20 suppliers per photo, see MOQ ladders and landed cost before you buy samples
  • 🕵️ Sourcing agents — turn client photos into supplier shortlists with trust signals (years on 1688, Super Factory badge, repeat-buyer rate)
  • 🤖 AI agents & pipelines — clean JSON in/out, API-first, built to be called by your automation (see Copy to your AI assistant)
  • 🔍 Price intelligence — track factory prices of products you already sell via offerIds detail-only mode

Trust at a glance

What we commit toHow it works here
Pay only for delivered resultsZero-match runs cost $0.00 — failed downloads, risk-control blocks and undelivered details are never charged
No hidden usage feesPure pay-per-event pricing; proxy and platform compute costs are included, never passed through
Honest degradationEvery run's SUMMARY discloses per-image status, the billing ledger and the reason whenever anything short-falls
Subscriber discountsUp to −10% on image-search events (SILVER −4%, GOLD and above −10%)
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
Live reliability statsSuccess rate and run volume are shown live on this Store page — judge from real data, not claims

One-click examples

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

Sample output

Reading the dataset: with enrichDetails: true, runs write progressive snapshots into the append-only dataset as details arrive — take the LAST imageResult block per query image (it is the most enriched one). Card-only runs flush once per image.

One dataset row per query image (type: "imageResult"), matches embedded in results. With enrichDetails: true, each delivered match is upgraded from a search card to a full detail object like this (real output, arrays trimmed):

{
"offerId": "692120494348",
"detailLevel": true,
"titleCn": "厂家批发 平板电脑保护套肩带 相机背带 音响背带",
"titleEn": "Manufacturer Wholesale Tablet Case Shoulder Strap Camera Strap Speaker Strap",
"detailUrl": "https://detail.1688.com/offer/692120494348.html",
"price": { "min": 1.9, "max": 2.2, "currency": "CNY", "unit": "piece" },
"moq": 1000,
"quantityPrices": [
{ "price": 2.2, "minQuantity": 1000 },
{ "price": 2.0, "minQuantity": 5000 },
{ "price": 1.9, "minQuantity": 10000 }
],
"stock": { "total": 1325250 },
"city": "广东省深圳市",
"supplier": {
"companyName": "深圳市光明区兴凯鸿纺织商行",
"sellerType": "superFactory",
"isSuperFactory": true,
"scores": { "service": "4.5", "repeatRate3m": "29.41%" }
},
"supplierRepeatRate3m": 0.2941,
"weightKg": null,
"dropshipReadyScore": 44,
"dropshipGrade": "F",
"dataQuality": "minimal",
"estLandedCostUsd": {
"unitCostUSD": 0.26,
"internationalShippingUSD": 2.72,
"totalLandedCostUSD": 3.35,
"suggestedRetailPriceUSD": 10.05,
"estimatedMarginPercent": 66.7
},
"compliance": {
"targetMarket": "US",
"suggestedCertifications": ["CPSC compliance"],
"riskFlags": []
},
"scrapedAt": "2026-08-23T17:23:17.977Z"
}

Without enrichment you still get a rich search card per match: offerId, similarityRank, title (Chinese), priceYuan, consignPriceYuan (dropship price), moq, bookedCount (demand), supplier (years on platform, factory flags, composite score), imageUrl, detailUrl.

Every field is documented in the dataset schema (see the Overview view in the Console results table).

How to run

  1. Paste a product photo URL into imageUrls (or upload base64 via imagesBase64).
  2. Set maxResultsPerImage (up to 20 matches per image).
  3. Optional: switch on enrichDetails for full product intelligence.
  4. Start the run — results land in the default dataset, one row per image.
  5. Re-fetch exact products anytime via offerIds (detail-only mode, up to 400).

API:

curl -X POST "https://api.apify.com/v2/acts/crawleast~1688-image-search-scraper/runs" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"imageUrls": ["https://example.com/product-photo.jpg"],
"maxResultsPerImage": 20,
"enrichDetails": true,
"targetMarket": "US"
}'

Input reference

FieldTypeDefaultMeaning
imageUrlsstring[]Public product photo URLs (jpg/png/webp). Each yields up to maxResultsPerImage matches.
imagesBase64arrayBase64 alternative: raw string or {"base64": "...", "fileName": "x.jpg"}. Mixable with imageUrls.
offerIdsstring[]Detail-only mode: fetch full details for up to 400 known 1688 offer IDs. Overrides images.
maxImagesint10Cap on input images (max 20). Extras are dropped and never charged.
maxResultsPerImageint20Matches per image (1–20), in similarity order.
enrichDetailsboolfalseUpgrade delivered matches to full details ($0.003 each).
targetMarketenumUSUS / EU / UK / AU / global — drives landed cost & compliance hints.
maxTotalChargeUsdnumber2Hard budget cap (min 0.04). The run stops gracefully at the cap and keeps delivered data.

Migrating from another actor? Common aliases get minimal support: imageUrl and images are mapped to imageUrls; imageFile is routed by value shape (data:URI / pure base64 → imagesBase64, URL → imageUrls). Keyword fields like query are dropped with a logged warning — this Actor searches by image, not keywords. Unknown legacy fields are dropped with a logged warning, so old inputs never crash a run.

Pricing (pay-per-event)

All-inclusive, predictable pricing — no hidden usage fees. $0.01 run base fee (charged once at run completion, only if you received at least one matched image) + $0.005 per image search + $0.003 per enriched detail. Runs that deliver no matches are not charged.

EventPriceWhen it's charged
run-base-fee$0.01Once per run, at completion — only when ≥1 match was delivered
image-search$0.005Per image search that returns ≥1 match
detail-item$0.003Per enriched detail actually delivered

No start fee. No charge for failed image downloads, zero-match searches, risk-control blocks, undelivered details or truncated overflow. Subscription discounts (image-search): SILVER −4%, GOLD/PLATINUM/DIAMOND −10% (discount depth capped at 10%); detail-item keeps its own tier schedule.

Worked examples (card-only scans, FREE tier):

OrderCalculationTotal
1 image$0.01 base fee + 1 × $0.005$0.015
10 images$0.01 base fee + 10 × $0.005$0.06
100 images$0.01 base fee + 100 × $0.005$0.51

The flat $0.01 base fee amortizes across the batch — the larger the run, the closer your effective per-image price gets to the raw $0.005.

Fully enriched example — sourcing 10 products by photo (FREE tier): 10 image searches ($0.05) + 200 delivered details (10 × 20 matches × $0.003 = $0.60) + $0.01 base fee = $0.66 for 200 supplier candidates with landed cost.

Compare: one hour of a sourcing agent browsing 1688 manually covers perhaps 5–10 products — and tells you nothing about landed cost or dropship readiness.

Best value: batch 10–20 images per run — one base fee per run, one image-search charge per image, details only when you opt in. Larger batches amortize the base fee and the fixed cold-start cost over more results, so your per-candidate price keeps dropping.

Limits & caveats (read once, trust us more)

  • Dataset snapshot semantics. Enrich-mode image runs write progressive full snapshots into the append-only dataset as details arrive. Consumers should take the last imageResult block (20 rows) — it is the most enriched one. SUMMARY.imageFlushCount tells you how many snapshots were written. Card-only runs flush once per image.
  • Cross-image dedup & billing. Detail targets are deduplicated by offerId across query images (measured on our 20-image benchmark: 20 images × 20 matches → 371 unique targets, 371/371 delivered and billed, run MrWX8o2ZcMFXC2ZQ0). detail-item billing counts unique delivered offers, so when one supplier appears under several of your photos, the card-level enriched count can exceed the billed count — by design, never double billing. Our delivery discipline: zero loss of deduplicated candidates.
  • Compensation retry. If some details fail in the parallel pass, ONE automatic serial retry targets only the failed offerIds (deadline-permitting). It is billed only on actual delivery and reported in SUMMARY.compensationRetry (triggered, offered, delivered, failed).
  • Budget cap stops gracefully, never mid-delivery. When maxTotalChargeUsd is hit, the run stops scheduling new work, but details already being fetched are completed and delivered free of charge — you never pay for a partial fetch, and you never lose in-flight data. SUMMARY.chargedEvents always equals what you were actually billed.
  • 1688 risk control is real. Rarely, 1688's anti-bot layer refuses queries (status: "RISK_CONTROL"). Those images are never charged; the run reports per-image status honestly instead of silently retrying forever.
  • Estimates are heuristics. estLandedCostUsd (duty/shipping/platform rates) and compliance hints are informational starting points, not quotes or legal advice. dropshipReadyScore degrades gracefully (scoreConfidence) when the listing hides evidence.
  • Chinese-first source. 1688 is a domestic Chinese marketplace: original titles are Chinese (titleCn) and that field is authoritative. English titles (titleEn) are best-effort machine translations (free translation services with a domain dictionary fallback); translationMethod tells you which path produced each title. Supplier names stay in Chinese (as registered).
  • Run window. Up to 20 images × 20 matches per run; large enriched orders (hundreds of details) take several minutes and run under a 40-minute platform window with budget-aware graceful stop.

FAQ

How much does it cost to search by image on 1688? $0.005 per image search that returns at least one match, plus a $0.01 run base fee charged once at run completion and only if you received at least one match — failed and empty searches are free, and runs that deliver no matches are not charged at all. Adding full details is $0.003 per delivered detail. A typical 10-photo, fully enriched sourcing session costs about $0.66.

Do I need a 1688 account or Chinese phone number? No. The Actor handles access internally; you provide only the photos (or offer IDs).

What image formats work? JPEG, PNG and WebP up to ~1 MB each, via public URL (imageUrls) or base64 (imagesBase64). Screenshots from TikTok/Amazon/AliExpress work fine.

What if an image returns no matches? status: "OK" with matchCount: 0 and zero charge. Try a cleaner crop — product-only, plain background images match best.

Why are some details missing fields? dataQuality tells you (full / partial / minimal). 1688 listings genuinely differ in what they publish (SKU tables, weight, video). What isn't published isn't invented.

Can I fetch details for products I already found? Yes — offerIds mode takes up to 400 IDs and returns full enriched details without any image search (no image-search charges at all).

How do I control spend? Set maxTotalChargeUsd (default $2). At the cap the run stops gracefully and keeps everything already delivered. SUMMARY.chargedEvents vs SUMMARY.intendedEvents shows the exact billing ledger per run.

How long does a run take? Card-only scans finish in ~30–90 seconds. Enriched runs add ~1 detail/second per identity pool; a 200-detail order typically completes in a few minutes.

Is this legal? The Actor reads publicly available 1688.com listing data at normal browsing rates. Respect 1688's terms and applicable laws; you are responsible for how you use the data.

Copy to your AI assistant

This Actor is API-first and agent-ready: deterministic JSON input/output, per-event billing with a hard budget cap, and machine-readable failure semantics — ideal for MCP servers, n8n/Make flows, LangChain tools and autonomous sourcing agents.

Paste this into your AI assistant:

Use the Apify Actor crawleast/1688-image-search-scraper to find Chinese
wholesale suppliers for a product photo. POST this JSON to
https://api.apify.com/v2/acts/crawleast~1688-image-search-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>
body: {"imageUrls": ["<photo-url>"], "maxResultsPerImage": 20,
"enrichDetails": true, "targetMarket": "US", "maxTotalChargeUsd": 2}.
Each dataset row is one query image; the last imageResult block holds the
most enriched matches. Report: minimum landed cost, best dropship grade,
and any compliance risk flags.

runs-sync-get-dataset-items returns the final dataset in one call — perfect for tool-calling loops. For large enriched orders (hundreds of details), append ?timeout=900 (seconds) to the sync endpoint, or set your HTTP client timeout ≥ 15 minutes — otherwise the gateway may return 408 while the run keeps working in the background (poll runs/{runId} to recover).

  • 1688 Pet Supplies Scraper — keyword-driven 1688 market research for pet products: English titles, MOQ price ladders, dropship scores and landed costs. Use it to discover categories, then use this Actor to source by photo the winners you find.

Pipeline: discover by keyword (Pet Supplies Scraper) → screenshot the winners → source suppliers by photo (this Actor) → re-check finalists via offerIds.

Reviews & changelog

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 time, a quick review on the Store page helps other buyers find it — 10 seconds, hugely appreciated.

Changelog

  • 0.3.0 (2026-08-24) — W3 productization: input schema v2 (8 buyer fields), dataset/KV/output schemas with the Overview view, tiered subscription discounts, final listing copy.
  • 0.2.x (2026-08-23/24) — W2 core: mtop image search with four-level fallback, bounded detail parallel pool, budget-aware deadlines, compensation retry, billing ledger (SM-01…SM-06 smoke verified; 400-detail benchmark delivered 100% of deduplicated targets).

Data is provided "as is" for research and sourcing decisions. Pricing, scores and compliance hints are heuristic estimates; verify independently before committing funds. Not affiliated with 1688.com / Alibaba Group.