{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Channel Email Scraper — Emails, Phones & Socials",
    "description": "Find emails, phone numbers and social profiles for YouTube channels by niche or channel URL, including Instagram, TikTok and X links. Follows Linktree pages and websites to reach contact details. No login needed; works with Apify MCP and the API.",
    "version": "1.2",
    "x-build-id": "ae64IIxg0JUbgobaa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~youtube-channel-email-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-youtube-channel-email-extractor",
        "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/khadinakbar~youtube-channel-email-extractor/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-youtube-channel-email-extractor",
        "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/khadinakbar~youtube-channel-email-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-youtube-channel-email-extractor",
        "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": {
          "channelUrls": {
            "title": "YouTube channel URLs",
            "type": "array",
            "description": "Use this field when the user provides specific YouTube channel names, handles, or URLs (e.g. '@mkbhd', 'youtube.com/@MrBeast', a list of creators). Accepts @handle URLs, /channel/ID URLs, or video URLs. Each URL = 1 channel scraped. Use channelUrls when the user says 'get emails for these channels', 'scrape this list of YouTubers', or 'find contact info for [specific creator]'. You can combine with searchQueries.",
            "default": [
              "https://www.youtube.com/@aliabdaal"
            ],
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search by niche or keyword (auto-discover channels)",
            "type": "array",
            "description": "Use this field when the user describes a niche, topic, or industry instead of specific channels (e.g. 'fitness influencers', 'tech reviewers', 'cooking YouTube channels'). The actor searches YouTube and auto-discovers matching channels. Use searchQueries when the user says 'find YouTube channels about X', 'build me a list of influencers in [niche]', 'discover creators who cover [topic]', or 'get emails for [industry] YouTubers'. Each query returns up to 20 channels. Stack multiple queries for large lists.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Maximum channels to scrape",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many YouTube channels to extract contact data from in total (across all URLs and search queries combined). Set to 10–20 for a quick test. Set to 500–5000 for bulk influencer outreach lists. A channel with a public email charges the $0.05 Channel Result event. Optional inquiry unlock (when enabled and successful) charges a separate $0.12 event. Default: 100 channels.",
            "default": 100
          },
          "scrapeWebsite": {
            "title": "Follow linked website to find hidden emails",
            "type": "boolean",
            "description": "When enabled, the actor visits the website linked on each channel's About page and scrapes it for additional email addresses and contact info. This is the most powerful feature — many creators list their business email only on their website, not on YouTube. Increases email hit rate by 30–50%. Slightly increases run time. Highly recommended: keep this ON.",
            "default": true
          },
          "followLinkAggregators": {
            "title": "Follow Linktree, Beacons, Bio.link pages",
            "type": "boolean",
            "description": "When enabled, the actor follows link aggregator pages (Linktree, Beacons.ai, Bio.link, Campsite, Bento, etc.) found in channel About sections. These pages often contain business emails, booking links, and all social profiles in one place. Recommended: keep this ON for maximum contact data coverage.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "HTTP proxy settings. The actor uses Apify Residential proxies by default — these are required for reliable YouTube access. Only change this if you have a specific proxy provider or want to use your own proxies. Leave default for best results."
          },
          "unlockBusinessInquiryEmail": {
            "title": "Also unlock YouTube \"View email address\" (optional, needs your Google cookies)",
            "type": "boolean",
            "description": "Most users leave this OFF. Default public scrape already reads About text, mailto links, websites, and Linktree-style pages. Turn this ON only when the user explicitly wants the business inquiry email behind YouTube's \"View email address\" button (login-gated). Requires youtubeSessionCookies owned by the caller. Costs a separate $0.12 inquiry-email-unlocked event only when unlock succeeds for a channel that had no public email. Captcha, expired cookies, and daily limits can still return no email — there is no guarantee. Never enable for smoke tests or MCP probes. Never invent cookies.",
            "default": false
          },
          "youtubeSessionCookies": {
            "title": "YouTube session cookies (secret)",
            "type": "string",
            "description": "Required only when unlockBusinessInquiryEmail is true. Paste a logged-in YouTube/Google session as a Cookie header string (for example SAPISID=…; __Secure-3PSID=…; LOGIN_INFO=…) or a JSON object of {cookieName: value}. Use a session the caller owns. Cookies are used only for the optional inquiry unlock path, are never written to the dataset or OUTPUT, and expired cookies produce an honest miss rather than a crash. Leave empty when unlock is off. Agents must ask the user for cookies — never invent them."
          },
          "maxInquiryUnlocksPerRun": {
            "title": "Max inquiry unlocks this run",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of channels for which the optional View-email unlock may be attempted in this run (only when unlock is on and the public path found no email). Use 1–5 for tests. Raise only when the user asks for bulk gated unlocks. Range 1–50. Default 10. Protects the caller's Google session from burn.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}