{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Channel Email Scraper",
    "description": "Extract business emails, contact info, and social media links from YouTube channel About pages. Supports @handles, channel URLs, and channel IDs.",
    "version": "0.0",
    "x-build-id": "X7xAbVMnncN6UZMxW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lurkapi~youtube-channel-email-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lurkapi-youtube-channel-email-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/lurkapi~youtube-channel-email-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lurkapi-youtube-channel-email-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/lurkapi~youtube-channel-email-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lurkapi-youtube-channel-email-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": {
          "urls": {
            "title": "YouTube URLs, @handles, or Channel IDs",
            "maxItems": 500,
            "type": "array",
            "description": "YouTube channel URLs, @handles, channel IDs, or video URLs.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search Keywords",
            "maxItems": 20,
            "type": "array",
            "description": "Search YouTube for channels by keyword. Discovers channels from both channel and video results. Charged per search query.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerQuery": {
            "title": "Max Channels Per Search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many channels to find and process per keyword search. Lower this to save costs, raise it to discover more creators.",
            "default": 20
          },
          "country": {
            "title": "Country",
            "enum": [
              "",
              "United States",
              "United Kingdom",
              "Canada",
              "Australia",
              "Germany",
              "France",
              "Spain",
              "Italy",
              "Netherlands",
              "Belgium",
              "Switzerland",
              "Austria",
              "Sweden",
              "Norway",
              "Denmark",
              "Finland",
              "Ireland",
              "Portugal",
              "Poland",
              "Czech Republic",
              "Romania",
              "Hungary",
              "Greece",
              "Turkey",
              "Russia",
              "Ukraine",
              "Israel",
              "India",
              "Japan",
              "South Korea",
              "China",
              "Taiwan",
              "Thailand",
              "Indonesia",
              "Malaysia",
              "Philippines",
              "Vietnam",
              "Singapore",
              "Brazil",
              "Mexico",
              "Argentina",
              "Colombia",
              "Chile",
              "South Africa",
              "Nigeria",
              "Kenya",
              "Egypt",
              "Saudi Arabia",
              "United Arab Emirates",
              "New Zealand"
            ],
            "type": "string",
            "description": "Filter keyword search results by country. Leave empty to search all countries.",
            "default": ""
          },
          "language": {
            "title": "Language",
            "enum": [
              "",
              "English",
              "Spanish",
              "French",
              "German",
              "Italian",
              "Portuguese",
              "Dutch",
              "Russian",
              "Japanese",
              "Korean",
              "Chinese",
              "Arabic",
              "Hindi",
              "Bengali",
              "Turkish",
              "Polish",
              "Ukrainian",
              "Romanian",
              "Czech",
              "Hungarian",
              "Swedish",
              "Norwegian",
              "Danish",
              "Finnish",
              "Greek",
              "Hebrew",
              "Thai",
              "Vietnamese",
              "Indonesian",
              "Malay",
              "Filipino",
              "Swahili",
              "Persian",
              "Urdu"
            ],
            "type": "string",
            "description": "Language for keyword search results. Leave empty to search all languages.",
            "default": ""
          },
          "joinedDateFrom": {
            "title": "Joined After",
            "type": "string",
            "description": "Only include channels that joined YouTube after this date. Channels older than this are skipped (not charged)."
          },
          "joinedDateTo": {
            "title": "Joined Before",
            "type": "string",
            "description": "Only include channels that joined YouTube before this date. Channels newer than this are skipped (not charged)."
          },
          "scanLinkedWebsites": {
            "title": "Scan Linked Websites for Emails",
            "type": "boolean",
            "description": "Visit websites linked on the channel's About page (including /contact and /about pages) and scan them for email addresses.",
            "default": true
          },
          "validateEmails": {
            "title": "Validate Emails (MX + Disposable Check)",
            "type": "boolean",
            "description": "Check if email addresses have valid mail servers and flag disposable/throwaway addresses. Charged per email validated.",
            "default": true
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Number of channels to process at the same time (1-5). Higher values are faster but may cause occasional timeouts on YouTube API calls.",
            "default": 3
          },
          "proxyConfig": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Select proxies for accessing YouTube.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": []
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}