{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Shop Scraper [NO COOKIES] ✅",
    "description": "Extract product data, reviews, seller info, creator affiliates, and GMV/sales estimates from TikTok Shop at scale. Filter by category, price range, and country (US, UK). Built for dropshippers, e-commerce sellers, and DTC brands hunting trending products before they go viral.",
    "version": "0.0",
    "x-build-id": "Vfq4dKfJuVerMlflt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unseenuser~TikTok-Shop-Scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unseenuser-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/unseenuser~TikTok-Shop-Scraper/runs": {
      "post": {
        "operationId": "runs-sync-unseenuser-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/unseenuser~TikTok-Shop-Scraper/run-sync": {
      "post": {
        "operationId": "run-sync-unseenuser-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "shop_search",
              "shop_catalog",
              "product_details",
              "product_reviews",
              "creator_showcase"
            ],
            "type": "string",
            "description": "Pick what you want to scrape. The matching section below has the same emoji.",
            "default": "shop_search"
          },
          "searchKeywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "What you'd type into TikTok Shop's search bar. One per line.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "shopUrls": {
            "title": "TikTok Shop store URLs",
            "type": "array",
            "description": "Full store URLs. On the app, tap a shop name and copy the link. Format: https://www.tiktok.com/shop/store/<slug>/<id>",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "productUrls": {
            "title": "Product PDP URLs",
            "type": "array",
            "description": "Full product detail page URLs. Right-click any TikTok Shop product and copy the link. Format: https://www.tiktok.com/shop/pdp/<slug>/<id>",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "usernames": {
            "title": "TikTok usernames",
            "type": "array",
            "description": "TikTok handles, one per line. The @ prefix is optional - both 'hyram' and '@hyram' work.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "region": {
            "title": "TikTok Shop region - US only",
            "enum": [
              "US",
              "GB",
              "ID",
              "MY",
              "PH",
              "SG",
              "VN",
              "TH",
              "DE",
              "FR",
              "IT",
              "ES",
              "IE",
              "MX",
              "BR",
              "JP"
            ],
            "type": "string",
            "description": "This Actor supports the United States TikTok Shop market. Other markets are not supported and there are no plans to add them. The other values remain selectable only so that previously saved runs stay valid - they return no usable data. Leave this set to US.",
            "default": "US"
          },
          "sortBy": {
            "title": "Shop Catalog sort order",
            "enum": [
              "top",
              "new_releases"
            ],
            "type": "string",
            "description": "Only used in Shop Catalog mode. 'Best selling' surfaces a store's proven winners; 'Newest' surfaces what they just launched.",
            "default": "top"
          },
          "maxResults": {
            "title": "Max results per input (0 - everything)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard cap per query / shop / creator. With 5 keywords and 100 max, you'd get up to 500 rows total. Set to 0 to fetch everything available, with no cap.",
            "default": 0
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product (0 - everything)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Only used in Product Reviews mode. Set to 0 to fetch every review available, with no cap.",
            "default": 0
          },
          "getRelatedVideos": {
            "title": "Include related affiliate videos",
            "type": "boolean",
            "description": "Only used in Product Details mode. Adds the affiliate videos promoting each product. Slower (~2x per product).",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}