{
  "openapi": "3.0.1",
  "info": {
    "title": "AliExpress Products Finder [Simple to Use]",
    "description": "[UPDATED] Find and scrape AliExpress products by keyword, product URL, or reverse image search. Export product titles, prices, images, ratings, orders, store information, and listing URLs to structured JSON or CSV. Ideal for product research, price monitoring, dropshipping, and competitor analysis.",
    "version": "0.0",
    "x-build-id": "b5b65s0CoQbySDih3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ozer-studio~AliExpress-Products-Scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ozer-studio-AliExpress-Products-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/ozer-studio~AliExpress-Products-Scraper/runs": {
      "post": {
        "operationId": "runs-sync-ozer-studio-AliExpress-Products-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/ozer-studio~AliExpress-Products-Scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ozer-studio-AliExpress-Products-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",
        "required": [
          "searchMode"
        ],
        "properties": {
          "searchMode": {
            "title": "Search mode",
            "enum": [
              "keyword",
              "image",
              "urls"
            ],
            "type": "string",
            "description": "Choose how products should be found. Keyword search uses Search Queries, Reverse image search uses uploaded files or direct image URLs, and Direct product URLs uses productUrls.",
            "default": "keyword"
          },
          "searchTerms": {
            "title": "Search queries",
            "maxItems": 20,
            "type": "array",
            "description": "Product names or keywords to search on AliExpress. The preset query is monitors, which you can replace with your own search. Required when Search mode is Keyword search unless productUrls is provided.",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "default": [
              "monitors"
            ]
          },
          "productUrls": {
            "title": "AliExpress product URLs",
            "maxItems": 100,
            "type": "array",
            "description": "Direct AliExpress item links containing /item/...html. Do not paste an AliExpress search-results page here; use Search Queries for that. Required when Search Queries are not provided. JSON field name: productUrls.",
            "items": {
              "type": "string",
              "pattern": "^https?://"
            }
          },
          "maxProductsPerKeyword": {
            "title": "Maximum products per keyword",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum unique products collected separately for each keyword, not for the whole run.",
            "default": 50
          },
          "maxPagesText": {
            "title": "Maximum pages per keyword",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Maximum AliExpress pages processed separately for each keyword. The Actor stops sooner when the product target is reached.",
            "default": 1
          },
          "uploadedImages": {
            "title": "Product images",
            "maxItems": 20,
            "type": "array",
            "description": "Used only in Reverse image search. Upload up to 20 JPG, PNG, WebP, GIF, or BMP images. Each image is searched separately. For API or MCP use, add public URLs below.",
            "items": {
              "type": "string"
            }
          },
          "imageUrls": {
            "title": "Public product image URLs",
            "maxItems": 20,
            "type": "array",
            "description": "Direct, publicly accessible HTTP or HTTPS image-file URLs. AliExpress search pages and product pages are not images. Recommended for API and MCP clients.",
            "items": {
              "type": "string",
              "pattern": "^https?://"
            }
          },
          "maxProductsPerImage": {
            "title": "Maximum products per image",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Maximum unique products collected separately for each image, not for the whole batch.",
            "default": 20
          },
          "maxPagesImage": {
            "title": "Maximum pages per image",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Maximum image-result pages processed separately for each image. AliExpress currently exposes up to five pages in image search.",
            "default": 1
          },
          "skipFailedImages": {
            "title": "Skip failed images",
            "type": "boolean",
            "description": "Continue with the remaining images when one cannot be downloaded, uploaded, or searched. Disable to fail immediately.",
            "default": true
          },
          "useApifyProxy": {
            "title": "Use Apify Proxy",
            "type": "boolean",
            "description": "Recommended because AliExpress may challenge direct datacenter traffic, especially during multi-page or multi-image runs.",
            "default": true
          },
          "includeProductDetails": {
            "title": "Visit product pages for more details",
            "type": "boolean",
            "description": "After a keyword or image search, visit every accepted product page to add store information, more images, availability, and option groups. Slower than listing-only mode. Direct product URL mode always visits product pages.",
            "default": false
          },
          "failOnNoResults": {
            "title": "Strict failure mode",
            "type": "boolean",
            "description": "Enable for automations that should fail when the entire run produces no usable product rows. Leave disabled to finish with a warning and save diagnostics.",
            "default": false
          },
          "saveCsvFile": {
            "title": "Save CSV file",
            "type": "boolean",
            "description": "Save a named CSV in the run's key-value store in addition to the structured Apify dataset.",
            "default": true
          },
          "csvOutputMode": {
            "title": "CSV output mode",
            "enum": [
              "combined",
              "separate",
              "both"
            ],
            "type": "string",
            "description": "Choose one combined file, one file per search query/image/URL, or both. Used only when Save CSV file is enabled.",
            "default": "combined"
          },
          "csvFilename": {
            "title": "CSV filename",
            "minLength": 1,
            "maxLength": 160,
            "type": "string",
            "description": "Filename used when Save CSV file is enabled.",
            "default": "aliexpress_products.csv"
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}