{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Shop Products — Search, Trends & Reviews",
    "description": "Research TikTok Shop products by market, keyword, price and sales. Get product details, trends, reviews, related creators and videos, rankings and market analytics. Export structured results as JSON, CSV or Excel.",
    "version": "0.0",
    "x-build-id": "QrXK2j8NAPnOH9JSm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datanebula~tiktok-shop-products/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datanebula-tiktok-shop-products",
        "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/datanebula~tiktok-shop-products/runs": {
      "post": {
        "operationId": "runs-sync-datanebula-tiktok-shop-products",
        "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/datanebula~tiktok-shop-products/run-sync": {
      "post": {
        "operationId": "run-sync-datanebula-tiktok-shop-products",
        "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": [
          "operation",
          "country"
        ],
        "properties": {
          "operation": {
            "title": "Operation",
            "enum": [
              "products-search",
              "dashboards-categories-heatmap",
              "dashboards-categories-metrics",
              "dashboards-products-category-share",
              "dashboards-products-metrics",
              "products-ranking-most-promoted",
              "products-ranking-new-arrivals",
              "products-ranking-top-selling",
              "products-trend",
              "products-detail",
              "products-creators",
              "products-lives",
              "products-reviews",
              "products-similar",
              "products-videos"
            ],
            "type": "string",
            "description": "Choose one operation per run. See the README for the required inputs for each operation.",
            "default": "products-search"
          },
          "country": {
            "title": "Market",
            "enum": [
              "br",
              "de",
              "es",
              "fr",
              "gb",
              "id",
              "it",
              "jp",
              "mx",
              "my",
              "ph",
              "sg",
              "th",
              "us",
              "vn"
            ],
            "type": "string",
            "description": "Use the market in which the entity ID was found. Data coverage varies by market.",
            "default": "us"
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Total result rows across this run. Stops pagination at this limit. Apify Free plan users receive up to 20 rows per run. Analytical results may contain nested report data.",
            "default": 10
          },
          "ids": {
            "title": "Entity IDs",
            "maxItems": 100,
            "type": "array",
            "description": "Required for details and related data. Paste IDs returned by a search in the selected market. Handles and URLs are not supported.",
            "items": {
              "type": "string"
            }
          },
          "include": {
            "title": "Additional detail sections",
            "type": "array",
            "description": "Optional sections for detail operations only. These do not fetch related lists such as comments or videos.",
            "items": {
              "type": "string",
              "enum": [
                "channel",
                "core"
              ]
            }
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Search keyword\nApplies to: Search Products."
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Optional TikTok product category ID, passed as a numeric string. Omit this parameter for an unfiltered category search. You can obtain an ID from l1_category in product search results for the selected country. A top-level ID includes products in its subcategories. Product categories and creator content categories use different ID systems.\n\nTop-level product category reference (availability varies by market):\n\n| Category ID | Category name |\n| --- | --- |\n| 601450 | Beauty & Personal Care |\n| 601152 | Womenswear |\n| 700645 | Health |\n| 603014 | Sports & Outdoors |\n| 601739 | Phones & Electronics |\n| 600942 | Home Appliances |\n| 824328 | Menswear |\n| 605248 | Fashion Accessories |\n| 700437 | Food & Beverages |\n| 600001 | Home Supplies |\n| 604453 | Furniture |\n| 600024 | Kitchenware |\n| 600154 | Home Textiles |\n| 824584 | Luggage & Bags |\n| 604206 | Toys & Hobbies |\n| 601352 | Footwear |\n| 604579 | Tools & Hardware |\n| 604968 | Home Improvement |\n| 602118 | Pet Supplies |\n| 601755 | Computers & Office Equipment |\n| 602284 | Baby & Maternity |\n| 605196 | Automotive & Motorcycles |\n| 951432 | Collectibles |\n| 801928 | Books, Magazines & Audio/Video |\n| 953224 | Jewelry & Related Products |\n| 856720 | Secondhand Goods |\n| 802184 | Kids' Fashion |\nApplies to: Search Products; Product Market Overview; Most-Promoted Products; Trending New Products; Top-Selling Products.\nEnter a category ID or a category name from the reference table, such as Beauty & Personal Care."
          },
          "seller_type": {
            "title": "Seller type",
            "enum": [
              "1",
              "2",
              "3",
              "4"
            ],
            "type": "string",
            "description": "Seller type: 1 = overseas non-brand; 2 = local; 3 = brand; 4 = non-brand.\nApplies to: Search Products; Most-Promoted Products; Trending New Products; Top-Selling Products."
          },
          "min_price": {
            "title": "Min price",
            "type": "number",
            "description": "Minimum price in the selected market's local currency, the same unit as the returned price fields\nApplies to: Search Products."
          },
          "max_price": {
            "title": "Max price",
            "type": "number",
            "description": "Maximum price in the selected market's local currency, the same unit as the returned price fields\nApplies to: Search Products."
          },
          "min_rating": {
            "title": "Min rating",
            "type": "number",
            "description": "Minimum rating, from 0 to 5\nApplies to: Search Products."
          },
          "max_rating": {
            "title": "Max rating",
            "type": "number",
            "description": "Maximum rating, from 0 to 5\nApplies to: Search Products."
          },
          "min_sold_7d": {
            "title": "Min sold 7d",
            "type": "number",
            "description": "Minimum units sold over 7 days\nApplies to: Search Products."
          },
          "max_sold_7d": {
            "title": "Max sold 7d",
            "type": "number",
            "description": "Maximum units sold over 7 days\nApplies to: Search Products."
          },
          "min_sold_30d": {
            "title": "Min sold 30d",
            "type": "number",
            "description": "Minimum units sold over 30 days\nApplies to: Search Products."
          },
          "max_sold_30d": {
            "title": "Max sold 30d",
            "type": "number",
            "description": "Maximum units sold over 30 days\nApplies to: Search Products."
          },
          "free_shipping": {
            "title": "Free shipping",
            "enum": [
              "any",
              "yes",
              "no"
            ],
            "type": "string",
            "description": "Whether shipping is free\nApplies to: Search Products."
          },
          "sort": {
            "title": "Sort",
            "type": "string",
            "description": "Sort as field, field:asc or field:desc. A bare field uses descending order.\nApplies to: Search Products; Most-Promoted Products; Trending New Products; Top-Selling Products.\nAllowed fields — Search Products: daily_sold, gmv_30d, gmv_7d, price, rating, sold_30d, sold_7d. Append :asc for ascending order."
          },
          "date": {
            "title": "Date",
            "type": "string",
            "description": "Reporting date in YYYYMMDD format, for example 20261013. Use with granularity to select the reporting period; data availability varies by date.\nApplies to: Category Market Heatmap; Category Market Overview; Product Market Overview; Most-Promoted Products; Top-Selling Products. Use YYYY-MM-DD or YYYYMMDD."
          },
          "granularity": {
            "title": "Granularity",
            "enum": [
              "daily",
              "weekly",
              "monthly"
            ],
            "type": "string",
            "description": "Reporting period: daily, weekly or monthly. Numeric aliases 0, 1 and 2 are also accepted. Pair with date.\nApplies to: Category Market Heatmap; Category Market Overview; Product Market Overview; Most-Promoted Products; Top-Selling Products."
          },
          "listed_from": {
            "title": "Listed from",
            "type": "string",
            "description": "Listing start date in YYYYMMDD format\nApplies to: Trending New Products. Use YYYY-MM-DD or YYYYMMDD."
          },
          "listed_to": {
            "title": "Listed to",
            "type": "string",
            "description": "Listing end date in YYYYMMDD format\nApplies to: Trending New Products. Use YYYY-MM-DD or YYYYMMDD."
          },
          "product_status": {
            "title": "Product status",
            "enum": [
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "Product status filter: 1 = On sale; 2 = Delisted; 3 = Deleted. Omit this parameter to apply no status filter.\nApplies to: Trending New Products."
          },
          "startDate": {
            "title": "Report start date",
            "type": "string",
            "description": "Required for product trends and category sales share. YYYY-MM-DD or YYYYMMDD, UTC."
          },
          "endDate": {
            "title": "Report end date",
            "type": "string",
            "description": "Required for product trends; optional custom range end for category sales share. YYYY-MM-DD or YYYYMMDD, UTC."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}