{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Scraper",
    "description": "Scrape YouTube search results, channel metadata, and Shorts in one Actor. Extract clean JSON data for SEO, lead generation, competitor monitoring, and market research with contact enrichment. The ultimate YouTube scraper and channel data extractor.",
    "version": "0.0",
    "x-build-id": "BbN3Em1xNawUffGni"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/devil_port369-owner~youtube/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-devil_port369-owner-youtube",
        "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/devil_port369-owner~youtube/runs": {
      "post": {
        "operationId": "runs-sync-devil_port369-owner-youtube",
        "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/devil_port369-owner~youtube/run-sync": {
      "post": {
        "operationId": "run-sync-devil_port369-owner-youtube",
        "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": [
          "scraperType"
        ],
        "properties": {
          "scraperType": {
            "title": "Scraper Type",
            "enum": [
              "searchResults",
              "videoDetails",
              "channel",
              "shorts",
              "keywordMonitor",
              "competitorMonitor"
            ],
            "type": "string",
            "description": "Choose what data to extract from YouTube."
          },
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "Search keywords (used by searchResults, shorts, keywordMonitor, competitorMonitor).",
            "items": {
              "type": "string"
            }
          },
          "videoUrls": {
            "title": "Video URLs",
            "type": "array",
            "description": "YouTube video URLs (for videoDetails mode).",
            "items": {
              "type": "string"
            }
          },
          "channelUrls": {
            "title": "Channel URLs",
            "type": "array",
            "description": "YouTube channel URLs (for channel and competitorMonitor modes).",
            "items": {
              "type": "string"
            }
          },
          "maxPages": {
            "title": "Max Pages",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum pages per query (0 = unlimited, still bounded by maxResults)."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum total results to return (0 = unlimited, hard cap 10000)."
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "relevance",
              "rating",
              "uploadDate",
              "viewCount"
            ],
            "type": "string",
            "description": "Sort order (maps to YouTube sp tokens)."
          },
          "resultType": {
            "title": "Result Type Filter",
            "enum": [
              "any",
              "video",
              "channel",
              "playlist"
            ],
            "type": "string",
            "description": "Restrict results to videos, channels, or playlists only."
          },
          "duration": {
            "title": "Duration Filter",
            "enum": [
              "any",
              "short",
              "medium",
              "long"
            ],
            "type": "string",
            "description": "Filter by video length."
          },
          "uploadDate": {
            "title": "Upload Date Filter",
            "enum": [
              "any",
              "hour",
              "today",
              "week",
              "month",
              "year"
            ],
            "type": "string",
            "description": "Filter by when the video was uploaded."
          },
          "features": {
            "title": "Features",
            "type": "array",
            "description": "Extra video features to require (4K, HD, LIVE, subtitles…). Only first value is applied (YouTube limitation).",
            "items": {
              "type": "string",
              "enum": [
                "4k",
                "hd",
                "live",
                "subtitles",
                "creativeCommons",
                "360",
                "3d",
                "hdr"
              ]
            }
          },
          "hl": {
            "title": "Language (hl)",
            "type": "string",
            "description": "YouTube UI language (en, es, de, fr, ja…). Affects date/view strings."
          },
          "gl": {
            "title": "Geography (gl)",
            "type": "string",
            "description": "Country code that influences ranking (us, gb, de, in…)."
          },
          "device": {
            "title": "Device",
            "enum": [
              "desktop",
              "mobile"
            ],
            "type": "string",
            "description": "Desktop or mobile layout."
          },
          "sp": {
            "title": "Custom SP Token (advanced)",
            "type": "string",
            "description": "Raw YouTube sp token. Overrides sortBy / resultType / duration / uploadDate / features when set."
          },
          "includeContactEnrichment": {
            "title": "Include Contact Enrichment",
            "type": "boolean",
            "description": "Extract email, phone, website and social links from descriptions + lead score."
          },
          "fetchFullDescriptions": {
            "title": "Fetch Full Descriptions",
            "type": "boolean",
            "description": "For search results, optionally open each video to get the complete description (slower, more credits)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}