AliExpress Image Search Scraper — Find Products by Photo avatar

AliExpress Image Search Scraper — Find Products by Photo

Pricing

from $6.00 / 1,000 image searches

Go to Apify Store
AliExpress Image Search Scraper — Find Products by Photo

AliExpress Image Search Scraper — Find Products by Photo

Search AliExpress by photo instead of keywords. Paste image links and get the products AliExpress matches to each one, in its own ranking, with price, discount, unit price, orders, rating, Choice label and a 0-100 visual similarity score per match. 55 countries, 31 currencies.

Pricing

from $6.00 / 1,000 image searches

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

17 hours ago

Last modified

Share

Search AliExpress with a photo instead of keywords. Give it image links or upload photos, and get back the products AliExpress matches to each picture, in the same order as AliExpress's own "search by image", with price, discount, unit price, orders, rating, the Choice label and a 0-100 visual similarity score for every match. Switch on product details to add every variant with its stock, shipping to your country and the seller behind each match.

Built for sourcing, dropshipping research and price comparison: find who sells the item in a photo, at what price, and how well it sells.

Why Use This Scraper?

  • Photo in, products out. No need to guess the right keywords for a product you only have a picture of.
  • A similarity score on every match. visualSimilarity (0-100) comes from AliExpress's own image model, so you can drop look-alikes and keep near-identical listings with one setting.
  • AliExpress's own highlights. Cards that AliExpress marks as the best similar item, the top seller or the best price are labelled in highlight.
  • Prices for your market. Choose the ship-to country, one of 31 currencies and one of 12 title languages.
  • Seller, variants and shipping on request (from 8 November 2026). includeDetails adds each match's store (name, positive feedback, sales, age), every variant with its price and stock, and the shipping options and delivery days for your country.
  • Links or uploads. Paste image links, data URLs, or upload photos from your computer in the input form.
  • Exact order counts where AliExpress sends them, plus unit price on multi-piece listings.
  • Bulk friendly. Any number of images per run, up to 1,000 matches per image, several images in parallel.
  • No account, no browser, no cookies to paste. The actor uses its own connections.

Overview

The actor is for anyone who starts from a picture: a product seen on social media, a competitor's catalogue photo, a supplier's sample, a customer's screenshot. For each image it runs one AliExpress search by image and writes one dataset row per matched product. An image that yields nothing (a dead link, a file that is not an image) gets a single status row that explains why, so every input image is accounted for.

Each row says which input image it belongs to (searchImage, searchImageIndex) and where the product ranked (position), so results from many images can be filtered and grouped in one table.

Supported Inputs

InputExample
Direct image linkhttps://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg
Image on any other sitehttps://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png
Data URLdata:image/png;base64,iVBORw0KGgo...
Photo from your computerthe "Or upload photos" field in the input form (uploadedImages)

Formats: JPG, PNG, WebP, AVIF, GIF (first frame), TIFF, SVG. Large photos are shrunk to a 200 KB JPEG before upload, the same way the AliExpress website does it, so a 5 MB camera photo works.

Copy-paste input:

{
"images": [
"https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg",
"https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png"
],
"maxMatchesPerImage": 60
}

Unsupported inputs

  • Web pages instead of images. A product page or an Instagram post URL returns HTML, not a picture. Use the address of the image itself (right-click the picture, "Copy image address"). Such links come back as an image_unreadable row.
  • Keyword searches and product links. For those, use AliExpress Scraper or AliExpress Product Details Scraper.
  • Images behind a login. The link must open in a private browser window.

Use Cases

WhoWhat they do with it
DropshippersFind every seller of a trending product from one photo, compare prices and order counts
Ecommerce sourcing teamsMatch their own catalogue photos to AliExpress suppliers and unit prices, then check stock and shipping with product details
Price monitoringRe-run the same images on a schedule and watch the cheapest match move
Brand protectionSpot listings that reuse or imitate a product photo, ranked by similarity
Marketplace analystsSee which look-alike products sell, at what discount, and since when they are listed
Agencies and tool buildersAdd "find it on AliExpress" to an app through the Apify API

How It Works

How AliExpress Image Search Scraper works

  1. Each image is downloaded (or decoded from the data URL) and re-encoded as a JPEG of at most 200 KB.
  2. The JPEG is uploaded to AliExpress's search by image, which returns an id for the uploaded file.
  3. The results page for that id is loaded through a residential connection whose AliExpress data centre holds the file. If the first one cannot read it, the actor moves to another exit and remembers what worked for the rest of the run.
  4. Result pages (60 cards each) are read until your limit is reached or AliExpress runs out of new products. Products repeated across pages are dropped.
  5. With includeDetails, each match's product data (variants, stock, shipping, seller) is fetched from AliExpress's product API before the row is written.
  6. Every distinct product becomes one row, in AliExpress's ranking order.

Input Configuration

FieldTypeDefaultDescription
imagesarray of stringsemptyImage links or data:image/... URLs, one per line. One search per image. Give this, uploadedImages, or both.
uploadedImagesarray (file upload)emptyPhotos uploaded from your computer in the input form. Searched like the links.
maxMatchesPerImageinteger60Products to collect per image, 1-1000. Most images have 100-200 distinct matches; the search stops early when AliExpress runs out.
sortBystringbest_matchbest_match (AliExpress's visual ranking), orders, price_asc or price_desc.
minSimilarityinteger0Leave out matches whose visualSimilarity is below this, 0-100. Near-identical listings score 90+.
includeDetailsbooleanfalseAdd product details to every match: variants with price and stock, shipping options and delivery days for shipTo, seller card, specs, images, video. One extra request per match; charged per match whose details come back.
currencystringUSDCurrency for every price (31 currencies).
shipTostringUSTwo-letter country code that prices, promotions and shipping are quoted for (55 countries).
languagestringen_USLanguage of titles and card labels: en_US, ar_MA, de_DE, es_ES, fr_FR, it_IT, ja_JP, nl_NL, pl_PL, pt_BR, th_TH or tr_TR.
maxConcurrencyinteger3Images searched at the same time, 1-10.
proxyConfigurationobjectemptyLeave empty to use the actor's own connections. Fill in only to send traffic through your own proxy URLs.

Common scenarios

Cheapest close matches for one product photo, priced in euros for Germany:

{
"images": ["https://ae-pic-a1.aliexpress-media.com/kf/S855220c50df546d5bab115643d3982d6R.jpg"],
"sortBy": "price_asc",
"minSimilarity": 80,
"shipTo": "DE",
"currency": "EUR"
}

Best sellers that look like a list of catalogue photos:

{
"images": [
"https://example.com/catalogue/lamp-01.jpg",
"https://example.com/catalogue/lamp-02.jpg"
],
"sortBy": "orders",
"maxMatchesPerImage": 30
}

Sellers, stock and shipping to France for the closest matches, titles in French:

{
"images": ["https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg"],
"maxMatchesPerImage": 20,
"minSimilarity": 85,
"includeDetails": true,
"shipTo": "FR",
"currency": "EUR",
"language": "fr_FR"
}

Every match AliExpress has for an image:

{
"images": ["https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg"],
"maxMatchesPerImage": 1000
}

Output Overview

One row per matched product with status: "ok". Prices are numbers in the run's currency, with AliExpress's printed versions in priceText and originalPriceText. Fields AliExpress leaves out for a card (no rating yet, no sales yet) are null, never guessed.

With includeDetails, each match also carries a details object (described below); without it, details is null.

An image without matches produces one row with status set to image_unreadable, upload_failed, no_results or failed, an error sentence, and empty product fields. Only ok rows count as matches.

The dataset's Overview tab shows image number, rank, similarity, highlight, title, link, orders, rating, discount, prices and Choice in a table; export to JSON, CSV, Excel or XML from there or from the API.

Output Samples

A match for the first image of a run, best-match order, US / USD (real row, 2026-10-24, categoryIds shortened):

{
"status": "ok",
"error": null,
"searchImageIndex": 1,
"searchImage": "https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg",
"position": 2,
"visualSimilarity": 96.1,
"highlight": null,
"matchesReported": 163,
"shipTo": "US",
"currency": "USD",
"productId": "1005012800262062",
"title": "10-100Pcs Artificial Strawberries Fake Plastic Fruit for Home Kitchen Garden Decoration Photo Props Christmas Party DIY Decor",
"url": "https://www.aliexpress.com/item/1005012800262062.html",
"imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg",
"skuId": "12000059354699777",
"categoryIds": ["15", "100001824", "..."],
"listedDate": "2026-07-23",
"shipFrom": "CN",
"orders": 79,
"sold": "79 sold",
"rating": 5,
"isChoice": true,
"tags": ["$1.04 each, ≥ 2 pieces", "New shoppers save $4.05"],
"originalPrice": 5.14,
"discountPercent": 78,
"price": 1.09,
"unitPrice": 0.11,
"unit": "pc",
"originalPriceText": "US $5.14",
"priceText": "US $1.09",
"details": null,
"searchedAt": "2026-10-24T11:59:32.581Z"
}

The status row for a link that is not an image (product fields omitted, all null):

{
"status": "image_unreadable",
"error": "could not download the image (HTTP 400)",
"searchImageIndex": 5,
"searchImage": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Adidas_Superstar_shoes.jpg/640px-Adidas_Superstar_shoes.jpg",
"shipTo": "US"
}

The details object of the same product with includeDetails, ship-to DE in EUR (real, 2026-10-25; lists cut to one entry and a few store fields left out, the product had 6 variants, 10 specs and 6 images):

"details": {
"status": "ok",
"statusReason": null,
"price": { "min": 2.85, "max": 19.39 },
"originalPrice": { "min": null, "max": null },
"reviewCount": 2,
"totalStock": 236,
"shipsToCountry": true,
"store": {
"id": "1102773079",
"name": "Shop1102672186 Store",
"url": "https://www.aliexpress.com/store/1102773079",
"positiveRate": "95.0%",
"soldLast180Days": "40,000+",
"country": "China",
"openedAt": "2023-04-13 05:52:44",
"topRatedSeller": false
},
"shipping": [
{
"method": "AliExpress Selection Standard Shipping",
"code": "CAINIAO_FULFILLMENT_STD",
"carrier": "AliExpress Selection Standard",
"fee": 1.99,
"freeShipping": false,
"currency": "EUR",
"shipFrom": "China",
"shipFromCode": "CN",
"shipTo": "DE",
"deliveryDaysMin": 5,
"deliveryDaysMax": 8,
"estimatedDelivery": "Oct. 29 – Nov. 01",
"tracking": true,
"available": true
}
],
"skus": [
{
"skuId": "12000059354699777",
"attributes": {
"Size": "3X3.5CM",
"Color": "10PCS"
},
"price": 2.85,
"originalPrice": null,
"stock": 18,
"maxBuyCount": 18,
"available": true,
"image": "https://ae-pic-a1.aliexpress-media.com/kf/Se524df9463294921a7c4221133cdb7c1O.jpg"
}
],
"attributes": [
{
"name": "Applications",
"value": "Birthday,Housewarming Party"
},
{
"name": "Purpose",
"value": "Home Decoration"
}
],
"images": [
"https://ae-pic-a1.aliexpress-media.com/kf/Se524df9463294921a7c4221133cdb7c1O.jpg"
],
"video": null,
"categoryPath": "15/100001824/200298145/200300144"
}

Key Output Fields

Match

  • searchImage, searchImageIndex: which input image the row belongs to
  • position: rank in AliExpress's results, from 1
  • visualSimilarity: 0-100, how alike the product photo and your image are
  • highlight: AliExpress's card label, such as "Best similar item", "Top selling item" or "Best priced item"
  • matchesReported: how many results AliExpress reports for the image

Product

  • productId, title, url, imageUrl, skuId
  • categoryIds: category path, top level first
  • listedDate: when the listing went live
  • shipFrom: country the item ships from

Demand and trust

  • orders: exact order count where AliExpress sends one, else the number in sold
  • sold: as AliExpress prints it
  • rating: out of 5
  • isChoice: AliExpress Choice listing

Price

  • originalPrice, discountPercent, price: before discount, the cut, and what you pay, all in currency
  • unitPrice, unit: price per piece on multi-piece listings, and what it is per (e.g. "pc")
  • originalPriceText, priceText: as printed by AliExpress
  • tags: selling-point labels such as bulk-buy prices, coin discounts, delivery dates

Product details (includeDetails)

  • details.status: ok, unavailable (no longer sold), not_found (removed) or failed; only ok is charged
  • details.store: seller name, link, positive feedback, sales in the last 180 days, country, store age, top-rated flag
  • details.skus, details.skuProperties: every variant with its attributes, price, stock and purchase limit
  • details.shipping, details.shipsToCountry: carriers, fee, delivery days and dates for shipTo
  • details.totalStock, details.price, details.originalPrice: stock and price range across variants
  • details.attributes, details.certifications, details.images, details.video, details.descriptionUrl, details.categoryPath, details.reviewCount

Run

  • status, error, shipTo, searchedAt

FAQ

The address of the picture itself. On most sites, right-click the image and choose "Copy image address". A link to a web page returns an image_unreadable row.

How many matches does one image give?

AliExpress usually has 100 to 200 distinct products per image. The first page holds 60; later pages repeat part of the earlier ones, and the actor keeps only new products. It stops when AliExpress has nothing new, even if maxMatchesPerImage is higher.

What does visualSimilarity mean?

It is AliExpress's own image-model score for how alike the listing photo and your image are, scaled to 0-100. The exact same photo scores about 95-97; the same product shot differently is often 80-90; look-alikes in the same category sit in the 60s and 70s. minSimilarity filters on it.

Is the order the same as on the AliExpress website?

With sortBy: best_match, yes: rows keep AliExpress's ranking, which blends similarity with sales and price, so position 1 is not always the highest visualSimilarity.

Why do prices differ from what I see in my browser?

Prices depend on the ship-to country, currency and new-buyer promotions. Set shipTo and currency to match your market. The cards show the lowest variant price; AliExpress Product Details Scraper returns every variant with its own price and stock.

Does it return store names, stock or shipping fees?

Yes, with includeDetails: true, from 8 November 2026 (a run that asks for details before then logs a warning and returns everything else). Search cards do not carry them, so the actor makes one extra request per match to AliExpress's product API and adds a details object: the store, every variant with price and stock, and the shipping options for your shipTo country. It takes longer per image and is charged per match whose details come back.

Can I get titles in another language?

Yes: set language, e.g. de_DE or ja_JP. Prices and shipping still follow currency and shipTo.

Can I upload photos instead of linking them?

Yes. In the input form, use "Or upload photos"; through the API, pass any reachable image link or a data:image/...;base64, string in images.

What happens when an image fails?

It gets one row with a status other than ok and an error sentence, and it is not charged. The rest of the run carries on.

How am I charged?

One image-search event for each image that returns matches (this covers its first results page), and one results-page event for each further page that adds matches. With includeDetails, one match-details event per match whose details come back. Images that cannot be read or return nothing are free, and so are details AliExpress refuses or marks unavailable. Prices are on the Pricing tab.

Support

Found a bug or need a field? Open an issue on the Issues tab or email muhamed.didovic@gmail.com.

Additional Services

Need image matching against your own catalogue, a scheduled price watch on a set of photos, or results pushed to your database or webhook? Email muhamed.didovic@gmail.com for custom work.

Explore More Scrapers

Full list at apify.com/memo23.

🤖 For AI Agents & LLM Apps

Quick reference for agents calling this actor through the Apify MCP server or the Apify API (actor: memo23/aliexpress-image-search-scraper).

Purpose: reverse image search on AliExpress: one image in, the matching AliExpress products out, ranked, with a 0-100 visual similarity score.

Minimal input:

{ "images": ["https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg"], "maxMatchesPerImage": 20 }

Output: one dataset row per matched product: status, error, searchImageIndex, searchImage, position, visualSimilarity, highlight, matchesReported, shipTo, currency, productId, title, url, imageUrl, skuId, categoryIds, listedDate, shipFrom, orders, sold, rating, isChoice, tags, originalPrice, discountPercent, price, unitPrice, unit, originalPriceText, priceText, details {status, store, skus, shipping, totalStock, attributes, images, ...}, searchedAt.

Behaviors an agent should know:

  • images must be direct image URLs or data:image/...;base64, strings, not web pages.
  • Filter rows on status == "ok"; other statuses are one explanation row per failed image.
  • Set maxMatchesPerImage to what you need; one image yields at most about 100-200 distinct products.
  • minSimilarity: 85 keeps close matches only; 0 keeps everything.
  • includeDetails: true adds seller, variants, stock and shipping per match (one extra request each, slower); language sets the title language.
  • Billing: image-search per image with matches (first page included), results-page per further page with new matches, match-details per match with details; failed images and refused details are free.
  • A run takes roughly 5-15 seconds per image with default settings.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by AliExpress, Alibaba.com Singapore E-Commerce Private Limited, Alibaba Group Holding Limited or any of their subsidiaries. All trademarks mentioned are the property of their respective owners.

The scraper reads only publicly available AliExpress search results, the same ones any visitor sees after using the website's search by image. It does not log in, use paid features or reach content behind the AliExpress account wall. The images you submit are uploaded to AliExpress's image search to run the search, so only submit images you have the right to use. Users are responsible for making sure their use complies with AliExpress's Terms of Use, applicable data-protection law (GDPR, CCPA and others) and their own organisation's obligations.


SEO Keywords

aliexpress image search scraper, aliexpress search by image, aliexpress reverse image search, aliexpress photo search API, search aliexpress by photo, Apify aliexpress, find product by image, reverse image search products, visual product search, image to product finder, dropshipping product finder, aliexpress supplier finder, product sourcing by photo, aliexpress price comparison, similar products finder, aliexpress price monitoring, ecommerce image matching, counterfeit listing detection, marketplace product intelligence, china sourcing data