{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Channel Email Scraper — Creator Leads",
    "description": "Find YouTube creators by keyword or paste channels, and get their public e-mails — from the channel description, recent video descriptions, their website and link-in-bio page — with subscribers, views, country, last upload and every social link. No login, no API key.",
    "version": "0.1",
    "x-build-id": "ffWOcBnEzur8mJuxq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/inovaflow~youtube-channel-email-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-inovaflow-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/inovaflow~youtube-channel-email-scraper/runs": {
      "post": {
        "operationId": "runs-sync-inovaflow-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/inovaflow~youtube-channel-email-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-inovaflow-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": {
          "keywords": {
            "title": "Keywords (find channels)",
            "maxItems": 50,
            "type": "array",
            "description": "What the creators you want talk about, one per line — `skincare routine`, `home workout`, `budget travel`. Each keyword finds the creators behind the videos YouTube ranks for it (see the next option); add more keywords for bigger lists.",
            "items": {
              "type": "string"
            }
          },
          "searchMode": {
            "title": "How keywords find channels",
            "enum": [
              "videos",
              "channels"
            ],
            "type": "string",
            "description": "`videos` (recommended) = the creators behind the videos YouTube ranks for the keyword — real creators in your niche, collaborations included, 200+ channels per keyword. `channels` = YouTube's channel search, which matches channel names and often ranks tiny name-alike channels first (about 150 per keyword).",
            "default": "videos"
          },
          "channelUrls": {
            "title": "Channel URLs, @handles or IDs",
            "maxItems": 5000,
            "type": "array",
            "description": "Channels you already know, one per line: `https://www.youtube.com/@mkbhd`, `@mkbhd`, `UCBJycsmduvYEL83R_U4JriQ`, a `/c/` or `/user/` URL — or any video / Shorts link (its channel is used).",
            "items": {
              "type": "string"
            }
          },
          "maxChannelsPerKeyword": {
            "title": "Maximum channels per keyword",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Stop a keyword after this many channels are delivered. Also caps what you pay.",
            "default": 50
          },
          "minSubscribers": {
            "title": "Minimum subscribers",
            "minimum": 0,
            "type": "integer",
            "description": "Skip channels below this subscriber count (YouTube rounds counts, e.g. 11.2K). Channels that hide their count are skipped when a subscriber filter is set."
          },
          "maxSubscribers": {
            "title": "Maximum subscribers",
            "minimum": 0,
            "type": "integer",
            "description": "Skip channels above this subscriber count — handy for micro-influencer lists."
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Keep only creators whose channel lists one of these countries — names or two-letter codes, one per line (`United States`, `GB`, `Germany`). The first country also steers the keyword search. Channels that list no country are skipped when this is set.",
            "items": {
              "type": "string"
            }
          },
          "onlyWithEmail": {
            "title": "Only channels with a public e-mail",
            "type": "boolean",
            "description": "On = deliver (and charge) only channels where a public e-mail was found. Off = every channel, with its links and stats even when it shows no e-mail.",
            "default": false
          },
          "includeRecentVideos": {
            "title": "Read the latest videos",
            "type": "boolean",
            "description": "Reads the channel's latest 15 uploads: e-mails written in the video descriptions, plus the last upload date, uploads in the last 30 days and the average views of recent videos. One small extra request per channel.",
            "default": true
          },
          "scanWebsites": {
            "title": "Visit the creator's website and link-in-bio page",
            "type": "boolean",
            "description": "Opens the website and the link-in-bio page (Linktree, Beacons, Stan…) linked on the channel and collects the e-mails published there (home page plus up to two contact pages). Roughly doubles the share of channels with an e-mail; adds a few seconds per channel. Shops, tip jars and affiliate links are never opened.",
            "default": true
          },
          "checkEmailDomains": {
            "title": "Check that e-mail domains accept mail",
            "type": "boolean",
            "description": "Looks up each address's mail server (MX record) and marks it in `emailDetails.domainAcceptsMail`. No e-mail is sent. Free.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Channels processed at the same time.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy by default — YouTube's channel pages answer it. Switch to residential only if you see blocks in the log.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}