1688 Image Search — Find Suppliers & Factories by Photo avatar

1688 Image Search — Find Suppliers & Factories by Photo

Pricing

from $4.50 / 1,000 image searches

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

1688 Image Search — Find Suppliers & Factories by Photo

1688 reverse image search for Amazon FBA sourcing, dropshipping and private label. Supplier prices and MOQ; optional English titles and landed-cost estimates.

Pricing

from $4.50 / 1,000 image searches

Rating

5.0

(1)

Developer

Kyle Wang

Kyle Wang

Maintained by Community

Actor stats

1

Bookmarked

572

Total users

265

Monthly active users

14 days

Issues response

4 days ago

Last modified

Share

1688 Image Search Scraper — Find Suppliers by Photo

Photo → visually similar 1688 supplier candidates. Find visually similar 1688 listings and supplier candidates for Amazon FBA sourcing. This reverse image search supports Amazon sourcing and product sourcing workflows, including China sourcing, dropshipping, private label and Shopify. Get up to 20 candidate listings per image, with available card-level prices, MOQ and supplier signals. Results are Chinese search cards by default; visual similarity does not confirm the same product or its original factory. Enable enrichDetails for best-effort available details, English titles and landed-cost estimates; supplier legal names remain Chinese. $0.005 per image returning matches + a $0.01 run base fee (FREE/BRONZE; see Pricing for both modes).

🚀 Try this example

The current Store example searches two photos in card-only mode, with up to 5 candidates per photo. The input form itself is pre-filled with one photo in card-only mode (enrichDetails: false); its maxResultsPerImage default remains 20, not 5:

{
"imageUrls": [
"https://cbu01.alicdn.com/img/ibank/15418323391_1847764777.jpg",
"https://cbu01.alicdn.com/img/ibank/O1CN01FCwJrl29btzNvQkHM_!!2235628087-0-cib.jpg_270x270xzq60.jpg"
],
"maxImages": 2,
"maxResultsPerImage": 5,
"enrichDetails": false
}

At FREE/BRONZE prices, if both images return matches: $0.01 base fee + 2 × $0.005 = $0.02.

enrichDetails defaults to false. Set it to true to attempt detail retrieval for matched offers, including available SKUs, English titles, dropship scores and landed-cost estimates. Fields and translations are best-effort, not guaranteed for every match; supplier legal names stay Chinese. Successful details cost $0.003 each at FREE tier; undelivered details are not charged. The applied mode is recorded in SUMMARY.enrichment (enriched vs card-only (enrichDetails=false)).

Optional single-photo enrichment example:

{
"imageUrls": ["https://cbu01.alicdn.com/img/ibank/15418323391_1847764777.jpg"],
"maxImages": 1,
"maxResultsPerImage": 5,
"enrichDetails": true
}

If the image returns matches and 5 details are delivered, the FREE-tier total is $0.01 + $0.005 + 5 × $0.003 = $0.03.

💸 Batch your photos: one run, one base fee

Searching several products? Put every photo into one run and set maxImages to the number of photos (up to 20; the default is 10, and extra images are dropped, never searched and never charged):

{
"imageUrls": [
"https://cbu01.alicdn.com/img/ibank/15418323391_1847764777.jpg",
"https://cbu01.alicdn.com/img/ibank/O1CN01FCwJrl29btzNvQkHM_!!2235628087-0-cib.jpg_270x270xzq60.jpg",
"https://cbu01.alicdn.com/img/ibank/O1CN012OIY472D07vhk87GY_!!936828546-0-cib.jpg_270x270xzq60.jpg"
],
"maxImages": 3,
"maxResultsPerImage": 5,
"enrichDetails": false
}

The $0.01 run base fee is charged once when at least one image actually delivers matches, not per image, so batching lowers your price per photo. Card-only, at FREE/BRONZE prices, when every image returns matches:

How you call itYou payPer matched image
1 image per run$0.005 + $0.01 base fee = $0.015$0.015
20 images in one run20 × $0.005 + $0.01 base fee = $0.11$0.0055 (~63% less)

A successful single-image run also carries a batchingTip field in its dataset row and in SUMMARY as a reminder.

✅ 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)Per-row billing from $3.00/1k rows elsewhere — you pay for every row, even useless ones
Best-effort enrichment at $0.003 per delivered detail — undelivered details are not chargedHidden start fees (apify-actor-start) on top of item pricing
Decision-support estimates when enriched: 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
Undelivered searches/details and unprocessed overflow are not billed; partial runs pay only for successful deliveriesReverse-image-search endpoints that quietly fail on a sizeable share of calls — 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

  • 📸 Dropshipping, TikTok Shop & Shopify sellers — screenshot a trending product, shortlist visually similar 1688 supplier listings and compare available prices
  • 🛒 Amazon FBA & private label sellers — search a product photo (your own shot or the main image of a competitor's ASIN), compare up to 20 supplier candidates per photo; opt into enrichment for available MOQ ladders and landed-cost estimates before buying samples
  • 🕵️ Sourcing agents & China sourcing teams — 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 resultsNo matched images in image mode, or no delivered details in offerIds mode, costs $0.00. Partial success is billed only for successful deliveries
No hidden usage feesPure pay-per-event pricing; proxy and platform compute costs are included, never passed through
Honest degradationCheck SUMMARY for per-image status, billing-event records and reported shortfalls
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
Issue supportOpen an Issue with the run ID and symptoms for troubleshooting
Live reliability statsSee this Store page's live platform run success rate and volume; run success is not a per-image or full-delivery guarantee

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 (the latest snapshot). Card-only runs flush once per image.

Results are grouped by query image (type: "imageResult"), with matches embedded in results; enriched runs can append multiple snapshots per image. Best-effort enrichment can produce an object like this (real output, arrays trimmed); available fields vary by listing:

{
"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 get Chinese search cards. Available card fields can include 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 best-effort available details and estimates.
  4. Start the run — results land in the default dataset, grouped by image; enriched runs can append snapshots.
  5. Re-fetch known products 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.
imagesBase64array—Base64 alternative: raw string or {"base64": "...", "fileName": "x.jpg"}. Mixable with imageUrls.
offerIdsstring[]—Detail-only mode: fetch available details for up to 400 known 1688 offer IDs. Overrides images; see Pricing for the base fee and delivered-detail fees.
maxImagesint10Cap on input images (max 20). Extras are dropped and never charged.
maxResultsPerImageint20Matches per image (1–20), in similarity order.
enrichDetailsboolfalseAttempt best-effort detail enrichment ($0.003 per delivered detail at FREE tier).
targetMarketenumUSUS / EU / UK / AU / global — drives landed cost & compliance hints.
maxTotalChargeUsdnumber2Charge budget (min 0.04). Check SUMMARY for budget stops and delivered results.

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 usage pricing: $0.005 per image that actually delivers ≥1 match (FREE/BRONZE), plus $0.003 per delivered detail at FREE tier when requested. The $0.01 run base fee is charged once at completion: in image mode when ≥1 query image actually delivers matches; in offerIds mode when ≥1 detail is actually delivered. No successful delivery = $0.00. Partial runs pay only for successful deliveries; an overall FAILED status does not make already delivered work free.

The "from $4.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 events (the list prices below).

EventPriceWhen it's charged
run-base-fee$0.01Once at completion if image mode delivers ≥1 matched image, or offerIds mode delivers ≥1 detail
image-search$0.005Per image search that actually delivers ≥1 match; never applies to offerIds mode
detail-item$0.003Per enriched detail actually delivered

No platform start fee — the only per-run charge is the $0.01 base fee under the delivery conditions above. No charge for failed image downloads, zero-match searches, risk-control blocks, undelivered details or unprocessed overflow. offerIds mode pays the base fee plus delivered-detail fees, not an image-search fee. Subscription discounts (image-search): SILVER −4%, GOLD/PLATINUM/DIAMOND −10% (discount depth capped at 10%); detail-item keeps its own tier schedule.

Worked examples (FREE tier; all stated searches/details delivered):

OrderCalculationTotal
1 image (card-only)$0.01 base fee + 1 × $0.005$0.015
10 images (card-only)$0.01 base fee + 10 × $0.005$0.06
20 images (card-only, the per-run maximum)$0.01 base fee + 20 × $0.005$0.11
1 offer ID (detail-only)$0.01 base fee + 1 × $0.003; no image-search fee$0.013

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.

Optional enriched example — sourcing 10 products by photo (FREE tier): if 10 images return matches ($0.05) and 200 unique details are delivered (200 × $0.003 = $0.60), plus $0.01 base fee = $0.66 for 200 supplier candidates with best-effort enrichment.

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 (set maxImages to match; the default is 10) — one base fee when matches are delivered, one image-search charge per matched image, details only when you opt in. Larger successful batches amortize the base fee and the fixed cold-start cost over more results.

How this compares to typical reverse-image-search Actors

Other Actors also search 1688 by photo; the differences are structural:

This ActorTypical single-image reverse-image-search
Input per runUp to 20 images in one batchSingle image per call
BillingPer delivered event ($0.005 matched image / $0.003 delivered detail), plus the conditional $0.01 base fee; partial success is billed for delivered workPer-row billing (commonly from $3.00 / 1k rows)
Run success rateSee live platform Store stats; a run-level metric, not a per-image or full-delivery guaranteeJudge from each Store page's live stats
Budget controlmaxTotalChargeUsd per-run charge budgetUsually not offered
EnrichmentOptional best-effort available details and estimates: landed cost, dropship score, compliance hintsSearch results only

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 per query image, not the last 20 rows globally. 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 offer appears under several of your photos, the card-level enriched count can exceed the billed count. Do not sum repeated enriched cards as billed details; the benchmark is not a zero-loss delivery guarantee.
  • 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-aware stopping. When maxTotalChargeUsd is reached, the run stops scheduling new work. Check dataset snapshots for delivered results and SUMMARY.chargedEvents / SUMMARY.intendedEvents for billing-event records; use platform charge records to verify actual charges. In-flight delivery is not guaranteed.
  • 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. Read dropshipReadyScore alongside dataQuality when listings omit 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? In image mode, $0.005 per image that actually delivers at least one match (FREE/BRONZE), plus a $0.01 run base fee charged once at completion if any image delivered matches. No matched images means $0.00; partial success pays only for successful deliveries, even if the overall run ends FAILED. Optional enrichment is $0.003 per delivered detail at FREE tier. One matched image plus 5 delivered details costs $0.03; 10 matched images plus 200 unique delivered details costs $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).

Can I use it for Amazon FBA product research? Yes — reverse image search a product photo to shortlist visually similar 1688 supplier candidates and compare available prices and MOQ. With enrichDetails, available details may include landed-cost and margin estimates for your target market. A typical FBA / private label flow: photo → supplier shortlist → verify product identity and supplier → sample orders.

Can I search by Amazon ASIN? Not directly — this Actor searches by image. Paste the main image URL of the ASIN's listing into imageUrls to search for visually similar 1688 supplier listings.

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 attempts available enriched details without image search. If at least one detail is delivered, it adds the $0.01 base fee once plus delivered-detail fees; no image-search charges. One delivered detail at FREE tier costs $0.013; no delivered details costs $0.00.

How do I control spend? Set maxTotalChargeUsd (default $2). At the budget stop, inspect the dataset for delivered results. SUMMARY.chargedEvents and SUMMARY.intendedEvents record billing events; verify actual charges against platform charge records rather than assuming the summary is an exact invoice.

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.

For AI agents

Built to be called by software, not just clicked by people:

  • Complete output schema — every delivered field (prices, MOQ, supplier signals, dropship score, landed cost, compliance) is typed and documented, so tool-calling loops can parse results without guesswork.
  • API-first — one POST to run-sync-get-dataset-items returns the final dataset in a single call; no browser session, login or captcha step.
  • Batch by default — put every photo you need into ONE run (imageUrls, up to 20) and set maxImages to that count; each extra run with matched images pays its own $0.01 base fee.
  • Agentic payments ready — maxTotalChargeUsd sets a per-run charge budget, with machine-readable failure semantics in SUMMARY. No successful delivery costs $0; an overall failed run can still incur charges for delivered results. Inspect delivery and platform charge records when automating spend.

Copy to your AI assistant

This Actor is API-first and agent-ready: JSON input/output, per-event billing with a charge budget, and machine-readable failure semantics — useful 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 supplier candidates for product photos. Put ALL photos into ONE
run (up to 20) and set maxImages to the number of photos; each run pays a
$0.01 base fee only if matches are delivered. 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-1>", "<photo-url-2>"], "maxImages": 2,
"maxResultsPerImage": 20, "enrichDetails": true, "targetMarket": "US",
"maxTotalChargeUsd": 2}.
Take the last imageResult row per query image (the latest snapshot).
Report available landed-cost estimates, dropship grades and compliance
risk flags; do not assume every field is present or similar means identical.

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 Product Scraper — keyword research across any 1688 category: English titles, MOQ price ladders, landed cost, dropship scores and supplier signals. Found a factory by photo? Pull the whole category around it by English keyword.
  • TikTok Shop Scraper — find TikTok Shop's viral products by keyword, then photo-search the winners here to find matching 1688 suppliers.

Pipeline: spot winners (TikTok Shop Scraper, or keyword research with 1688 Product Scraper) → screenshot them → source suppliers by photo (this Actor) → re-check finalists via offerIds.

Reviews & changelog

Found a bug or have a wishlist? Open an Issue with the run ID and relevant symptoms so we can investigate.

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

Release history lives in the Changelog tab.


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.