{
  "openapi": "3.0.1",
  "info": {
    "title": "AliExpress Scraper: Products, Prices and Shipping per Country",
    "description": "AliExpress scraper for keywords, category pages and product URLs: every SKU with its price and stock, the shipping options to each country you list, the store and ratings. One row per product and ship-to country; products not sold there are free. Price tracker mode: only new or changed products.",
    "version": "0.1",
    "x-build-id": "aqlyzHdmWrii15kdp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/agenttoolworks~aliexpress-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-agenttoolworks-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/agenttoolworks~aliexpress-scraper/runs": {
      "post": {
        "operationId": "runs-sync-agenttoolworks-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/agenttoolworks~aliexpress-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-agenttoolworks-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": "Search terms, one per line, each read as AliExpress's own search page lists it (60 products per page, most relevant first). A product URL or ID typed here is read as a product, with a note.",
            "items": {
              "type": "string"
            }
          },
          "categoryUrls": {
            "title": "Category or search URLs",
            "type": "array",
            "description": "AliExpress category pages (https://www.aliexpress.com/category/63705/earphones-headphones.html) or search pages you have open (/w/wholesale-...), from any AliExpress country site. Their own sort and filters are kept; the market is the first ship-to country below.",
            "items": {
              "type": "string"
            }
          },
          "productUrls": {
            "title": "Product URLs or IDs",
            "type": "array",
            "description": "Product pages (https://www.aliexpress.com/item/1005006678208098.html, aliexpress.us and country sites too) or bare product IDs, one per line. Each is read in detail for every ship-to country. Short share links (a.aliexpress.com/...) are not followed: open them and paste the /item/ address.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max products per keyword or category",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many products for each keyword or category page. With details on, each one gives a row per ship-to country, charged as a detailed product; with details off, a search row. AliExpress lists at most 60 pages per search (about 3,000 products): for more, split into categories or narrower keywords. Product URLs are always read.",
            "default": 100
          },
          "includeDetails": {
            "title": "Include product details",
            "type": "boolean",
            "description": "On (the default): every product found by a keyword or category is read in detail, as a product URL is: all SKUs with price and stock, shipping options, store, rating, reviews count, orders, images and specifications, charged as a detailed product. Off: the search cards only (price, rating, units sold, ship-from), faster and charged as search results.",
            "default": true
          },
          "shipTo": {
            "title": "Ship to",
            "type": "array",
            "description": "Countries to read each product for: two-letter codes (US, GB, DE) or English names (Germany), any case. Each country gives its own row with its own price, availability and shipping options. A product AliExpress does not sell to a country gives a free row saying so. With details off, search results are read for the first country only.",
            "default": [
              "US"
            ],
            "items": {
              "type": "string"
            }
          },
          "currency": {
            "title": "Currency",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string",
            "description": "Three-letter code, sent to AliExpress as its own currency menu does. Measured in USD, EUR and GBP: rows and shipping fees came back in the currency asked. Each row says the currency AliExpress answered in, and the run summary notes any difference.",
            "default": "USD"
          },
          "onlyChanges": {
            "title": "Only new or changed products",
            "type": "boolean",
            "description": "For scheduled runs: return and charge only the products this monitor has not seen before, or whose price or stock status (in stock, sold out) changed on a SKU since, per ship-to country. Each row lists its changes. The products seen are kept in a key-value store of your account named aliexpress-monitor-<monitor name>, up to 20,000 products per country and 1,100,000 SKU prices in all (past that, the ones seen longest ago and not read again are forgotten). The first run returns everything it reads.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Names the memory of Only new or changed products, so separate schedules keep separate memories (letters, digits and hyphens). Empty means 'default'."
          },
          "concurrency": {
            "title": "Parallel IPs",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Products read at the same time, each from its own IP. 1,000 products took 9 minutes on 8 and 20 minutes on 4, with fewer refusals on 8 (2026-10-27). 9 and 10 are allowed and not measured.",
            "default": 8
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}