{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Emerging Creator Finder & Growth Tracker",
    "description": "Discover YouTube micro-creators by niche and subscriber range. Compare recent video performance, keep Shorts separate, and measure observed growth across repeat runs. Includes source videos and transparent metrics for sponsorship research.",
    "version": "1.0",
    "x-build-id": "JobS3fxMuIM3N4sbo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/agency-shift~youtube-emerging-creators/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-agency-shift-youtube-emerging-creators",
        "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/agency-shift~youtube-emerging-creators/runs": {
      "post": {
        "operationId": "runs-sync-agency-shift-youtube-emerging-creators",
        "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/agency-shift~youtube-emerging-creators/run-sync": {
      "post": {
        "operationId": "run-sync-agency-shift-youtube-emerging-creators",
        "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": {
          "searchQueries": {
            "title": "YouTube search queries",
            "maxItems": 10,
            "type": "array",
            "description": "Search topics such as AI automation tutorials or SaaS product reviews, one per line. Discovery uses a bounded sample of YouTube search results. Clear this field to analyze only your channel URLs. If neither searchQueries nor channelUrls is supplied, the Actor uses AI automation tutorials.",
            "items": {
              "type": "string",
              "maxLength": 200,
              "minLength": 1
            }
          },
          "channelUrls": {
            "title": "Known YouTube channel URLs",
            "maxItems": 100,
            "type": "array",
            "description": "Optional public YouTube channel URLs, such as https://www.youtube.com/@n8n or https://www.youtube.com/channel/UC.... Channels still must meet your subscriber and recent-video filters. Use an empty searchQueries list for URL-only runs.",
            "items": {
              "type": "string",
              "maxLength": 300,
              "minLength": 1
            },
            "default": []
          },
          "maxChannels": {
            "title": "Maximum delivered channels",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Return at most this many unique qualifying channel profiles. The run spending limit can reduce this number. Fewer results can be returned when candidates fail filters or source pages are unavailable.",
            "default": 20
          },
          "maxCandidates": {
            "title": "Maximum channels to investigate",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum candidate channels to enrich before filtering and ranking. Must be at least maxChannels. Increasing this can improve the shortlist but adds requests and runtime; it does not guarantee a complete search of YouTube.",
            "default": 60
          },
          "minSubscribers": {
            "title": "Minimum subscribers",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Inclusive lower bound on the disclosed subscriber count. Rounded source counts are approximate and marked in the output. Hidden or unavailable counts cannot pass subscriber bounds.",
            "default": 1000
          },
          "maxSubscribers": {
            "title": "Maximum subscribers",
            "minimum": 1,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Inclusive upper bound on the disclosed subscriber count. Must be at least minSubscribers. The default targets creators with up to 100,000 subscribers.",
            "default": 100000
          },
          "recentVideos": {
            "title": "Recent videos per format",
            "minimum": 5,
            "maximum": 30,
            "type": "integer",
            "description": "Maximum recent videos collected per channel for long-form analysis and, when enabled, a separate Shorts analysis. Fewer may be available in the bounded public page sample. This is separate from the analysis-window filter.",
            "default": 12
          },
          "includeShorts": {
            "title": "Include separate Shorts analysis",
            "type": "boolean",
            "description": "Collect available Shorts and analyze them separately from long-form uploads. Shorts never enter the long-form median or long-form breakout comparison.",
            "default": true
          },
          "analysisWindowDays": {
            "title": "Analysis window in days",
            "minimum": 7,
            "maximum": 365,
            "type": "integer",
            "description": "Only sampled videos with a known publication date within this lookback window enter recent-video statistics. Relative source dates are approximate. This window is not the growth measurement interval.",
            "default": 90
          },
          "minRecentVideos": {
            "title": "Minimum recent videos",
            "minimum": 3,
            "maximum": 30,
            "type": "integer",
            "description": "Minimum usable recent long-form videos required for a channel to qualify. Keep this at or below recentVideos. Shorts are supplementary and do not satisfy this filter. Breakout flags always require at least 5 eligible videos, even if you set this to 3 or 4.",
            "default": 5
          },
          "outlierMultiplier": {
            "title": "Breakout view multiple",
            "minimum": 1.5,
            "maximum": 20,
            "type": "number",
            "description": "Flag a video when its public views reach this multiple of the median views of the other eligible sampled videos in the same format. Requires a positive comparison baseline and sufficient sample size. This does not establish organic growth or sponsorship value.",
            "default": 3
          },
          "monitorName": {
            "title": "Monitor name (optional)",
            "pattern": "^(?:[a-z0-9][a-z0-9-]{0,39})?$",
            "type": "string",
            "description": "Reuse a name to compare each delivered channel with its last delivered observation for this Actor and Apify account. Use 1–40 lowercase letters, numbers or hyphens, starting with a letter or number. Leave blank for independent snapshots. The first observation has no measured growth. Every run can return and charge the same qualifying channels again.",
            "default": ""
          },
          "country": {
            "title": "Search country hint",
            "pattern": "^[A-Z]{2}$",
            "type": "string",
            "description": "YouTube search localization hint, such as US. This does not filter or verify creator location or audience demographics. A channel's separately disclosed country is returned when available.",
            "default": "US"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Public YouTube requests try a direct connection first and use this proxy configuration as fallback. Apify Proxy is enabled by default for fallback. Residential proxy groups are not supported at the fixed profile price. Custom proxy URLs are supported.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}