{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Shop Scraper - Products, Sales, Reviews & Seller Data",
    "description": "TikTok Shop product scraper and data API. By product ID or URL across 13 marketplaces: units sold, ratings with star breakdown, buyer reviews, seller profile and legal business details, per-SKU variants with live stock, shipping, specs, images and video. Filter and sort. Export JSON, CSV, Excel.",
    "version": "0.1",
    "x-build-id": "hgvNVheIEdbEnw8rk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~tiktok-shop-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-tiktok-shop-product-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/scrapers_lat~tiktok-shop-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-tiktok-shop-product-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/scrapers_lat~tiktok-shop-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-tiktok-shop-product-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": {
          "maxProducts": {
            "title": "Max products",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of products to collect. Optional."
          },
          "productIds": {
            "title": "Product IDs or URLs",
            "type": "array",
            "description": "One or more TikTok Shop product IDs or full product URLs. The ID is the long numeric value in a product page URL such as tiktok.com/view/product/1729480569078716908 or shop.tiktok.com/.../pdp/.../1729480569078716908. Paste full URLs and the ID is extracted automatically.",
            "items": {
              "type": "string"
            }
          },
          "productUrls": {
            "title": "Product URLs (alias)",
            "type": "array",
            "description": "Optional. Same as Product IDs, provided as a separate list of full TikTok Shop product URLs. Merged with Product IDs; the numeric ID is extracted automatically.",
            "items": {
              "type": "string"
            }
          },
          "searchKeywords": {
            "title": "Search keywords (discover products)",
            "type": "array",
            "description": "Optional. Find products by keyword (for example \"phone case\" or \"led strip lights\") instead of pasting IDs. Each keyword typically returns 25 to 60 products on the US marketplace. On other marketplaces keyword pages are only available where TikTok Shop publishes them.",
            "items": {
              "type": "string"
            }
          },
          "categoryUrls": {
            "title": "Category URLs",
            "type": "array",
            "description": "Optional. TikTok Shop category page URLs such as https://shop.tiktok.com/us/c/baby-maternity/602284 (or just the numeric category ID, read in the selected marketplace). Pages are followed until Max pages per source or Max products is reached.",
            "items": {
              "type": "string"
            }
          },
          "includeSubcategories": {
            "title": "Include subcategories",
            "type": "boolean",
            "description": "Also collect products from the subcategories of each category URL.",
            "default": false
          },
          "storeUrls": {
            "title": "Store URLs",
            "type": "array",
            "description": "Optional. TikTok Shop store page URLs such as https://shop.tiktok.com/us/store/huloo-sleep/7496011205704125323 (or the numeric seller ID). Returns the store's featured products (up to 20 per store).",
            "items": {
              "type": "string"
            }
          },
          "maxPagesPerSource": {
            "title": "Max pages per source",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many listing pages to read per category (about 15 products per page).",
            "default": 5
          },
          "region": {
            "title": "Marketplace region",
            "enum": [
              "FR",
              "GB",
              "US",
              "DE",
              "ES",
              "IT",
              "IE",
              "ID",
              "TH",
              "VN",
              "MY",
              "PH",
              "SG"
            ],
            "type": "string",
            "description": "TikTok Shop marketplace to read prices and availability from. United States (US) is the default. Prices and currency come from the product's home marketplace.",
            "default": "US"
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products at or above this price (in the marketplace currency). Optional."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products at or below this price (in the marketplace currency). Optional."
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Keep only products with an average rating at or above this value (0 to 5). Optional."
          },
          "minSold": {
            "title": "Minimum units sold",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products with at least this many units sold. Optional."
          },
          "inStockOnly": {
            "title": "In stock only",
            "type": "boolean",
            "description": "When enabled, drop products that are out of stock.",
            "default": false
          },
          "category": {
            "title": "Category contains",
            "type": "string",
            "description": "Keep only products whose category path contains this text (case-insensitive), for example 'Beauty' or 'Baby'. Optional."
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "none",
              "priceAsc",
              "priceDesc",
              "ratingDesc",
              "soldDesc",
              "reviewsDesc",
              "revenueDesc"
            ],
            "type": "string",
            "description": "Order of the returned products.",
            "default": "none"
          },
          "aiSummary": {
            "title": "AI product summary (add-on)",
            "type": "boolean",
            "description": "Add an AI-generated buyer summary with pros and cons for each product, distilled from its title, description and specifications. Paid add-on, billed only when a summary is produced. Not available on the free plan.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}