{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Channel Scraper: New Videos, Stats & Comments",
    "description": "Monitor YouTube channels without login or API key: recent videos with views, likes, length and comment count, subscribers, and the newest comments. The Only new videos and comments option returns and charges only what is new since your last run. No transcripts. Not affiliated with YouTube or Google.",
    "version": "0.0",
    "x-build-id": "n8ivD3phxw2GRXFZt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kizukidata~youtube-channel-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kizukidata-youtube-channel-monitor",
        "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/kizukidata~youtube-channel-monitor/runs": {
      "post": {
        "operationId": "runs-sync-kizukidata-youtube-channel-monitor",
        "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/kizukidata~youtube-channel-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-kizukidata-youtube-channel-monitor",
        "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": {
          "channels": {
            "title": "Channels",
            "type": "array",
            "description": "YouTube channels: an @handle, a /channel/ URL, a /c/ or /user/ URL, or a channel ID. Up to 20 per run. The recent videos are read from the channel's public feed (about 15, newest first); for a channel whose feed answers 404 they are read from the channel's video list, with an estimated date and a rounded view count, and the subscriber count, total views and description from the About page. Entries that are not a channel are skipped and listed in OUTPUT.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "videos": {
            "title": "Videos",
            "type": "array",
            "description": "Specific videos: a watch URL, a youtu.be link, a Shorts link or the 11-character ID. Up to 100 per run. Useful for the comments of one video without naming its channel. When both Channels and Videos are empty, one sample video is used.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "What to return",
            "enum": [
              "videos",
              "comments",
              "both"
            ],
            "type": "string",
            "description": "videos: channel rows and the recent videos from the channel's video list. comments: the newest comments of the named channels' recent videos and of the named videos. both: videos and comments in one run. comments is the mode for a comment monitor, because it reads one video page per video.",
            "default": "videos"
          },
          "includeChannelInfo": {
            "title": "Return the channel row (subscribers, views, description)",
            "type": "boolean",
            "description": "Read the About page once per channel and return one channel row with the subscriber count, total views, video count, description, country and join date. Turn it off to skip that page read. Comments mode never returns channel rows.",
            "default": true
          },
          "maxVideosPerChannel": {
            "title": "Videos per channel",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "How many of the channel's recent videos to return (and, in comments mode, how many video pages to read), from 1 to 15. The feed holds about 15. maxItems still bounds the whole run.",
            "default": 5
          },
          "maxCommentsPerVideo": {
            "title": "Comments per video",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many comments to return per video, from 1 to 100. Comments are requested newest first, so the newest comments arrive first. maxItems bounds the whole run.",
            "default": 20
          },
          "maxCommentPages": {
            "title": "Comment pages per video",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many pages of comments to read per video, from 1 to 5 (about 20 comments per page). More pages cost more requests; raise it when a video receives many comments between runs.",
            "default": 2
          },
          "onlyNewItems": {
            "title": "Only new videos and comments",
            "type": "boolean",
            "description": "Skip videos and comments that an earlier run with the same input already returned. State is kept per channel and per video in a named key-value store for 90 days. Status rows are not remembered, so a video that was blocked or comment-less is retried.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum rows written in one run, from 1 to 500. Channel rows, video rows, comment rows and uncharged status rows share this budget, so the dataset never holds more than maxItems rows. Only rows with data are charged.",
            "default": 20
          },
          "includeVideoStats": {
            "title": "Add likes, length, hashtags and the comment count to video rows",
            "type": "boolean",
            "description": "Read the likes, length, description hashtags and comment count of each returned video, and whether it is a Short. This costs the channel's Videos tab (about 1.5 MB), its Shorts tab (about 1.3 MB) when a returned video is a Short, and one or two small responses (about 0.65 MB) per video row: 100 videos take roughly 3 to 4 minutes. Turn it off for a large monitor that only needs titles, dates and view counts; the fields are then null, with videoStatsReason saying why.",
            "default": true
          },
          "debugSnapshot": {
            "title": "Save a diagnostic page snapshot",
            "type": "boolean",
            "description": "Diagnostic. Saves a page snapshot when a video page has unreadable comments. Normally not needed; snapshots are never in the dataset and never charged.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. The default is a direct connection; a datacenter proxy is available when a page has to be read from another country.",
            "default": {
              "useApifyProxy": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}