{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Viral & Trend Radar — Video Growth ✅",
    "description": "Discover TikTok videos by topic. Compare views with creator followers, track view growth between runs, and export ranked video research with engagement metrics. No TikTok login or API key required.",
    "version": "0.1",
    "x-build-id": "fKbWwixmuDlIngVcE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nexascout~tiktok-viral-radar/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nexascout-tiktok-viral-radar",
        "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/nexascout~tiktok-viral-radar/runs": {
      "post": {
        "operationId": "runs-sync-nexascout-tiktok-viral-radar",
        "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/nexascout~tiktok-viral-radar/run-sync": {
      "post": {
        "operationId": "run-sync-nexascout-tiktok-viral-radar",
        "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": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Topics or keywords to discover videos for. Use up to 10 queries; results are a bounded search sample.",
            "default": [
              "hiking"
            ]
          },
          "region": {
            "title": "Region",
            "type": "string",
            "description": "Two-letter region for search localization + residential proxy country.",
            "default": "US"
          },
          "maxAgeHours": {
            "title": "Max age (hours)",
            "minimum": 0,
            "maximum": 168,
            "type": "integer",
            "description": "Keep videos published within this many hours. 0 disables this cutoff. Unknown publication dates are excluded when an age cutoff is active.",
            "default": 72
          },
          "maxAgeDays": {
            "title": "Max age (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only videos published within this many days (0 = no filter).",
            "default": 0
          },
          "minViews": {
            "title": "Minimum views",
            "minimum": 0,
            "maximum": 1000000000000,
            "type": "integer",
            "description": "Minimum play count.",
            "default": 1000
          },
          "minReachMultiple": {
            "title": "Minimum reach multiple",
            "minimum": 0,
            "maximum": 10000,
            "type": "number",
            "description": "Minimum views / creator followers when follower data is available. Unknown reach is kept. 0 disables this filter.",
            "default": 0
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum returned videos after filtering and ranking; a matching result count is not guaranteed.",
            "default": 25
          },
          "maxCandidatesPerQuery": {
            "title": "Candidates per query",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Videos to request per search page.",
            "default": 30
          },
          "maxPagesPerQuery": {
            "title": "Pages per query",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Search pages to fetch per keyword.",
            "default": 2
          },
          "maxRunSeconds": {
            "title": "Max run seconds",
            "minimum": 30,
            "maximum": 240,
            "type": "integer",
            "description": "Soft collection time budget.",
            "default": 180
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Detected caption language code, or any. This heuristic filter keeps videos with unknown language.",
            "default": "any"
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Optional category allow-list (empty = all). Deterministic title heuristic.",
            "default": []
          },
          "saveHistory": {
            "title": "Save history",
            "type": "boolean",
            "description": "Save observations for measured growth on later runs. Keep queries, region, language, categories and history profile consistent.",
            "default": true
          },
          "historyProfile": {
            "title": "History profile",
            "type": "string",
            "description": "A short name to keep this research history separate, using letters, numbers and hyphens.",
            "default": "default"
          },
          "minIntervalMinutes": {
            "title": "Min interval (minutes)",
            "minimum": 1,
            "maximum": 1440,
            "type": "integer",
            "description": "Minimum gap between velocity samples.",
            "default": 60
          },
          "maxComparisonHours": {
            "title": "Max comparison window (hours)",
            "minimum": 1,
            "maximum": 720,
            "type": "integer",
            "description": "Maximum lookback for a velocity sample.",
            "default": 72
          },
          "risingViewsPerHour": {
            "title": "Rising views/hour",
            "minimum": 1,
            "maximum": 10000000,
            "type": "integer",
            "description": "Velocity threshold to mark a video RISING.",
            "default": 100
          },
          "accelerationFactor": {
            "title": "Acceleration factor",
            "minimum": 1.1,
            "maximum": 10,
            "type": "number",
            "description": "Velocity ratio to mark ACCELERATING.",
            "default": 1.5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential proxy for the TikTok API requests.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}