{
  "openapi": "3.0.1",
  "info": {
    "title": "Taobao Scraper [$1/1K💰] | Tmall Prices | Shops | SKUs",
    "description": "Scrape Taobao and Tmall products by keyword, category or URL: prices in CNY, shop scores, category paths and SKUs. Search in English or Chinese, export to JSON or CSV.",
    "version": "0.1",
    "x-build-id": "zrT4ubi865BSHe6HX"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ahmed_jasarevic~taobao-tmall-fast-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ahmed_jasarevic-taobao-tmall-fast-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/ahmed_jasarevic~taobao-tmall-fast-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ahmed_jasarevic-taobao-tmall-fast-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/ahmed_jasarevic~taobao-tmall-fast-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ahmed_jasarevic-taobao-tmall-fast-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": {
          "startUrls": {
            "title": "Product URLs or item ids",
            "type": "array",
            "description": "Taobao/Tmall product URLs, world.taobao.com item URLs, or bare numeric item ids. Keyword and category page URLs pasted here are treated as search keywords/categories.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Keywords in Chinese or English. The Actor starts with the 20 public results for each keyword, then automatically queries price bands and deduplicates to fill Max products. English queries are translated to Chinese when translation is enabled.",
            "items": {
              "type": "string"
            }
          },
          "searchSort": {
            "title": "Sort keyword results",
            "enum": [
              "relevance",
              "sales",
              "price_desc"
            ],
            "type": "string",
            "description": "Relevance uses the public keyword page as-is. Highest price first is sorted client-side. Best selling requests Taobao's sorted page when available, but public pages no longer expose sales counts.",
            "default": "relevance"
          },
          "tmallOnly": {
            "title": "Tmall only",
            "type": "boolean",
            "description": "Keep only Tmall listings. Each product page is read to determine the platform, so this requires detail scraping and may return fewer items.",
            "default": false
          },
          "translateKeywords": {
            "title": "Translate English keywords to Chinese",
            "type": "boolean",
            "description": "English keywords are translated with a free Google Translate endpoint before searching. Rows keep the original keyword in sourceQueryOriginal.",
            "default": true
          },
          "categoryIds": {
            "title": "Category ids",
            "type": "array",
            "description": "Taobao category ids (the number in world.taobao.com/category/<id>.htm). Each returns up to 20 products; add multiple category ids for more coverage.",
            "items": {
              "type": "string"
            }
          },
          "scrapeDetails": {
            "title": "Add product-page detail to search results",
            "type": "boolean",
            "description": "For products found by keyword or category, fetch the product page to add seller id, shop scores, catalogue size, ship-from city and platform. One extra HTTP request per product; no browser.",
            "default": true
          },
          "includeVariants": {
            "title": "Add SKU prices and stock",
            "type": "boolean",
            "description": "Try to read the PC product page embedded SSR payload and add SKUs with price, stock, availability and image. Taobao now often shows a login wall on PC pages; when blocked, the base product row is still saved without variants.",
            "default": false
          },
          "maxItems": {
            "title": "Max products",
            "minimum": 1,
            "type": "integer",
            "description": "Upper bound on product rows, not a guarantee. Keyword searches expand across public price bands and deduplicate to fill this limit; category pages expose about 20 products each, and literal next-page requests require a Taobao login.",
            "default": 100
          },
          "priceMin": {
            "title": "Min price (CNY)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products priced at or above this value, in yuan. Products with no price are kept."
          },
          "priceMax": {
            "title": "Max price (CNY)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products priced at or below this value, in yuan."
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How many HTTP requests to run at once. Default 16. Try 20-24 for faster detail scraping if your residential proxy is stable; lower it to 6-8 if Taobao or the proxy starts returning errors/CAPTCHAs.",
            "default": 16
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Taobao serves public pages reliably only to residential IPs, preferably US. The default uses Apify Residential proxy in the US. Datacenter proxies are usually blocked. Remove the proxy only for testing from an allowed network.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}