{
  "openapi": "3.0.1",
  "info": {
    "title": "AliExpress Scraper | Products, Prices and Sales",
    "description": "AliExpress scraper (速卖通, 全球速卖通) priced for your ship-to country: card and seller price, exact units sold, ratings and written reviews, star breakdown, delivery fee, free delivery threshold, delivery dates, free returns. Keywords, links or product IDs, Choice and free shipping filters. No account.",
    "version": "1.0",
    "x-build-id": "yR8xnzpK4chtjCikg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~aliexpress-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-aliexpress-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/silentflow~aliexpress-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-aliexpress-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/silentflow~aliexpress-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-aliexpress-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": {
          "keywords": {
            "title": "🔎 Keywords",
            "type": "array",
            "description": "What to search on AliExpress, one keyword per line, as you would type it in the search bar (<code>wireless earbuds</code>, <code>yoga mat</code>, <code>phone case</code>). English keywords match best. A keyword lists 60 products per page in the order shoppers see them, and a common keyword runs to thousands of products.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔗 AliExpress links",
            "type": "array",
            "description": "Links copied from AliExpress, one per line:<br><b>Search results</b> (<code>https://www.aliexpress.com/w/wholesale-yoga-mat.html?SortType=total_tranpro_desc</code>) or a category page: read page by page, with the sort and price filters you set on AliExpress kept as they are.<br><b>Product pages</b> (<code>https://www.aliexpress.com/item/1005009463232289.html</code>): the product is saved as one row, with its review count. Links from aliexpress.us and regional sites work too.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "productIds": {
            "title": "🆔 Product IDs",
            "type": "array",
            "description": "AliExpress product IDs, one per line: the number in a product link (<code>1005009463232289</code>). Each ID is saved as one row, with the product's review count. A product AliExpress search does not show right now still ships its title and images, with price and sales left empty. A product that no longer exists is skipped and named in the log.",
            "items": {
              "type": "string"
            }
          },
          "shipTo": {
            "title": "🌍 Ship to",
            "type": "string",
            "description": "The country prices and delivery are shown for. Pick it in the list, or type its code (<code>GB</code>, <code>GBR</code>) or its English name. <code>DE</code> shows the German market, with products shipped from warehouses in Europe next to the ones shipped from China. Applies to keywords, links and product IDs alike.",
            "default": "US"
          },
          "currency": {
            "title": "💱 Currency",
            "type": "string",
            "description": "The currency of every price in the rows (<code>EUR</code>, <code>GBP</code>). Leave it empty to pay in the currency of the ship-to country: euros for Germany, pounds for the United Kingdom. Each row names its currency, and the log says so when AliExpress prices a country in another one."
          },
          "maxItems": {
            "title": "🔢 Max products",
            "minimum": 1,
            "type": "integer",
            "description": "How many rows to save for the whole run. Product links and IDs are served first, then what is left is shared evenly across your keywords and search links: <code>100</code> with four keywords saves up to 25 products each. Cost scales with the rows delivered, so set it to what you need.",
            "default": 50
          },
          "sort": {
            "title": "↕️ Sort by",
            "enum": [
              "default",
              "orders",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "The order AliExpress lists products in. <b>Most sold</b> puts the bestsellers of a keyword first, the quickest way to find what already sells. Price sorting follows the price shown on the card.",
            "default": "default"
          },
          "minPrice": {
            "title": "💵 Min price",
            "minimum": 0,
            "type": "number",
            "description": "Lowest price you want, in the currency of the run, compared with the price shown on the product card (<code>5</code>). Leave empty for no floor."
          },
          "maxPrice": {
            "title": "💵 Max price",
            "minimum": 0,
            "type": "number",
            "description": "Highest price you want, in the currency of the run, compared with the price shown on the product card (<code>20</code>). Leave empty for no ceiling."
          },
          "keepOnly": {
            "title": "🎯 Only keep",
            "type": "array",
            "description": "Keep only the products that pass, the way the quick filters above AliExpress results do: <b>Choice</b> products, products with <b>free shipping</b> or stock already in the ship-to country, a rating floor, a sales floor. Pick several to combine them, and the strictest floor wins. A product the card shows no rating or sales for is left out, and a left-out product is never billed. Keywords and search links only: a product asked for by its link or ID is always kept.",
            "items": {
              "type": "string",
              "enum": [
                "choice",
                "free_shipping",
                "ships_from_country",
                "rating_4",
                "rating_4_5",
                "sold_100",
                "sold_1000",
                "sold_10000"
              ],
              "enumTitles": [
                "Choice products",
                "Free shipping",
                "Ships from the ship-to country",
                "Rated 4 stars and up",
                "Rated 4.5 stars and up",
                "100+ sold",
                "1,000+ sold",
                "10,000+ sold"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}