{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Shorts Scraper: Channels & Keyword Search",
    "description": "YouTube Shorts scraper: every Short of any channel or keyword search with exact views, likes and comments, publish time, duration, hashtags, the sound and song used, and the channel's subscribers and stats. Type channel names or search terms, or paste Shorts links. No login, no API key.",
    "version": "0.1",
    "x-build-id": "W4KKLyjiWIZw0teFJ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deepmine~youtube-shorts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deepmine-youtube-shorts-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/deepmine~youtube-shorts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-deepmine-youtube-shorts-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/deepmine~youtube-shorts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-deepmine-youtube-shorts-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": {
          "channels": {
            "title": "📺 Channels (names, @handles or links)",
            "type": "array",
            "description": "Each channel's Shorts tab, e.g. MrBeast, @nasa or a channel link. Each gives up to 📱 Max Shorts, newest first unless you pick another order below.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "🔍 Search Shorts by keyword",
            "type": "array",
            "description": "Words you'd type in YouTube's search box, e.g. street food. Each returns up to 📱 Max Shorts from YouTube's Shorts search.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔗 Shorts or channel links",
            "type": "array",
            "description": "Shorts links (youtube.com/shorts/...) for the full details of each Short. A channel link or @handle reads its Shorts tab, as in 📺 Channels. Empty = none.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxResultsShorts": {
            "title": "📱 Max Shorts per channel or search",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Shorts per channel and per search term. You pay per Short saved. Left out (API): 20.",
            "default": 20
          },
          "sortVideosBy": {
            "title": "🔃 Channel Shorts order",
            "enum": [
              "NEWEST",
              "POPULAR",
              "OLDEST"
            ],
            "type": "string",
            "description": "Order of each channel's Shorts (the Shorts tab's Latest / Popular / Oldest). Empty = newest first. With 📅 Published after set, Shorts are read newest first."
          },
          "oldestPostDate": {
            "title": "📅 Published after",
            "type": "string",
            "description": "Keep only Shorts published on or after this date, e.g. 2026-09-01 or 30 days. A channel's Shorts stop at the first older one. Empty = any date."
          },
          "sortingOrder": {
            "title": "Search: sort by",
            "enum": [
              "relevance",
              "date",
              "views",
              "rating"
            ],
            "type": "string",
            "description": "Order of search results. Empty = YouTube's relevance."
          },
          "dateFilter": {
            "title": "Search: upload date",
            "enum": [
              "hour",
              "today",
              "week",
              "month",
              "year"
            ],
            "type": "string",
            "description": "Only search results uploaded in this period. Empty = any time."
          },
          "transcriptionAndSubtitle": {
            "title": "Subtitles",
            "enum": [
              "NONE",
              "ALWAYS_SUBTITLES",
              "TRANSCRIPTION_AS_FALLBACK",
              "ALWAYS_TRANSCRIBE"
            ],
            "type": "string",
            "description": "Download each Short's own subtitles into the subtitles column. Speech-to-text transcription is not offered: saved inputs that ask for it still run, with a note in the run's status message.",
            "default": "NONE"
          },
          "subtitlesLanguage": {
            "title": "Subtitle language",
            "type": "string",
            "description": "A language code such as en, de, es, pt-BR or ja, or any for the video's own language. Only used when subtitles are on.",
            "default": "en"
          },
          "subtitlesFormat": {
            "title": "Subtitle format",
            "enum": [
              "srt",
              "vtt",
              "xml",
              "plaintext"
            ],
            "type": "string",
            "description": "How the subtitles are written. Plain text has no times.",
            "default": "srt"
          },
          "maxResults": {
            "title": "🎬 Max videos per channel or search",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Regular (non-Shorts) videos per channel, playlist or search term. 0 = none (this listing reads Shorts; YouTube Scraper reads every kind).",
            "default": 0
          },
          "maxResultStreams": {
            "title": "🔴 Max live streams per channel or search",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Live and past live streams per channel (its Live tab) or search term. 0 = none.",
            "default": 0
          },
          "lengthFilter": {
            "title": "Search: video length",
            "type": "string",
            "description": "Only search results of this length. Empty = any length. Values: under4, between420, plus20."
          },
          "videoType": {
            "title": "Search: type",
            "type": "string",
            "description": "Search for videos or for movies. Empty = videos. Values: video, movie."
          },
          "searchFeatures": {
            "title": "Search: features",
            "type": "array",
            "description": "Only search results with all of these, e.g. HD and Subtitles/CC. Empty = no feature filter. Values: isLive, is4K, isHD, hasSubtitles, hasCC, is360, isVR180, is3D, isHDR, hasLocation, isBought.",
            "items": {
              "type": "string"
            }
          },
          "isHD": {
            "title": "isHD",
            "type": "boolean",
            "description": "Same as picking it in 'Search: features'. Accepted so saved inputs from other YouTube scrapers run."
          },
          "hasSubtitles": {
            "title": "hasSubtitles",
            "type": "boolean",
            "description": "Same as picking it in 'Search: features'. Accepted so saved inputs from other YouTube scrapers run."
          },
          "hasCC": {
            "title": "hasCC",
            "type": "boolean",
            "description": "Same as picking it in 'Search: features'. Accepted so saved inputs from other YouTube scrapers run."
          },
          "is3D": {
            "title": "is3D",
            "type": "boolean",
            "description": "Same as picking it in 'Search: features'. Accepted so saved inputs from other YouTube scrapers run."
          },
          "isLive": {
            "title": "isLive",
            "type": "boolean",
            "description": "Same as picking it in 'Search: features'. Accepted so saved inputs from other YouTube scrapers run."
          },
          "isBought": {
            "title": "isBought",
            "type": "boolean",
            "description": "Same as picking it in 'Search: features'. Accepted so saved inputs from other YouTube scrapers run."
          },
          "is4K": {
            "title": "is4K",
            "type": "boolean",
            "description": "Same as picking it in 'Search: features'. Accepted so saved inputs from other YouTube scrapers run."
          },
          "is360": {
            "title": "is360",
            "type": "boolean",
            "description": "Same as picking it in 'Search: features'. Accepted so saved inputs from other YouTube scrapers run."
          },
          "hasLocation": {
            "title": "hasLocation",
            "type": "boolean",
            "description": "Same as picking it in 'Search: features'. Accepted so saved inputs from other YouTube scrapers run."
          },
          "isHDR": {
            "title": "isHDR",
            "type": "boolean",
            "description": "Same as picking it in 'Search: features'. Accepted so saved inputs from other YouTube scrapers run."
          },
          "isVR180": {
            "title": "isVR180",
            "type": "boolean",
            "description": "Same as picking it in 'Search: features'. Accepted so saved inputs from other YouTube scrapers run."
          },
          "aiVideoDescription": {
            "title": "aiVideoDescription",
            "type": "boolean",
            "description": "Accepted so saved inputs from other YouTube scrapers run: not offered, ignored (AI text columns are not written; subtitles are always in the row)."
          },
          "aiVideoSummary": {
            "title": "aiVideoSummary",
            "type": "boolean",
            "description": "Accepted so saved inputs from other YouTube scrapers run: not offered, ignored (AI text columns are not written; subtitles are always in the row)."
          },
          "saveSubsToKVS": {
            "title": "saveSubsToKVS",
            "type": "boolean",
            "description": "Accepted so saved inputs from other YouTube scrapers run: not offered, ignored (AI text columns are not written; subtitles are always in the row)."
          },
          "sortChannelShortsBy": {
            "title": "sortChannelShortsBy",
            "type": "string",
            "description": "NEWEST, POPULAR or OLDEST: order of the Shorts read for 'channels' (the Shorts tab's Latest / Popular / Oldest). Empty = the 'Channel: sort videos by' order."
          },
          "preferAutoGeneratedSubtitles": {
            "title": "Prefer automatic subtitles",
            "type": "boolean",
            "description": "Take YouTube's automatic subtitles before a person-made track.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave as is: Apify datacenter proxy works for every YouTube call this Actor makes.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}