{
  "openapi": "3.0.1",
  "info": {
    "title": "Fast YouTube Comments Scraper v2",
    "description": "Scrape YouTube comments and replies from multiple videos, Top or Newest sorting, and date filters. Export text, dates, likes, author names, and thread details to JSON or CSV for research, feedback analysis, and engagement tracking.\nyou can try this also,\nunknownbrain/youtube-comment-keyword-search",
    "version": "0.1",
    "x-build-id": "C6G3vUnEdZvq1dIgN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unknownbrain~fast-youtube-comments-scraper-v2/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unknownbrain-fast-youtube-comments-scraper-v2",
        "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/unknownbrain~fast-youtube-comments-scraper-v2/runs": {
      "post": {
        "operationId": "runs-sync-unknownbrain-fast-youtube-comments-scraper-v2",
        "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/unknownbrain~fast-youtube-comments-scraper-v2/run-sync": {
      "post": {
        "operationId": "run-sync-unknownbrain-fast-youtube-comments-scraper-v2",
        "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": [
          "videos"
        ],
        "properties": {
          "videos": {
            "title": "Videos and comment amounts",
            "minItems": 1,
            "type": "array",
            "description": "Parents and replies count together. Each omitted amount defaults to 100. Identical videos are deduplicated; conflicting amounts are rejected.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "Video URL",
                  "type": "string",
                  "editor": "textfield",
                  "description": "A YouTube watch, share, Shorts, live or embed URL containing a video ID."
                },
                "maxComments": {
                  "title": "Maximum records",
                  "type": "integer",
                  "editor": "number",
                  "default": 100,
                  "minimum": 1,
                  "description": "Combined maximum number of comments and replies for this video. Defaults to 100."
                }
              },
              "required": [
                "url"
              ]
            }
          },
          "sort": {
            "title": "Comment sorting",
            "enum": [
              "newest",
              "top"
            ],
            "type": "string",
            "description": "API relevance ordering and YouTube's public Top comments ordering can differ.",
            "default": "newest"
          },
          "publishedAfter": {
            "title": "Scrape comments published after",
            "type": "string",
            "description": "Only comments and replies published on or after this date are included. Enter YYYY-MM-DD or an age such as 1 day (today) or 2 days (yesterday and today). Uses UTC calendar days. Automatically resets sorting to Newest first. Replies are collected within qualifying top-level threads. Leave empty to disable."
          },
          "includeReplies": {
            "title": "Include replies",
            "type": "boolean",
            "description": "Reply requests can add time. Replies count toward the amount for each video.",
            "default": true
          },
          "maxRepliesPerThread": {
            "title": "Maximum replies per thread",
            "minimum": 1,
            "type": "integer",
            "description": "Leave unset for no additional reply cap."
          },
          "maxTotalComments": {
            "title": "Maximum records across the run",
            "minimum": 1,
            "type": "integer",
            "description": "Optional shared limit. Allocation between concurrent videos depends on arrival order."
          },
          "publicDetails": {
            "title": "Public details (slower)",
            "type": "array",
            "description": "One additional public pass. API text, dates and likes remain authoritative; unavailable details remain null.",
            "items": {
              "type": "string",
              "enum": [
                "pinned",
                "creatorHeart",
                "nestedReplies"
              ],
              "enumTitles": [
                "Pinned comments",
                "Creator hearts",
                "Nested reply relationships"
              ]
            },
            "default": []
          },
          "enableFallback": {
            "title": "Verify empty API responses publicly",
            "type": "boolean",
            "description": "Retries empty responses once, then verifies with yt-dlp in the same extraction session.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Concurrent API videos",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Workers share the private key. Public extraction is limited to two workers; reply requests to four across the run.",
            "default": 3
          },
          "videoTimeoutSeconds": {
            "title": "Active processing timeout per video",
            "minimum": 1,
            "type": "integer",
            "description": "Excludes waiting in the video queue. Covers extraction and optional enrichment; partial records are retained.",
            "default": 180
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}