{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Creator Finder — Qualified Leads",
    "description": "Find active YouTube creators by niche, language, and country. Filter subscribers, upload cadence, recent median views, content format, engagement, and public business contacts including emails. Export deduplicated, explainable leads for agencies, brands, SaaS, sponsors, and creator services.",
    "version": "0.1",
    "x-build-id": "3TgiANOglNjIkKZ4u"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kazkn~youtube-creator-lead-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kazkn-youtube-creator-lead-finder",
        "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/kazkn~youtube-creator-lead-finder/runs": {
      "post": {
        "operationId": "runs-sync-kazkn-youtube-creator-lead-finder",
        "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/kazkn~youtube-creator-lead-finder/run-sync": {
      "post": {
        "operationId": "run-sync-kazkn-youtube-creator-lead-finder",
        "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": {
          "preset": {
            "title": "🎯 Prospecting result",
            "enum": [
              "quick_leads",
              "qualified_shortlist",
              "contact_ready"
            ],
            "type": "string",
            "description": "Choose a workflow label. Quick leads and qualified shortlist use your explicit controls; contact-ready also requires a qualifying public contact.",
            "default": "qualified_shortlist"
          },
          "niches": {
            "title": "🔎 Niches or topics",
            "minItems": 0,
            "maxItems": 20,
            "uniqueItems": true,
            "type": "array",
            "description": "Add 1–20 niches such as B2B SaaS, AI automation, ecommerce, or fitness.",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 120
            },
            "default": [
              "B2B SaaS"
            ]
          },
          "languages": {
            "title": "🗣 Creator languages",
            "maxItems": 10,
            "uniqueItems": true,
            "type": "array",
            "description": "Select one or more creator languages. Discovery uses YouTube hints, then keeps only channels whose primary language is confirmed from recent public metadata or text.",
            "items": {
              "type": "string",
              "enum": [
                "ar",
                "de",
                "en",
                "es",
                "fr",
                "hi",
                "id",
                "it",
                "ja",
                "ko",
                "nl",
                "pl",
                "pt",
                "ru",
                "tr",
                "uk",
                "vi",
                "zh"
              ]
            },
            "default": [
              "en"
            ]
          },
          "countries": {
            "title": "🌍 Country hints",
            "maxItems": 15,
            "uniqueItems": true,
            "type": "array",
            "description": "Select one or more creator countries. When worldwide mode is off, channels without confirmed matching geography are excluded; declared and inferred geography remain separate.",
            "items": {
              "type": "string",
              "enum": [
                "AR",
                "AU",
                "BR",
                "CA",
                "CH",
                "CL",
                "CO",
                "DE",
                "ES",
                "FR",
                "GB",
                "ID",
                "IN",
                "IT",
                "JP",
                "KR",
                "MA",
                "MX",
                "NL",
                "PL",
                "PT",
                "SG",
                "TR",
                "US"
              ]
            },
            "default": []
          },
          "worldwideLanguageMode": {
            "title": "🌐 Search each language worldwide",
            "type": "boolean",
            "description": "Ignore country hints; for example, find French-speaking creators worldwide.",
            "default": true
          },
          "maxChannels": {
            "title": "📦 Maximum qualified channels",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Stop after this many unique channel rows. Hard maximum: 200.",
            "default": 25
          },
          "minSubscribers": {
            "title": "👥 Minimum subscribers",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Minimum public subscriber count when available; unavailable stays unknown.",
            "default": 1000
          },
          "maxSubscribers": {
            "title": "👥 Maximum subscribers",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Maximum public subscriber count when available.",
            "default": 1000000
          },
          "minVideosPerMonth": {
            "title": "📅 At least this many videos per month",
            "minimum": 0,
            "maximum": 200,
            "type": "number",
            "description": "Minimum estimated publishing cadence over the recent 90-day sample.",
            "default": 0
          },
          "maxVideosPerMonth": {
            "title": "📅 No more than this many videos per month",
            "minimum": 0,
            "maximum": 200,
            "type": "number",
            "description": "Maximum estimated publishing cadence over the recent 90-day sample.",
            "default": 200
          },
          "lastUploadWithinDays": {
            "title": "🕒 Published within the last (days)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Require a public upload within this many days when upload data exists.",
            "default": 90
          },
          "minRecentMedianViews": {
            "title": "📈 At least this many median views",
            "minimum": 0,
            "maximum": 10000000000,
            "type": "integer",
            "description": "Minimum median across the bounded recent-video sample.",
            "default": 0
          },
          "maxRecentMedianViews": {
            "title": "📉 No more than this many median views",
            "minimum": 0,
            "maximum": 10000000000,
            "type": "integer",
            "description": "Maximum median across the bounded recent-video sample.",
            "default": 10000000000
          },
          "minEngagementRate": {
            "title": "💬 Minimum engagement rate (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Applied only when public views, likes, and comments make the metric calculable.",
            "default": 0
          },
          "contentFormats": {
            "title": "🎬 Content formats",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "Include long-form, Shorts, or live. Classification can remain unknown with confidence.",
            "items": {
              "type": "string",
              "enum": [
                "long-form",
                "Shorts",
                "live"
              ]
            },
            "default": [
              "long-form",
              "Shorts",
              "live"
            ]
          },
          "minChannelAgeMonths": {
            "title": "🗓 Minimum channel age (months)",
            "minimum": 0,
            "maximum": 300,
            "type": "integer",
            "description": "Minimum channel age when the public creation date exists.",
            "default": 0
          },
          "requirePublicBusinessContact": {
            "title": "📬 Require a public business contact",
            "type": "boolean",
            "description": "Keep only channels with an exact publicly exposed contact source. Contact-ready always enables this.",
            "default": false
          },
          "contactTypes": {
            "title": "🔗 Contact routes that count",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "Business email, website, and social are currently supported from public channel descriptions. Contact form and management are reserved for future providers and are not selected by default. Private or guessed email is never accepted.",
            "items": {
              "type": "string",
              "enum": [
                "business_email",
                "website",
                "contact_form",
                "social",
                "management"
              ],
              "enumTitles": [
                "Business email",
                "Website",
                "Contact form — reserved",
                "Social profile",
                "Management — reserved"
              ]
            },
            "default": [
              "business_email",
              "website",
              "social"
            ]
          },
          "searchQueries": {
            "title": "🔎 Extra search phrases",
            "maxItems": 30,
            "uniqueItems": true,
            "type": "array",
            "description": "Optional query phrases added to the niche discovery matrix.",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 200
            },
            "default": []
          },
          "seedChannelUrls": {
            "title": "🌱 Starting channels (optional)",
            "maxItems": 20,
            "uniqueItems": true,
            "type": "array",
            "description": "Public YouTube channel URLs to qualify in addition to automatic discovery.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "excludedKeywords": {
            "title": "🚫 Exclude these words",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Exclude candidates whose public name or description contains any term.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120
            },
            "default": []
          },
          "excludedChannelUrls": {
            "title": "🚫 Excluded channels",
            "maxItems": 500,
            "uniqueItems": true,
            "type": "array",
            "description": "Public YouTube channel URLs that must never be returned.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "sortBy": {
            "title": "↕️ Rank creators by",
            "enum": [
              "opportunityScore",
              "recentMedianViews",
              "subscriberCount",
              "lastUploadAt",
              "estimatedVideosPerMonth"
            ],
            "type": "string",
            "description": "Choose the primary ordering for qualified channels.",
            "default": "opportunityScore"
          },
          "sortDirection": {
            "title": "↕️ Sort direction",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Show the highest or lowest values first.",
            "default": "desc"
          },
          "videosAnalyzedPerChannel": {
            "title": "🔬 Recent videos checked per creator",
            "minimum": 3,
            "maximum": 20,
            "type": "integer",
            "description": "Bounded public-video sample per candidate; 3–20.",
            "default": 10
          },
          "maximumSearchCalls": {
            "title": "🛑 Discovery search budget",
            "minimum": 1,
            "maximum": 40,
            "type": "integer",
            "description": "Hard global search-call cap across every query, language, and country combination; 1–40.",
            "default": 20
          },
          "maximumLinkedHostsPerChannel": {
            "title": "🛡 Linked-site limit per creator",
            "minimum": 0,
            "maximum": 3,
            "type": "integer",
            "description": "Reserved cap for linked-site inspection. The current private provider extracts public business email, website, and social links from the YouTube channel description without fetching external sites.",
            "default": 3
          },
          "deduplicationMode": {
            "title": "🧹 Duplicate handling",
            "enum": [
              "channel_id"
            ],
            "type": "string",
            "description": "Return exactly one Dataset row per stable channelId.",
            "default": "channel_id"
          },
          "sourceMode": {
            "title": "🔒 Data source",
            "enum": [
              "live",
              "fixture"
            ],
            "type": "string",
            "description": "Keep live for the official provider. Fixture runs sanitized, deterministic, non-live data with no external network or billing. MUST_BE_REMOVED_OR_PROTECTED_BEFORE_PUBLICATION.",
            "default": "live"
          },
          "fixtureScenario": {
            "title": "Fixture scenario",
            "enum": [
              "baseline",
              "empty",
              "partial",
              "quota_exhausted",
              "contact_blocked",
              "schema_drift"
            ],
            "type": "string",
            "description": "Choose the deterministic sanitized non-live scenario used only when Data source is fixture.",
            "default": "baseline"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}