{
  "openapi": "3.0.1",
  "info": {
    "title": "Youtube Email Scraper",
    "description": "YouTube Email Scraper collects creator email data to support audience research and outreach. Filter by niche, country, or channel size to analyze creator ecosystems and connect with relevant publishers efficiently.",
    "version": "0.1",
    "x-build-id": "LJY19S09qiSyHqPzP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/simpleapi~youtube-email-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-simpleapi-youtube-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/simpleapi~youtube-email-scraper/runs": {
      "post": {
        "operationId": "runs-sync-simpleapi-youtube-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/simpleapi~youtube-email-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-simpleapi-youtube-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",
        "required": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "🔑 Keywords (required)",
            "type": "array",
            "description": "🧠 Brainstorm what your ideal channel would say in its title or bio.\n\n✅ Examples: marketing, founder, SaaS, podcast, coaching.\n\n📌 One keyword per line — the actor searches Google with site:youtube.com and enriches results with channel-page emails.\n\n🚀 More relevant keywords = better matches!",
            "items": {
              "type": "string"
            }
          },
          "platform": {
            "title": "🌐 Platform",
            "enum": [
              "Youtube"
            ],
            "type": "string",
            "description": "📺 Right now this actor is tuned for YouTube — the home of creators and brands.\n\n✨ Pick YouTube and you are good to go!",
            "default": "Youtube"
          },
          "location": {
            "title": "📍 Location filter",
            "type": "string",
            "description": "🗺️ Optional but powerful — add a city, region, or country to bias Google results.\n\n✅ Examples: London 🇬🇧, New York 🇺🇸, Berlin 🇩🇪.\n\n🌍 Leave empty to search worldwide.\n\n💡 Great for local outreach and geo-targeted campaigns!",
            "default": ""
          },
          "emailDomains": {
            "title": "📧 Email domain allowlist",
            "type": "array",
            "description": "🎯 Keep your list clean — only keep addresses on domains you care about.\n\n✅ Examples: @gmail.com, @outlook.com, @company.com.\n\n📭 Leave empty to accept every public email we find.\n\n🔒 Pairs nicely with outreach tools that prefer certain providers!",
            "items": {
              "type": "string"
            }
          },
          "maxEmails": {
            "title": "🔢 Max emails per keyword",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "🎚️ Set a cap so each keyword stops after N unique emails (default 20).\n\n⬆️ Raise it for big campaigns; ⬇️ lower it for quick tests.\n\n📊 Range: 1–5000 — balance speed, cost, and how deep you want to paginate.",
            "default": 20
          },
          "engine": {
            "title": "⚙️ Scraping engine",
            "enum": [
              "legacy",
              "cost-effective"
            ],
            "type": "string",
            "description": "🛠️ Pick the engine that matches your run:\n\n🔧 Legacy — GOOGLE_SERP proxy + classic parsing. 💪 Reliable for Google on Apify; can be slower / pricier.\n\n🚀 Cost-effective — starts on residential proxies. ⚡ Often faster and cheaper for mixed Google + YouTube fetches.\n\n💡 Not sure? Start with Legacy; switch if you want to optimize spend.",
            "default": "legacy"
          },
          "proxyConfiguration": {
            "title": "🔌 Proxy configuration",
            "type": "object",
            "description": "🌍 Control how requests leave Apify’s cloud.\n\n🏠 Apify Proxy can help when Google or YouTube rate-limit you.\n\n🔄 If a request looks blocked, the actor tries smart fallbacks (e.g. GOOGLE_SERP → datacenter → residential) so your run keeps moving.\n\n✨ Leave default off if you are testing locally; enable for production scale."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}