# AliExpress Image Search Scraper — Find Products by Photo (`memo23/aliexpress-image-search-scraper`) Actor

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.

- **URL**: https://apify.com/memo23/aliexpress-image-search-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** E-commerce, AI, Automation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 image searches

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## AliExpress Image Search Scraper — Find Products by Photo

**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

| Input | Example |
|---|---|
| Direct image link | `https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg` |
| Image on any other site | `https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png` |
| Data URL | `data:image/png;base64,iVBORw0KGgo...` |
| Photo from your computer | the "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:

```json
{
    "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](https://apify.com/memo23/aliexpress-scraper) or [AliExpress Product Details Scraper](https://apify.com/memo23/aliexpress-product-details-scraper).
- **Images behind a login.** The link must open in a private browser window.

### Use Cases

| Who | What they do with it |
|---|---|
| Dropshippers | Find every seller of a trending product from one photo, compare prices and order counts |
| Ecommerce sourcing teams | Match their own catalogue photos to AliExpress suppliers and unit prices, then check stock and shipping with product details |
| Price monitoring | Re-run the same images on a schedule and watch the cheapest match move |
| Brand protection | Spot listings that reuse or imitate a product photo, ranked by similarity |
| Marketplace analysts | See which look-alike products sell, at what discount, and since when they are listed |
| Agencies and tool builders | Add "find it on AliExpress" to an app through the Apify API |

### How It Works

![How AliExpress Image Search Scraper works](https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-aliexpress-image-search.png)

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

| Field | Type | Default | Description |
|---|---|---|---|
| `images` | array of strings | empty | Image links or `data:image/...` URLs, one per line. One search per image. Give this, `uploadedImages`, or both. |
| `uploadedImages` | array (file upload) | empty | Photos uploaded from your computer in the input form. Searched like the links. |
| `maxMatchesPerImage` | integer | `60` | Products to collect per image, 1-1000. Most images have 100-200 distinct matches; the search stops early when AliExpress runs out. |
| `sortBy` | string | `best_match` | `best_match` (AliExpress's visual ranking), `orders`, `price_asc` or `price_desc`. |
| `minSimilarity` | integer | `0` | Leave out matches whose `visualSimilarity` is below this, 0-100. Near-identical listings score 90+. |
| `includeDetails` | boolean | `false` | Add 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. |
| `currency` | string | `USD` | Currency for every price (31 currencies). |
| `shipTo` | string | `US` | Two-letter country code that prices, promotions and shipping are quoted for (55 countries). |
| `language` | string | `en_US` | Language 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`. |
| `maxConcurrency` | integer | `3` | Images searched at the same time, 1-10. |
| `proxyConfiguration` | object | empty | Leave 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:

```json
{
    "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:

```json
{
    "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:

```json
{
    "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:

```json
{
    "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):

```json
{
    "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`):

```json
{
    "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):

```json
"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

#### What kind of link do I need?

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](https://apify.com/memo23/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](https://apify.com/memo23/aliexpress-image-search-scraper/issues) 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

- [**AliExpress Scraper**](https://apify.com/memo23/aliexpress-scraper): keyword and URL search with prices, sales, ratings and optional reviews
- [**AliExpress Product Details Scraper**](https://apify.com/memo23/aliexpress-product-details-scraper): every variant with price and stock, shipping to your country, seller stats
- [**1688 Wholesale Scraper**](https://apify.com/memo23/1688-wholesale-scraper): keyword and photo search on China's wholesale marketplace
- [**Alibaba Scraper**](https://apify.com/memo23/alibaba-scraper): products, MOQ and supplier data
- [**Temu Product Scraper**](https://apify.com/memo23/temu-scraper): prices, ratings and sales from Temu

Full list at [apify.com/memo23](https://apify.com/memo23).

### 🤖 For AI Agents & LLM Apps

Quick reference for agents calling this actor through the [Apify MCP server](https://mcp.apify.com) 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:**

```json
{ "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

# Actor input Schema

## `images` (type: `array`):

Links to photos, one per line: any direct image link (JPG, PNG, WebP, AVIF, GIF) or a data:image/... URL. Each image is one search. Large photos are shrunk before upload, the same way AliExpress's own search box does it.

## `uploadedImages` (type: `array`):

Photos from your computer, uploaded straight from this form (JPG, PNG, WebP and other common formats). Searched the same way as the links above; use either field or both.

## `maxMatchesPerImage` (type: `integer`):

Stop collecting products for an image after this many. The first results page holds 60; AliExpress usually has 100 to 200 distinct matches per image, and the search stops early when it runs out.

## `sortBy` (type: `string`):

Order of the matches. Best match is AliExpress's own visual ranking.

## `minSimilarity` (type: `integer`):

Leave out products whose photo is less alike your image than this, on AliExpress's own 0-100 similarity score. Near-identical listings score 90+, look-alikes 70-85. 0 keeps everything.

## `includeDetails` (type: `boolean`):

For every match, also fetch the product page data: each variant with its own price and stock, shipping options and delivery dates for the ship-to country, the seller card (store name, rating, positive feedback, store age), specs, all images and the video. One extra request per match, so runs take longer; charged per match whose details come back. Available from 8 November 2026. Default off.

## `currency` (type: `string`):

Currency for every price in the output, e.g. USD, EUR or GBP. Default USD.

## `shipTo` (type: `string`):

Country AliExpress quotes prices, promotions and shipping for, e.g. US, DE or GB. Default US.

## `language` (type: `string`):

Language of product titles and card labels, e.g. de_DE for German. Prices and shipping follow the two fields above. Default en_US (English).

## `maxConcurrency` (type: `integer`):

How many images are searched in parallel.

## `proxyConfiguration` (type: `object`):

Leave empty: the actor brings its own connections. Fill in only to route requests through your own proxy URLs.

## Actor input object example

```json
{
  "images": [
    "https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg"
  ],
  "maxMatchesPerImage": 60,
  "sortBy": "best_match",
  "minSimilarity": 0,
  "includeDetails": false,
  "currency": "USD",
  "shipTo": "US",
  "language": "en_US",
  "maxConcurrency": 3
}
```

# Actor output Schema

## `matches` (type: `string`):

All matches in the overview table.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "images": [
        "https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/aliexpress-image-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "images": ["https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg"] }

# Run the Actor and wait for it to finish
run = client.actor("memo23/aliexpress-image-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "images": [
    "https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg"
  ]
}' |
apify call memo23/aliexpress-image-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,memo23/aliexpress-image-search-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ltzgvH75kgCglY5tA/builds/DejdDrWQ6X4Qg5klO/openapi.json
