{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Channel Videos Scraper — Metadata & Metrics",
    "description": "Scrape public YouTube channel videos and Shorts with titles, descriptions, dates, views, likes, comments, duration, thumbnails, and channel metadata. No cookies required.",
    "version": "1.4",
    "x-build-id": "ihvINjL3ZuiMxA7zg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~youtube-channel-videos-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-youtube-channel-videos-scraper",
        "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/khadinakbar~youtube-channel-videos-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-youtube-channel-videos-scraper",
        "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/khadinakbar~youtube-channel-videos-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-youtube-channel-videos-scraper",
        "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": [
          "channelUrls"
        ],
        "properties": {
          "channelUrls": {
            "title": "YouTube Channels",
            "maxItems": 100,
            "type": "array",
            "description": "Use this when you want public videos from one or more known YouTube channels. Accepts channel URLs such as https://www.youtube.com/@MrBeast, a handle such as @MrBeast, or a channel ID beginning UC. The prefill is a public channel for a quick test. This is not for video URLs, playlists, keyword search, comments, or private channels.",
            "items": {
              "type": "string"
            }
          },
          "contentType": {
            "title": "Content Type",
            "enum": [
              "videos",
              "shorts",
              "all"
            ],
            "type": "string",
            "description": "Use this to choose which public channel feed to collect. Select videos for long-form videos, shorts for YouTube Shorts, or all to process both feeds. Defaults to videos for a focused and predictable run. This does not download video media or transcripts.",
            "default": "videos"
          },
          "maxVideosPerChannel": {
            "title": "Max Videos Per Channel",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Use this to cap how many normalized rows are saved for each channel across the selected content types. Accepts whole numbers from 1 to 500 and defaults to 50; the prefill is 10. This is the main per-channel billing and volume guard. It is not a request-page limit.",
            "default": 50
          },
          "maxPagesPerContentType": {
            "title": "Max Pages Per Content Type",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Use this to limit provider pagination for each channel's video or Shorts feed. Accepts whole numbers from 1 to 50 and defaults to 10; the prefill is 1 for a fast check. It protects against unexpectedly deep feeds. It is not a direct row-count limit.",
            "default": 10
          },
          "maxTotalVideos": {
            "title": "Max Total Videos",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Use this to cap all saved video and Short rows across the entire run. Accepts whole numbers from 1 to 5000 and defaults to 500; the prefill is 10. This is the strongest whole-run cost guard. It does not set an Apify platform-usage cap.",
            "default": 500
          },
          "sortBy": {
            "title": "Feed Sort Order",
            "enum": [
              "latest",
              "popular"
            ],
            "type": "string",
            "description": "Use this to request newest-first or popularity-oriented channel ordering from the provider. Accepted values are latest and popular, and the default is latest. Providers can differ slightly in their ranking and freshness. This is not a date filter.",
            "default": "latest"
          },
          "publishedAfter": {
            "title": "Published On or After",
            "type": "string",
            "description": "Use this to keep only records published on or after a UTC calendar date. Enter an ISO date such as 2025-01-01; omit it to keep every returned date. Rows with no machine-readable publish date are excluded while a date filter is active. This is not a relative date phrase such as last month."
          },
          "publishedBefore": {
            "title": "Published Before",
            "type": "string",
            "description": "Use this to keep only records published before a UTC calendar date. Enter an ISO date such as 2025-12-31; omit it to keep every returned date. Rows with no machine-readable publish date are excluded while a date filter is active. This is not an inclusive end-of-day timestamp."
          },
          "providerOrder": {
            "title": "Provider Order",
            "enum": [
              "scrapecreators-first",
              "sociavault-first",
              "scrapecreators-only",
              "sociavault-only"
            ],
            "type": "string",
            "description": "Use this to select the public-data provider route and fallback order. ScrapeCreators first is the default because its channel endpoint was probed with the normalized fields; SociaVault is the redundant fallback. Defaults to ScrapeCreators first. This option does not use browser automation, YouTube cookies, or a personal API key.",
            "default": "scrapecreators-first"
          },
          "includeRawData": {
            "title": "Include Raw Provider Data",
            "type": "boolean",
            "description": "Use this only when debugging provider field drift or building a custom parser. When enabled, the original provider item is attached to each dataset row and capped to keep records bounded. Defaults to false because raw payloads are not ideal for spreadsheets or AI-agent output. This does not return private YouTube data.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}