{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Channel Email Finder - Creator Contacts & Socials",
    "description": "YouTube channel email finder, no login: the business e-mail each channel shows in public (About text, linked pages), socials and numbers. Free: a masked preview of 5 channels. Paid: full contacts. E-mails shown only after sign-in are not opened. Plus an optional AI fit review (beta, paid plans).",
    "version": "0.1",
    "x-build-id": "iq9VgCI7bugmaVgl6"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ntriqpro~youtube-channel-email-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ntriqpro-youtube-channel-email-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/ntriqpro~youtube-channel-email-finder/runs": {
      "post": {
        "operationId": "runs-sync-ntriqpro-youtube-channel-email-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/ntriqpro~youtube-channel-email-finder/run-sync": {
      "post": {
        "operationId": "run-sync-ntriqpro-youtube-channel-email-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": {
          "channels": {
            "title": "YouTube channels",
            "type": "array",
            "description": "Channels to check. Accepts @handles, channel addresses (youtube.com/@name, /channel/UC..., /c/name, /user/name) and channel IDs. The same channel entered twice is read and charged once. A handle or ID YouTube answers does not exist is still a lookup: it comes back as a row with exists: false and is charged as one channel checked. A lookup YouTube refuses (HTTP 403 or 429) comes back as a row with accessRefused: true and is charged once as source-access-checked ($0.008 BRONZE) instead. Free plan: the first 5 channels per run, each row with the channel only (the run's e-mail totals and a paid-run estimate come in a free-plan-preview row). Paid plans: up to 1,000 per run, full public e-mail addresses ($0.032 per channel with one, plus $0.008 per channel, BRONZE). E-mails YouTube shows only after sign-in are not opened on any plan.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Find channels by search",
            "type": "array",
            "description": "Search words (2-100 characters each). Each search made is charged once as search-query ($0.008 BRONZE), also one that returns no channels; every channel it returns is checked and charged like one you entered. A search YouTube refuses (HTTP 403 or 429) is a search row charged once as source-access-checked ($0.008 BRONZE) instead of search-query. Free plan: only the first search is run, and only as many channels as fit in the 5 of the run; paid plans: every search, up to 100 channels each.",
            "items": {
              "type": "string"
            }
          },
          "maxChannelsPerSearch": {
            "title": "Channels per search",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many channels to take from each search (1-100). YouTube returns about 20 a page; more means more requests.",
            "default": 20
          },
          "maxChannels": {
            "title": "Channels per run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "The most channels this run looks at (1-1,000), entered channels first, then search results. Every channel looked up uses a place: one that YouTube answers does not exist is a charged row (exists: false); one that could not be read on our side is not charged. Free plan: 5, whatever is set here.",
            "default": 100
          },
          "followLinks": {
            "title": "Look on the channel's linked pages",
            "type": "boolean",
            "description": "When a channel's About text shows no e-mail address, open up to 3 of the links the channel lists (its website or link page; not social profiles or shops) and read that one page each for an address. Nothing beyond that page is opened.",
            "default": true
          },
          "aiFit": {
            "title": "AI fit review (optional, beta, paid plans)",
            "type": "boolean",
            "description": "Optional AI fit review (beta, paid plans): adds to channel rows a verdict on whether the channel fits your campaign (strong / possible / weak / unclear), with the passages of the channel's own text the verdict rests on. Needs `brief`. It is not made (and not charged) when the run's price list has no fit-reviewed event, the review is not available in the run, `aiMaxItems` is reached, the run's maximum charge does not pay for the whole row, or the run's spending cap for model calls is used up. When this is on, the channel's public About text, name, subscriber text, country and the names of the platforms it links to, together with your brief, are sent to Anthropic's API (United States). E-mail addresses are removed before sending. Free plan: locked — no model is asked.",
            "default": false
          },
          "brief": {
            "title": "Campaign brief",
            "maxLength": 2000,
            "type": "string",
            "description": "What you are looking for, in your own words (20-2,000 characters): the product, the audience you want to reach, what kind of channel suits it and what does not. Example: \"Mechanical keyboard brand looking for English-speaking tech reviewers who cover desk setups; not gaming-only channels.\" Used only with `aiFit`."
          },
          "aiMaxItems": {
            "title": "AI fit reviews per run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "The most channels sent to the model in one run (1-1,000). Channels past it are delivered without a verdict and without that charge.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Off by default: YouTube answers these requests without one. Turn it on if your runs report refused requests: every request to YouTube then leaves through it. Proxy usage is billed by Apify as platform usage. Pages a channel links to are always read directly."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}