{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Scraper: Channels, Shorts, Live & Posts",
    "description": "Scrape public YouTube channels, videos, Shorts, live streams, playlists, community posts, websites, social profiles, and engagement—no API key or personal emails.",
    "version": "1.0",
    "x-build-id": "OsAgnVjkzsQEEdFjh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fascinating_lentil~youtube-channel-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fascinating_lentil-youtube-channel-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/fascinating_lentil~youtube-channel-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fascinating_lentil-youtube-channel-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/fascinating_lentil~youtube-channel-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fascinating_lentil-youtube-channel-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",
        "properties": {
          "channelUrls": {
            "title": "Channel URLs",
            "maxItems": 50,
            "type": "array",
            "description": "YouTube channel URLs or @handles to scrape, for example https://www.youtube.com/@mkbhd or @mkbhd.",
            "default": [
              "https://www.youtube.com/@mkbhd"
            ],
            "items": {
              "type": "string"
            }
          },
          "searchKeywords": {
            "title": "Search Keywords",
            "maxItems": 10,
            "type": "array",
            "description": "Optional keywords used to find public YouTube channels. Search results vary by region and ranking.",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "Scrape Mode",
            "enum": [
              "fast",
              "detailed"
            ],
            "type": "string",
            "description": "Fast reads channel video grids and returns public channel-tab links with minimal requests. Detailed also reads About pages and selected video pages for total views, join date, country, websites, classified social profiles, likes, descriptions, tags, and category. Email addresses are not collected.",
            "default": "fast"
          },
          "maxChannels": {
            "title": "Max Channels from Search",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of channels to scrape from each search keyword. Detailed mode allows at most 10 channels total per run.",
            "default": 1
          },
          "maxDetailedVideosPerChannel": {
            "title": "Videos to Enrich Per Channel",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Detailed mode only: number of saved video rows whose individual pages are read for exact views, likes, descriptions, tags, category, and publish date.",
            "default": 1
          },
          "maxVideosPerChannel": {
            "title": "Max Videos Per Channel",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum latest public video rows to save per channel from YouTube's currently loaded public Videos grid. Fewer may be available.",
            "default": 1
          },
          "includeShorts": {
            "title": "Collect Shorts",
            "type": "boolean",
            "description": "Fetch the channel's public Shorts tab and save actual Short rows with titles, views, dates, durations, thumbnails, and URLs.",
            "default": false
          },
          "maxShortsPerChannel": {
            "title": "Max Shorts Per Channel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum Short rows saved from each channel's currently loaded public Shorts tab.",
            "default": 10
          },
          "includeLiveStreams": {
            "title": "Collect Live Streams",
            "type": "boolean",
            "description": "Fetch the public Live tab and save live, upcoming, and previously streamed video rows when exposed.",
            "default": false
          },
          "maxLiveStreamsPerChannel": {
            "title": "Max Live Streams Per Channel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum live-stream rows saved from each channel's currently loaded public Live tab.",
            "default": 10
          },
          "includePlaylists": {
            "title": "Collect Playlists",
            "type": "boolean",
            "description": "Fetch the public Playlists tab and save playlist titles, IDs, URLs, video counts, and thumbnails.",
            "default": false
          },
          "maxPlaylistsPerChannel": {
            "title": "Max Playlists Per Channel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum playlist rows saved from each channel's currently loaded public Playlists tab.",
            "default": 10
          },
          "includeCommunityPosts": {
            "title": "Collect Community Posts",
            "type": "boolean",
            "description": "Fetch the public Community tab and save channel-authored post text, publish time, public engagement counts, and attachment links. Commenter identities are never collected.",
            "default": false
          },
          "maxCommunityPostsPerChannel": {
            "title": "Max Community Posts Per Channel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum channel-authored community-post rows saved from each channel's currently loaded public Community tab.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Optional proxy settings for HTTP requests. Direct mode is the low-cost default; enable Apify Proxy or provide custom proxy URLs if direct requests are rate-limited.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}