{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Channel Email Scraper — Creator & Influencer Leads",
    "description": "Find YouTube creators by keyword or channel list. One lead row per channel: public e-mail and where it was found, website and social links, plus recent-video average and median views, like rate, upload frequency and sponsor signals. No login, no API key.",
    "version": "0.1",
    "x-build-id": "eu28qWWNvzOMFczxK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/foxlabs~youtube-channel-email-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-foxlabs-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/foxlabs~youtube-channel-email-scraper/runs": {
      "post": {
        "operationId": "runs-sync-foxlabs-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/foxlabs~youtube-channel-email-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-foxlabs-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": {
          "searchKeywords": {
            "title": "Search keywords (niches)",
            "type": "array",
            "description": "One niche or topic per line, the way you would type it into YouTube search: \"drone review\", \"skincare routine\", \"budget mechanical keyboards\". Each keyword brings the channels YouTube ranks for it. Specific keywords find more relevant creators than broad ones.",
            "items": {
              "type": "string"
            }
          },
          "channels": {
            "title": "Channels (optional)",
            "type": "array",
            "description": "Already know the channels? One per line: a channel URL (https://www.youtube.com/@mkbhd), an @handle (@mkbhd) or a channel ID (UC…). A line that is not an existing channel comes back as a free status row that says why.",
            "items": {
              "type": "string"
            }
          },
          "maxChannels": {
            "title": "Maximum channels",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "How many channel rows to deliver in total. The run stops here; you are charged only for delivered rows.",
            "default": 50
          },
          "discoverFrom": {
            "title": "Where keywords look for channels",
            "enum": [
              "channels-and-videos",
              "channels",
              "videos"
            ],
            "type": "string",
            "description": "Channel search lists channels whose name or description matches the keyword (many are small). The creators behind the top videos are channels that actually rank for the keyword. Both gives the widest list.",
            "default": "channels-and-videos"
          },
          "maxChannelsPerKeyword": {
            "title": "Maximum channels per keyword (optional)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Limits how many rows one keyword may deliver, so a list of keywords is covered evenly. Leave empty for no per-keyword limit."
          },
          "minSubscribers": {
            "title": "Minimum subscribers",
            "minimum": 0,
            "type": "integer",
            "description": "Only channels with at least this many subscribers. Channel search returns many very small channels; 10000 keeps the ones with a real audience. Channels that hide their subscriber count are left out when this is above 0. Filtered channels are not delivered and not charged.",
            "default": 0
          },
          "maxSubscribers": {
            "title": "Maximum subscribers (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Only channels with at most this many subscribers, for example 100000 for micro-creators. Leave empty (or 0) for no upper limit."
          },
          "countries": {
            "title": "Countries (optional)",
            "type": "array",
            "description": "Only channels whose stated country is in this list. Write country names or two-letter codes: United States, US, Germany, DE. Channels that state no country are left out when the list is filled. Leave empty for all countries.",
            "items": {
              "type": "string"
            }
          },
          "uploadedWithinDays": {
            "title": "Uploaded within the last N days (optional)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Only channels whose latest upload is at most this many days old, for example 30 for active creators. Leave empty to include inactive channels."
          },
          "minMedianViews": {
            "title": "Minimum median views of recent videos (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Only channels whose recent uploads (the latest 15 at most) reach at least this median number of views. Leave empty for no limit."
          },
          "onlyWithEmail": {
            "title": "Only channels with a public e-mail",
            "type": "boolean",
            "description": "Deliver a channel only if a public e-mail was found for it. Channels without one are not delivered and not charged.",
            "default": false
          },
          "scanWebsites": {
            "title": "Look on the channel's own website",
            "type": "boolean",
            "description": "When YouTube itself shows no usable address, open the website the channel links to (home page and one contact page) and take an address only if it is on that site's own domain, or is a free mailbox (Gmail and the like) shown there. Addresses of other companies found there are ignored.",
            "default": true
          },
          "checkEmailDomains": {
            "title": "Check that the e-mail's domain accepts mail",
            "type": "boolean",
            "description": "A DNS lookup per address (nothing is sent to the mailbox). An address whose domain cannot receive mail is listed but not used as the row's e-mail.",
            "default": true
          },
          "onlyNewChannels": {
            "title": "Only channels not delivered before",
            "type": "boolean",
            "description": "Remember delivered channels under the list name below and skip them in later runs. Schedule the same keywords weekly and each run brings only creators you have not received yet.",
            "default": false
          },
          "listName": {
            "title": "List name",
            "type": "string",
            "description": "Name of the memory used by \"Only channels not delivered before\". Use a different name for each campaign. Letters, digits and hyphens (a hyphen not first or last), up to 40 characters; capitals are read as lower case.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Nothing to change for normal use: requests go out directly, and a kind of request YouTube refuses (or keeps leaving unanswered) is moved to Apify Proxy by the Actor itself. Turn a proxy on here only if you want every request to use it.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}