{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Comments & Replies Scraper - No Cookies",
    "description": "Extract TikTok comments and threaded replies from video URLs or public profiles. Filter by likes, language, date, and video popularity. Export authors, text, engagement, timestamps, IDs, and optional metadata to JSON, CSV, or Excel.",
    "version": "0.0",
    "x-build-id": "HrgbzfQGucswW8Gei"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraping_solutions~tiktok-comments-scraper-no-cookies/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraping_solutions-tiktok-comments-scraper-no-cookies",
        "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/scraping_solutions~tiktok-comments-scraper-no-cookies/runs": {
      "post": {
        "operationId": "runs-sync-scraping_solutions-tiktok-comments-scraper-no-cookies",
        "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/scraping_solutions~tiktok-comments-scraper-no-cookies/run-sync": {
      "post": {
        "operationId": "run-sync-scraping_solutions-tiktok-comments-scraper-no-cookies",
        "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": {
          "postURLs": {
            "title": "TikTok video URLs or IDs",
            "type": "array",
            "description": "Add one or more public TikTok video URLs. Numeric video IDs are also accepted.",
            "items": {
              "type": "string"
            }
          },
          "profiles": {
            "title": "TikTok profiles",
            "type": "array",
            "description": "Optional usernames or profile URLs. The Actor discovers their videos before collecting comments.",
            "items": {
              "type": "string"
            }
          },
          "videosPerProfile": {
            "title": "Videos per profile",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of qualifying videos selected from each profile.",
            "default": 1
          },
          "profileSorting": {
            "title": "Profile video sorting",
            "enum": [
              "latest",
              "popular",
              "oldest"
            ],
            "type": "string",
            "description": "Choose which profile videos are examined first.",
            "default": "latest"
          },
          "maxConcurrency": {
            "title": "Maximum concurrent videos",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Number of videos processed simultaneously. Use 3 for a good speed/reliability balance. Higher values may trigger provider rate limits.",
            "default": 3
          },
          "oldestPostDate": {
            "title": "Videos published after",
            "type": "string",
            "description": "Optional profile-video date filter. Only videos published on or after this date are used."
          },
          "newestPostDate": {
            "title": "Videos published before",
            "type": "string",
            "description": "Optional profile-video date filter. Only videos published on or before this date are used."
          },
          "excludePinnedPosts": {
            "title": "Exclude pinned profile videos",
            "type": "boolean",
            "description": "Skip videos marked as pinned while discovering profile videos.",
            "default": false
          },
          "commentsPerPost": {
            "title": "Maximum results per video",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum combined number of comments and replies saved for each video.",
            "default": 100
          },
          "scanMultiplier": {
            "title": "Comment search depth",
            "enum": [
              "1",
              "2",
              "5",
              "10"
            ],
            "type": "string",
            "description": "Controls how many top-level comments may be examined relative to Maximum results per video. Higher depth helps reach the requested result count when filters are active, but uses more requests and takes longer.",
            "default": "2"
          },
          "topLevelCommentsPerPost": {
            "title": "Legacy top-level scan limit",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Backward-compatible override used by existing tasks and API integrations."
          },
          "maxRepliesPerComment": {
            "title": "Maximum replies per comment",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum replies examined in each qualifying thread. Set to 0 for top-level comments only. Large values multiply API requests across videos and comments; filters can reduce how many examined replies are saved.",
            "default": 0
          },
          "minimumLikesPreset": {
            "title": "Minimum likes",
            "enum": [
              "0",
              "1",
              "3",
              "5",
              "10"
            ],
            "type": "string",
            "description": "Save only comments and replies that reach this like threshold. Higher levels are more selective, require more pagination, and may return fewer results. Start with 0, 1, or 3 for the best cost-to-result balance.",
            "default": "0"
          },
          "minimumLikes": {
            "title": "Legacy minimum likes",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Compatibility field for existing API integrations. New runs should use the Minimum likes selector."
          },
          "onlyCommentsWithReplies": {
            "title": "Only comments with replies",
            "type": "boolean",
            "description": "Keep top-level comments only when they started a conversation thread.",
            "default": false
          },
          "languages": {
            "title": "Comment languages",
            "uniqueItems": true,
            "type": "array",
            "description": "Select one or more languages. Leave empty to accept every language, including comments where TikTok does not provide a language.",
            "items": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "pt",
                "fr",
                "de",
                "it",
                "nl",
                "pl",
                "ru",
                "uk",
                "tr",
                "ar",
                "hi",
                "bn",
                "id",
                "ms",
                "vi",
                "th",
                "ja",
                "ko",
                "zh",
                "tl",
                "cs",
                "sv",
                "no",
                "da",
                "fi",
                "el",
                "he",
                "ro",
                "hu",
                "sk",
                "bg",
                "sr",
                "hr",
                "fa",
                "ur",
                "ta",
                "te"
              ],
              "enumTitles": [
                "English",
                "Spanish",
                "Portuguese",
                "French",
                "German",
                "Italian",
                "Dutch",
                "Polish",
                "Russian",
                "Ukrainian",
                "Turkish",
                "Arabic",
                "Hindi",
                "Bengali",
                "Indonesian",
                "Malay",
                "Vietnamese",
                "Thai",
                "Japanese",
                "Korean",
                "Chinese",
                "Filipino / Tagalog",
                "Czech",
                "Swedish",
                "Norwegian",
                "Danish",
                "Finnish",
                "Greek",
                "Hebrew",
                "Romanian",
                "Hungarian",
                "Slovak",
                "Bulgarian",
                "Serbian",
                "Croatian",
                "Persian",
                "Urdu",
                "Tamil",
                "Telugu"
              ]
            },
            "default": []
          },
          "includeVideoMetadata": {
            "title": "Include video metadata",
            "type": "boolean",
            "description": "Add video description, author, language, location, plays, likes, comments, shares, saves, reposts, and music fields to each result. This makes one additional provider request per video.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}