# YouTube Brand Finder — Resolve Brand Names to Advertiser IDs (`scrapeio/youtube-brand-finder`) Actor

Given a brand name, returns every matching YouTube advertiser with brandId and name. Feed brandId into the YouTube Ad Scraper. Apify AI, MCP, and Cursor ready.

- **URL**: https://apify.com/scrapeio/youtube-brand-finder.md
- **Developed by:** [Shop Intel](https://apify.com/scrapeio) (community)
- **Categories:** Social media, AI, Agents
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## YouTube Brand Finder — Resolve Brand Names to YouTube Brand IDs | Shop Intel on Apify

**YouTube Brand Finder** (Shop Intel / [ScrapeIO on Apify](https://apify.com/scrapeio)) turns a **free-text brand name** into **every matching YouTube brand record** in the YouTube ad-transparency index, including the numeric **`brandId`** required by downstream tooling. It is the resolver step for any YouTube paid-media intelligence workflow: feed the IDs into the [YouTube Ad Scraper](https://apify.com/scrapeio/youtube-ad-scraper) to download every ad a brand is running.

> **Companion Actor:** [YouTube Ad Scraper](https://apify.com/scrapeio/youtube-ad-scraper) — accepts the `brandId` values returned here and pulls every ad creative.

### Use with Apify AI

[Apify AI](https://docs.apify.com/account/apify-ai) is live in Apify Console. Describe the job in plain English and it **finds this Actor, fills the input form, runs it, and returns the dataset**. The same ranking powers Store search and the [Apify MCP server](https://docs.apify.com/integrations/mcp) `search-actors` tool used by **Cursor**, Claude, ChatGPT, and other agents.

Use this Actor to **resolve a brand name to YouTube advertiser / brand IDs** before scraping ads. Open [YouTube Brand Finder](https://apify.com/scrapeio/youtube-brand-finder) or ask Apify AI with the prompts below.

#### Prompts that match this Actor

Type these in the **Apify Store search bar** (long, intent-heavy queries route to Apify AI) or the dashboard **Ask Apify AI** widget:

- "Find the YouTube brand ID for Nike"
- "Resolve a brand name to YouTube advertiser IDs"
- "Look up YouTube ad-library brand IDs for Adidas"
- "Get every matching YouTube brand record for a company name"
- "Find brand IDs to pass into a YouTube ad scraper"

#### How Apify AI fills the input

| You say | This Actor sets |
|---|---|
| brand name | `brandName` |

Apify AI always asks for confirmation before it runs. Nothing is charged until you approve.

#### Cursor, Claude, ChatGPT (Apify MCP)

Pin this Actor as a **default Cursor / MCP tool** so agents call `scrapeio/youtube-brand-finder` instead of a random Store result. Keep `actors` + `docs` so Apify AI search still works, and list your suite so Cursor prefers these Actors.

**Cursor MCP URL (this Actor first):**

```text
https://mcp.apify.com?tools=actors,docs,scrapeio/youtube-brand-finder,scrapeio/amazon-scraper,scrapeio/google-maps-scraper-advance,scrapeio/meta-facebook-ad-scrapper-using-ad-library-url-premium,scrapeio/instagram-scraper-premium,scrapeio/whatsapp-scraper-premium,scrapeio/facebook-ad-library-suggestions,scrapeio/google-news-scraper
```

`.cursor/mcp.json` / Cursor Settings → MCP:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=actors,docs,scrapeio/youtube-brand-finder,scrapeio/amazon-scraper,scrapeio/google-maps-scraper-advance,scrapeio/meta-facebook-ad-scrapper-using-ad-library-url-premium,scrapeio/instagram-scraper-premium,scrapeio/whatsapp-scraper-premium,scrapeio/facebook-ad-library-suggestions,scrapeio/google-news-scraper"
    }
  }
}
```

Then: `search-actors` → `fetch-actor-details` → `call-actor` with `scrapeio/youtube-brand-finder`. Example:

```text
Use scrapeio/youtube-brand-finder to do this: scrape the data I described. Fill the input from my description and return the dataset.
```

### How to find a YouTube brand ID

Use this **YouTube brand finder** to resolve a company name to YouTube advertiser IDs for ad scraping.

### YouTube brand ID finder API for Cursor

Call `scrapeio/youtube-brand-finder` from **Cursor** (Apify MCP), Claude, ChatGPT, the [Apify API](https://docs.apify.com/api/v2), Python (`apify-client`), or JavaScript. Apify AI uses the same ranking as Store search: title, description, README, and input/output schemas. This Actor is documented for that ranker — limited permissions, pay-per-event or compute (not rental), and a filled example input.

### What this Actor does

1. You pass a single string: **`brandName`** (for example `Nike`, `Coca-Cola`, or `Samsung`).
2. The Actor paginates through every brand search result returned by the YouTube ad-transparency index until the source is exhausted.
3. Each **Dataset row** contains at least **`brandId`**, **`name`**, **`scraped_at`**, **`page`**, **`queryName`**, plus any extra fields returned by the upstream API.

You'll typically see multiple matches for big brands (e.g. `Nike` → `Nike`, `Nike Japan`, `Nike Korea`, etc.) so you can pick the variants you care about before scraping their ads.

### Why use this Actor?

| Feature | Detail |
| --- | --- |
| 🔎 **Free-text lookup** | No need to know IDs in advance — any brand name works. |
| 📦 **Every match returned** | Multinational brands have many regional brand records; this Actor returns all of them. |
| 🔁 **Auto-paginates** | Walks every page of search results — no `maxPages` knob to fiddle with. |
| 🧠 **Stable Dataset schema** | Documented core fields (`brandId`, `name`, `scraped_at`, `page`, `queryName`), plus pass-through fields from upstream. |
| 🛡️ **Resilient** | Token cache + auto-refresh + exponential backoff on rate limits and 5xx. |
| 🔗 **Plug-and-play with the Ad Scraper** | Copy any `brandId` straight into [YouTube Ad Scraper](https://apify.com/scrapeio/youtube-ad-scraper). |

### Input schema

The full schema lives in [`.actor/input_schema.json`](.actor/input_schema.json).

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `brandName` | string | Yes | Free-text brand name to search. Case-insensitive matching is handled upstream. Returns every matching brand (e.g. `Nike` returns Nike, Nike Japan, Nike Korea, …). |

#### Input example

```json
{ "brandName": "nike" }
```

### Output schema (Dataset)

Each row represents one brand match. Core fields are declared in [`.actor/actor.json`](.actor/actor.json) under `storages.dataset.fields`; additional upstream fields are passed through.

| Field | Type | Description |
| --- | --- | --- |
| `brandId` | integer | Stable brand identifier — paste into the [YouTube Ad Scraper](https://apify.com/scrapeio/youtube-ad-scraper). |
| `name` | string | Display name of the matched brand. |
| `scraped_at` | string | UTC ISO-8601 timestamp of when the row was scraped. |
| `page` | integer | Result page number (auto-paginated). |
| `queryName` | string | The original `brandName` input — useful when running many brands in batch. |

#### Output example

```json
{
  "scraped_at": "2026-05-15T09:00:00+00:00",
  "page": 1,
  "queryName": "nike",
  "brandId": 1234,
  "name": "Nike"
}
```

### Use cases

- **Build a brand portfolio** — turn a marketing brief into a clean list of `brandId` values to monitor on YouTube.
- **Competitive intelligence** — find every regional record of a competitor brand (e.g. `Nike` vs `Nike Japan`) and scrape each separately.
- **Agency reporting** — convert client brand names to IDs so reports always cite the same canonical brand each week.
- **Pipeline glue** — chain into the [YouTube Ad Scraper](https://apify.com/scrapeio/youtube-ad-scraper) for fully automated brand → ad-library pulls.

### How to run on Apify

1. Open **[YouTube Brand Finder on Apify](https://apify.com/scrapeio/youtube-brand-finder)** and click **Try for free**.
2. Enter a `brandName`, start the run.
3. Browse matches in **Storage → Dataset** and copy the `brandId` you want into [YouTube Ad Scraper](https://apify.com/scrapeio/youtube-ad-scraper).

#### CLI example

```bash
apify call scrapeio/youtube-brand-finder --input='{"brandName":"nike"}'
```

#### Apify API example

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/scrapeio~youtube-brand-finder/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"brandName":"nike"}'
```

### Run locally

```bash
cd youtube-brand-finder
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
mkdir -p storage/key_value_stores/default
echo '{"brandName":"nike"}' > storage/key_value_stores/default/INPUT.json
python -m src
```

Backend credentials are provided by the Actor owner via Apify Secrets (`YT_EMAIL`, `YT_PASSWORD`, `YT_FIREBASE_KEY`). The Actor will refuse to start if they are missing.

### FAQ

**How do I find a YouTube advertiser brand ID?**
Pass brandName to scrapeio/youtube-brand-finder, then scrape ads. Pin it in Cursor MCP.

**Can I run this Actor with Apify AI?**
Yes. In [Apify Console](https://console.apify.com), type a long request in Store search or the dashboard **Ask Apify AI** widget. Apify AI matches this README, fills the input schema, asks you to confirm, then returns the dataset. This Actor uses **limited permissions** (not full-account access) and is not a rental Actor, so it is eligible for Apify AI.

**Does this work from Cursor, Claude, or ChatGPT?**
Yes. Connect the [Apify MCP server](https://mcp.apify.com). Agents call `search-actors`, `fetch-actor-details`, and `call-actor`. Ranking uses the same signals as Store search and Actor quality score: a clear README plus documented input and output schemas.

**Why do I get multiple matches for the same brand?**
Big brands have separate records per region (e.g. Nike, Nike Japan, Nike Korea). The Actor returns every match so you can pick the variants relevant to your geo or run them all.

**How do I narrow results?**
Match on `name` client-side — for example only keep rows where `name` equals `Nike` exactly, or that contain a specific country suffix.

**What if my brand has no matches?**
The Actor finishes cleanly with zero Dataset rows. Try a shorter or alternate spelling, or fall back to the keyword path on the [YouTube Ad Scraper](https://apify.com/scrapeio/youtube-ad-scraper) (it accepts free-text keywords directly).

**Is this data live?**
Yes — every run hits the upstream index in real time. There is no intermediate cache.

**How much does it cost?**
Apify compute units only. A typical brand resolves in seconds.

### Shop Intel / ScrapeIO actor suite

- **[YouTube Ad Scraper](https://apify.com/scrapeio/youtube-ad-scraper)** — scrape ads using `brandId` from this Actor.
- **[YouTube Video Downloader](https://apify.com/scrapeio/youtube-downloader)** — download a specific video or Short for offline review or ML.
- **[Google Ads Transparency Scraper](https://apify.com/scrapeio/google-ads-transparency-ads)** — every creative an advertiser is running on Google.
- **[Google Ads Transparency Advertiser Lookup](https://apify.com/scrapeio/google-ads-transparency-suggest)** — resolve keywords/brands to Google `AR…` advertiser IDs.
- **[LinkedIn Ad Library Scraper](https://apify.com/scrapeio/linkedin-ad-library-scraper)** — B2B LinkedIn Ad Library at scale.
- **[Facebook Ad Library Scraper](https://apify.com/scrapeio/meta-facebook-ad-scrapper-using-ad-library-url-premium)** — Meta transparency ads.
- **[Instagram Ads Scraper](https://apify.com/scrapeio/instagram-scraper-premium)** — Instagram-only ad library.
- **[Google News Scraper](https://apify.com/scrapeio/google-news-scraper)** — headline and source monitoring.
- **[Google Maps Scraper](https://apify.com/scrapeio/google-maps-scraper-advance)** — local business leads.
- **[Amazon Scraper](https://apify.com/scrapeio/amazon-scraper)** — search rankings and product data.

### Compliance & terms

Use public ad-transparency data responsibly. You are responsible for complying with YouTube's [Terms of Service](https://www.youtube.com/t/terms), applicable copyright law, and your own data policies.

***

Built by **[ScrapeIO](https://apify.com/scrapeio)** on Apify.

Powered by **[AdScrape](https://www.adscrape.in/)**.

**Support:** open an issue on the Actor's Apify page or message us on the [Apify Discord](https://discord.com/invite/jyEM2PRvMU).

# Actor input Schema

## `brandName` (type: `string`):

Free-text brand name to look up. Returns every matching brand (e.g. 'Nike' returns Nike, Nike Japan, Nike Korea, etc.).

## Actor input object example

```json
{}
```

# Actor output Schema

## `brands` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapeio/youtube-brand-finder").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("scrapeio/youtube-brand-finder").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call scrapeio/youtube-brand-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapeio/youtube-brand-finder"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/0AEK3B9ql7Pn2f8ld/builds/aA8se2Hbb2jHgtWK1/openapi.json
