{
  "openapi": "3.0.1",
  "info": {
    "title": "AliExpress Image Search Scraper: Find Products by Photo & Price",
    "description": "Search AliExpress by photo. Send up to 100 image links and get every matching product: price in your currency, orders sold, rating, discount, free shipping and ship-from. Filter and sort hundreds of matches per image, choose from 42 ship-to countries and track new listings and price drops. No login.",
    "version": "0.1",
    "x-build-id": "SeeAweIPrXmaG11Jq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~aliexpress-image-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-aliexpress-image-search-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/getascraper~aliexpress-image-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-aliexpress-image-search-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/getascraper~aliexpress-image-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-aliexpress-image-search-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "imageUrls": {
            "title": "Image links",
            "type": "array",
            "description": "Direct links to the pictures you want to match on AliExpress (JPG, PNG, WebP, AVIF or GIF), one per row. Base64 data URLs (data:image/jpeg;base64,...) work too, and so does a link to a file saved in an Apify key-value store. Up to 100 images per run; every image is searched separately.",
            "default": [
              "https://ae-pic-a1.aliexpress-media.com/kf/Sbf5a5b9337a442c99336f7e29821977fx.jpg"
            ],
            "items": {
              "type": "string"
            }
          },
          "shipTo": {
            "title": "Ship to country",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "NZ",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "PT",
              "BE",
              "AT",
              "IE",
              "PL",
              "SE",
              "NO",
              "DK",
              "CH",
              "CZ",
              "HU",
              "RO",
              "UA",
              "TR",
              "IL",
              "SA",
              "AE",
              "EG",
              "ZA",
              "BR",
              "MX",
              "CL",
              "CO",
              "JP",
              "KR",
              "SG",
              "TH",
              "MY",
              "PH",
              "VN",
              "HK",
              "TW"
            ],
            "type": "string",
            "description": "The destination market AliExpress prices and lists the matches for. It decides the currency shown by default, which items carry a free shipping label and which offers appear.",
            "default": "US"
          },
          "currency": {
            "title": "Price currency",
            "enum": [
              "auto",
              "USD",
              "GBP",
              "CAD",
              "AUD",
              "NZD",
              "EUR",
              "PLN",
              "SEK",
              "NOK",
              "DKK",
              "CHF",
              "CZK",
              "HUF",
              "RON",
              "UAH",
              "TRY",
              "ILS",
              "SAR",
              "AED",
              "EGP",
              "ZAR",
              "BRL",
              "MXN",
              "CLP",
              "COP",
              "JPY",
              "KRW",
              "SGD",
              "THB",
              "MYR",
              "PHP",
              "VND",
              "HKD",
              "TWD"
            ],
            "type": "string",
            "description": "Currency for every price in the results. Leave on automatic to use the usual currency of the ship-to country, or pick another one, for example euros for a United States destination.",
            "default": "auto"
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "number",
            "description": "Keep only matches priced at or above this amount, in the currency chosen above. Applied to every collected match, so the right number of results is still returned when many cheap items are skipped."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "number",
            "description": "Keep only matches priced at or below this amount, in the currency chosen above. Handy for finding cheaper sources of a product."
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep only matches with a star rating of at least this value (0 to 5). AliExpress shows a rating on only part of the cards in image search, so matches without a rating are left out when this is set."
          },
          "minOrders": {
            "title": "Minimum orders sold",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only matches with at least this many orders sold. Cards that do not show an order count are left out when this is set, which is useful to find proven sellers."
          },
          "minDiscountPercent": {
            "title": "Minimum discount (%)",
            "minimum": 0,
            "maximum": 99,
            "type": "integer",
            "description": "Keep only matches discounted by at least this percentage compared with the crossed-out list price."
          },
          "freeShippingOnly": {
            "title": "Free shipping only",
            "type": "boolean",
            "description": "Keep only matches that AliExpress labels with free shipping for the chosen destination.",
            "default": false
          },
          "choiceOnly": {
            "title": "AliExpress Choice only",
            "type": "boolean",
            "description": "Keep only matches that carry the AliExpress Choice badge (fast, reliable delivery).",
            "default": false
          },
          "shipFrom": {
            "title": "Ships from",
            "enum": [
              "any",
              "CN",
              "US",
              "GB",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "PL",
              "BR",
              "AU",
              "RU",
              "TR"
            ],
            "type": "string",
            "description": "Keep only matches that dispatch from this country, for example a local warehouse for faster delivery. Most AliExpress offers ship from China.",
            "default": "any"
          },
          "titleIncludes": {
            "title": "Title must include (any of)",
            "type": "array",
            "description": "Keep only matches whose title contains at least one of these words or phrases. Not case sensitive.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "titleExcludes": {
            "title": "Title must not include",
            "type": "array",
            "description": "Drop matches whose title contains any of these words or phrases, for example to remove accessories or replicas. Not case sensitive.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort matches by",
            "enum": [
              "best_match",
              "orders",
              "price_asc",
              "price_desc",
              "discount",
              "rating"
            ],
            "type": "string",
            "description": "Order of the result rows. Best match keeps AliExpress's visual ranking. The other options sort all collected matches of an image, not just the first 60 cards, so Most orders really returns the best sellers among everything found.",
            "default": "best_match"
          },
          "maxResultsPerImage": {
            "title": "Matches per image",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many matching products to return for each image after filters. AliExpress offers up to about 600 distinct matches per image, so values above that simply return everything found.",
            "default": 20
          },
          "maxPagesPerImage": {
            "title": "Result pages to scan per image",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "Safety limit on how many result pages (about 60 matches each) are read for one image while looking for enough matches that pass your filters. AliExpress returns up to about 600 matches per image (10 pages). Raise it together with Matches per image or when filters are strict.",
            "default": 5
          },
          "dedupeAcrossImages": {
            "title": "Remove products found for several images",
            "type": "boolean",
            "description": "When searching many photos, return each AliExpress product only once, under the first image that found it. Turn on for sourcing lists with several angles of the same item.",
            "default": false
          },
          "trackChanges": {
            "title": "Track changes between runs",
            "type": "boolean",
            "description": "Save a snapshot of the matches per image and compare the next run with it. Rows then show whether a product is new, got cheaper or more expensive, how its rank moved and how many orders it gained. Schedule the Actor to monitor an image over time.",
            "default": false
          },
          "onlyChanges": {
            "title": "Only return changed products",
            "type": "boolean",
            "description": "With change tracking on, return only products that are new or changed in price since the previous run and skip the unchanged ones.",
            "default": false
          },
          "monitorScope": {
            "title": "Monitor name",
            "type": "string",
            "description": "A label that keeps separate monitors apart. Use the same name on every scheduled run of the same watch list and a different name for a different one.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Connection used to reach AliExpress. The default datacenter connection works for every ship-to country, because the destination market is set by the search itself.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "BUYPROXIES94952"
              ]
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}