{
  "openapi": "3.0.1",
  "info": {
    "title": "AliExpress Category Rank Tracker: Bestseller Movers & Newcomers",
    "description": "Track AliExpress category bestsellers on a schedule and see what changed since the last run: rank change, new entrants, dropped products, price changes and orders gained per day. Up to 50 categories, 600 deep, with filters. Sponsored cards stay out of the rank. No login. Export JSON, CSV, Excel.",
    "version": "0.2",
    "x-build-id": "htsiOIBLsqAZcWRhs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~aliexpress-category-rank-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-aliexpress-category-rank-tracker",
        "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-category-rank-tracker/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-aliexpress-category-rank-tracker",
        "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-category-rank-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-aliexpress-category-rank-tracker",
        "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": {
          "categoryUrls": {
            "title": "Category links",
            "type": "array",
            "description": "AliExpress category or search results pages to track, one link per row. Copy the link from your browser after opening the category on aliexpress.com. Every link gets its own ranking and its own history.",
            "default": [
              {
                "url": "https://www.aliexpress.com/w/wholesale-phone-case.html?categoryBrowseId=5090301"
              }
            ],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "rankBy": {
            "title": "Rank products by",
            "enum": [
              "orders",
              "bestMatch",
              "priceLow",
              "priceHigh",
              "rating",
              "newest"
            ],
            "type": "string",
            "description": "The order that decides each product's rank. Most orders is the most stable choice for tracking over time. Best match follows AliExpress relevance and moves around more between visits. Rating and Newest re-rank the top products by most orders.",
            "default": "orders"
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "number",
            "description": "Only rank products priced at or above this amount, in the currency AliExpress shows. AliExpress applies this limit, so ranks are counted inside the price range. Leave empty for no lower limit."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "number",
            "description": "Only rank products priced at or below this amount, in the currency AliExpress shows. Ranks are counted inside the price range. Leave empty for no upper limit."
          },
          "minRating": {
            "title": "Minimum star rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep only products rated at or above this value (0 to 5). Products with no rating yet are hidden when this is set. Leave empty to keep everything."
          },
          "minOrders": {
            "title": "Minimum orders",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products with at least this many orders in total. Leave empty to keep everything."
          },
          "choiceOnly": {
            "title": "AliExpress Choice only",
            "type": "boolean",
            "description": "Keep only products with the AliExpress Choice badge.",
            "default": false
          },
          "shipFromCountries": {
            "title": "Ships from",
            "type": "array",
            "description": "Keep only products dispatched from these countries. Use two-letter codes such as US, ES or CN, one per row. Leave empty for all origins.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxDeliveryDays": {
            "title": "Latest delivery in days",
            "minimum": 1,
            "maximum": 90,
            "type": "integer",
            "description": "Keep only products whose slowest estimated delivery is within this many days. Products without a delivery estimate are hidden when this is set."
          },
          "newListingsDays": {
            "title": "Listed within the last days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep only products first listed on AliExpress within this many days. Useful for spotting new products that already sell. Leave empty for all ages."
          },
          "includeSponsored": {
            "title": "Include sponsored cards",
            "type": "boolean",
            "description": "Also return the paid placements AliExpress mixes into the page. They are marked as sponsored and never get a rank, so they cannot distort your rankings.",
            "default": false
          },
          "trackHistory": {
            "title": "Compare with the last run",
            "type": "boolean",
            "description": "Remember each ranking and compare the next run with it. This adds previous rank, rank change, new entrants, price change and orders gained. Turn it on for scheduled runs.",
            "default": true
          },
          "monitorScope": {
            "title": "Watch name",
            "type": "string",
            "description": "An optional name for this watch, for example weekly-phone-cases. Runs that share a name share their history, even if you change the depth or price limits later. Leave empty to let the Actor pick one from your settings.",
            "default": ""
          },
          "changesOnly": {
            "title": "Return changes only",
            "type": "boolean",
            "description": "After the first run, return only new entrants, products that moved, and products whose price changed. The full ranking is still saved for the next comparison.",
            "default": false
          },
          "minRankMove": {
            "title": "Smallest rank move that counts",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Used with Return changes only. A product counts as moved when its rank changed by at least this many places.",
            "default": 1
          },
          "includeDropped": {
            "title": "Include products that dropped out",
            "type": "boolean",
            "description": "Add a row for each product that was in the previous top list and has now fallen out of it.",
            "default": true
          },
          "maxItems": {
            "title": "Products per category",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "How deep to rank each category: the top N products. A larger number reads more result pages and takes longer. 25 reads one page.",
            "default": 25
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxy used to read AliExpress. The default US datacenter proxy shows prices in US dollars. Choose another country to see that country's prices and delivery estimates. If the connection is blocked, the Actor retries once through a residential proxy when your plan includes it, and the run summary says so.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}