{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Shop Scraper | Products, Sellers and Creator Videos",
    "description": "Scrape TikTok Shop without an account: products with variants, stock and up to 1,000 reviews, the creator videos that sell them, every product of a store or a creator, keyword search in 6 markets, categories in 10, and price and sales changes between runs.",
    "version": "1.0",
    "x-build-id": "8sUXoeubCwHzMWDMw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~tiktok-shop-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-tiktok-shop-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~tiktok-shop-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-tiktok-shop-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~tiktok-shop-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-tiktok-shop-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": {
          "productUrls": {
            "title": "🔗 Product URLs or IDs",
            "type": "array",
            "description": "TikTok Shop products to scrape in full: variants with stock, prices, shipping and delivery, shop details, reviews, and in the US the creator videos that sell the product. Paste any product link (shop.tiktok.com, tiktok.com/shop, share links) or a bare product ID.",
            "items": {
              "type": "string"
            }
          },
          "searchKeywords": {
            "title": "🔎 Search keywords",
            "type": "array",
            "description": "Keywords to search the TikTok Shop catalog of the chosen market: United States, Singapore, Malaysia, Philippines, Thailand or Vietnam, in English or the local language. Each match comes back with its price, rating, sold count and shop. Turn on <b>Open every product in full</b> to get the complete record for each match.",
            "items": {
              "type": "string"
            }
          },
          "categoryUrls": {
            "title": "🗂️ Category URLs",
            "type": "array",
            "description": "TikTok Shop category pages, in any of the 10 markets. Browse to a category on shop.tiktok.com and paste its address. Each product of the category comes back with its price, rating, sold count and shop.",
            "items": {
              "type": "string"
            }
          },
          "storeUrls": {
            "title": "🏪 Stores and creators",
            "type": "array",
            "description": "Stores: paste a store link (shop.tiktok.com/us/store/..., tiktok.com/shop/store/...) or a seller ID, in the United States, United Kingdom, Mexico, Malaysia, Thailand, Vietnam or Japan. You get one row for the store, with its rating, followers, sales and estimated revenue, then every product it sells.<br><br>Creators: paste @username or a tiktok.com/@username link, read in the market chosen below. You get one row for the creator, then every TikTok Shop product their videos promote, with how many videos show it and their views.",
            "items": {
              "type": "string"
            }
          },
          "region": {
            "title": "🌍 Market",
            "enum": [
              "us",
              "gb",
              "mx",
              "my",
              "ph",
              "sg",
              "th",
              "vn",
              "jp",
              "id"
            ],
            "type": "string",
            "description": "TikTok Shop market for keyword searches, product IDs and seller IDs. Links that contain their market (shop.tiktok.com/gb/...) keep it. TikTok Shop has no keyword search in the United Kingdom, Mexico, Japan and Indonesia: use category links there.",
            "default": "us"
          },
          "maxItems": {
            "title": "🎯 Maximum products per search, category or store",
            "minimum": 0,
            "type": "integer",
            "description": "Cap on the products returned for each keyword, each category and each store. 0 means no cap.",
            "default": 0
          },
          "includeDetails": {
            "title": "🧾 Open every product in full",
            "type": "boolean",
            "description": "Off: search, category and store results come back as listing cards (price, rating, sold count, shop), the fastest way to map a niche.<br><br>On: every product found is opened in full, like a product link: variants with stock, shipping and delivery, shop scores, reviews, specifications and, in the US, the creator videos that sell it. Slower, and each product is billed as a full product instead of a listing card.",
            "default": false
          },
          "maxReviewsPerProduct": {
            "title": "💬 Reviews per product",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "How many reviews to collect for each product opened in full, newest first, up to 1,000. Each review comes with its rating, text, photos, variant, country and verified-purchase flag. 0 keeps the reviews shown on the product page (usually 3). The reviews are part of the product row: no extra charge, whatever their number.",
            "default": 0
          },
          "reviewFilter": {
            "title": "⭐ Which reviews",
            "enum": [
              "all",
              "5",
              "4",
              "3",
              "2",
              "1",
              "media",
              "verified"
            ],
            "type": "string",
            "description": "Collect every review, only one star rating (1-star reviews to study complaints, 5-star ones for testimonials), only reviews with photos or videos, or only verified purchases.",
            "default": "all"
          },
          "trackChanges": {
            "title": "📈 Track changes between runs",
            "type": "boolean",
            "description": "Remember every product's price, sales and stock, and on the next run with this option add what changed: previous price and price change, units sold since the last run and per day, stock change, and when the product was first seen. Works for products, searches, categories and stores in every market. Schedule the same input daily to follow a niche, a store or your competitors.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}