{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Channel Email & Sponsor Lead Scraper",
    "description": "Find YouTube creator emails, phones, websites, socials, engagement signals, sponsor history, and lookalike channels from URLs or niche searches.",
    "version": "1.1",
    "x-build-id": "pNz2RLlpLyQXR6bap"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/trakk~youtube-channel-email-sponsor-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-trakk-youtube-channel-email-sponsor-leads",
        "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/trakk~youtube-channel-email-sponsor-leads/runs": {
      "post": {
        "operationId": "runs-sync-trakk-youtube-channel-email-sponsor-leads",
        "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/trakk~youtube-channel-email-sponsor-leads/run-sync": {
      "post": {
        "operationId": "run-sync-trakk-youtube-channel-email-sponsor-leads",
        "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": [
          "scrapeType"
        ],
        "properties": {
          "scrapeType": {
            "title": "🧭 How should we find creators?",
            "enum": [
              "channelContacts",
              "keywordDiscovery",
              "lookalikeDiscovery"
            ],
            "type": "string",
            "description": "Choose one discovery workflow. The relevant list below will be used as your starting point.",
            "default": "channelContacts"
          },
          "channels": {
            "title": "🔗 YouTube channels or videos",
            "type": "array",
            "description": "Paste channel URLs, @handles, channel IDs, or video URLs. Used by the direct channel mode.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "🔍 Keywords or niches",
            "type": "array",
            "description": "Add one focused creator niche per line. Used by keyword discovery.",
            "items": {
              "type": "string"
            }
          },
          "seedChannels": {
            "title": "🧬 Example channels",
            "type": "array",
            "description": "Add creators whose topics should be used to discover similar channels.",
            "items": {
              "type": "string"
            }
          },
          "lookalikeQueriesPerSeed": {
            "title": "🧠 Topic searches per example",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "How many focused searches to derive from each example channel. Three is a balanced starting point."
          },
          "maxChannelsPerQuery": {
            "title": "📌 Candidates per keyword",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum channel candidates collected from each keyword or derived topic before deduplication."
          },
          "maxResults": {
            "title": "📦 Maximum creators to save",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Global result limit for this run after duplicates are removed. Creators dropped by the filters are replaced from further search pages, so a filtered run still aims at this number instead of stopping early.",
            "default": 50
          },
          "region": {
            "title": "🌍 YouTube search region",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "PL",
              "BR",
              "MX",
              "AR",
              "IN",
              "ID",
              "JP",
              "KR",
              "TW",
              "PH",
              "TH",
              "VN",
              "TR",
              "UA",
              "CZ",
              "SE",
              "NO",
              "DK",
              "FI",
              "ZA",
              "AE"
            ],
            "type": "string",
            "description": "Country used to localize search results and channel pages.",
            "default": "US"
          },
          "regionFilter": {
            "title": "🎯 How exact should the region be?",
            "enum": [
              "localized",
              "strict"
            ],
            "type": "string",
            "description": "Localized discovery uses the selected YouTube market but keeps relevant channels from any country. Strict country match keeps only channels that publicly declare the selected country; channels with no published country are excluded.",
            "default": "localized"
          },
          "contactFilter": {
            "title": "🎯 Which creators should be saved?",
            "enum": [
              "allChannels",
              "contactableOnly",
              "emailOnly"
            ],
            "type": "string",
            "description": "Keep every matching creator, or save only leads with a public contact method. \"Creators with an email\" requires an address on a domain that can receive mail; rejected creators are replaced from the remaining search results.",
            "default": "contactableOnly"
          },
          "enrichmentDepth": {
            "title": "⚡ How much detail do you need?",
            "enum": [
              "fast",
              "balanced",
              "deep"
            ],
            "type": "string",
            "description": "Fast uses a light channel and recent-video scan; Balanced adds public websites, profiles, email checks, pinned comments, and sponsor signals; Deep also checks linked secondary channels, older contact-oriented uploads, structured/obfuscated website data, common contact paths, and public contact forms. Deep prioritizes completeness over speed, uses full video-page metadata, and has no results-per-minute target.",
            "default": "balanced"
          },
          "minSubscribers": {
            "title": "📈 Minimum subscribers",
            "minimum": 0,
            "type": "integer",
            "description": "Creators below this subscriber count are excluded. Use 0 for no minimum.",
            "default": 0
          },
          "maxSubscribers": {
            "title": "📉 Maximum subscribers",
            "minimum": 0,
            "type": "integer",
            "description": "Creators above this subscriber count are excluded. Use 0 for no maximum.",
            "default": 0
          },
          "minAverageViews": {
            "title": "👀 Minimum average recent views",
            "minimum": 0,
            "type": "integer",
            "description": "Creators below this average across analyzed recent videos are excluded.",
            "default": 0
          },
          "activeWithinDays": {
            "title": "📅 Uploaded within the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Use 0 to keep creators regardless of their latest upload date.",
            "default": 0
          },
          "minSponsorReadinessScore": {
            "title": "🤝 Minimum Sponsor Readiness Score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Keep creators scoring at or above this value. Use 0 to disable the filter.",
            "default": 0
          },
          "recentVideosToScan": {
            "title": "🎬 Recent videos to analyze",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Used to discover contacts, calculate activity and views, and identify sponsor signals."
          },
          "videoEnrichmentTimeoutSecs": {
            "title": "⏱️ Video analysis budget per creator",
            "minimum": 5,
            "maximum": 30,
            "type": "integer",
            "description": "Maximum total seconds for recent video details and the pinned comment. Partial data is retained."
          },
          "scanPinnedComment": {
            "title": "📌 Scan the newest video's pinned comment",
            "type": "boolean",
            "description": "Check the newest analyzed video's pinned comment for public contacts and links."
          },
          "scanWebsites": {
            "title": "🌐 Scan linked websites",
            "type": "boolean",
            "description": "Inspect linked sites and their most relevant contact pages."
          },
          "followSocialProfiles": {
            "title": "📱 Scan public social and link-in-bio pages",
            "type": "boolean",
            "description": "Inspect linked public profiles and link-in-bio pages for additional contacts."
          },
          "validateEmails": {
            "title": "✅ Validate email domains",
            "type": "boolean",
            "description": "Resolve each address's domain and flag disposable ones. This confirms that the domain publishes mail records; it cannot confirm that the individual mailbox exists, which primaryEmailValidationScope states on every row. With the email-only filter, addresses whose domain has no mail records no longer count as a contact."
          },
          "maxExternalLinks": {
            "title": "🔗 Linked destinations per creator",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum external websites or public profiles inspected for each creator."
          },
          "maxWebsitePages": {
            "title": "📄 Pages per linked website",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum relevant pages inspected on each linked website."
          },
          "websiteScanTimeoutSecs": {
            "title": "⏱️ Website scan budget per creator",
            "minimum": 5,
            "maximum": 30,
            "type": "integer",
            "description": "Maximum total seconds for linked websites and profiles. Contacts found before the deadline are retained."
          },
          "maxConcurrency": {
            "title": "⚡ Creators processed in parallel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Higher values finish large lists faster but make more simultaneous requests. Start with 5–20."
          },
          "maxRetries": {
            "title": "🔁 Maximum request attempts",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Attempts allowed for temporary connection errors and retryable responses."
          },
          "requestTimeoutSecs": {
            "title": "⌛ Request timeout in seconds",
            "minimum": 10,
            "maximum": 90,
            "type": "integer",
            "description": "Maximum total time allowed for an individual request."
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy configuration",
            "type": "object",
            "description": "Apify datacenter proxy is enabled by default to reduce expensive residential fallback traffic. You can disable or replace it."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}