# Brand / Product Mention Scraper (`c0nst/brand-name-scraper`) Actor

Find out how often any brand, product, or name is mentioned across a website — and on how many pages. Useful for competitor research, PR monitoring, market analysis, and influencer prospecting. Just enter the URLs and scraper will count how many times each brand or product name is mentioned.

- **URL**: https://apify.com/c0nst/brand-name-scraper.md
- **Developed by:** [Kostiantyn](https://apify.com/c0nst) (community)
- **Categories:** Automation, E-commerce, Developer tools
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $100.00 / 1,000 site scrapes

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Brand & Product Mention Scraper

Find out how often any brand, product, or name is mentioned across a website — and on how many pages. Useful for competitor research, PR monitoring, market analysis, and influencer prospecting.

### What does Brand & Product Mention Scraper do?

**Brand & Product Mention Scraper** crawls the websites you provide, scans every page for the brand and product names you specify, and returns a count of how many times each name was mentioned and on how many pages it appeared. Results are grouped by site and sorted by mention count.

Running on [Apify](https://apify.com) gives you scheduling, API access, and cloud storage — run it once or on a recurring schedule to track brand presence over time.

### Why use Brand & Product Mention Scraper?

- **Competitor research** — see how often competitors are mentioned on industry sites, blogs, or directories
- **PR & media monitoring** — find which publications talk about your brand the most
- **Market analysis** — track which products dominate coverage in your niche
- **Influencer prospecting** — identify sites already covering topics relevant to your brand
- **Partnership research** — find sites that mention your partners or complementary products

### How to use Brand & Product Mention Scraper

1. Sign in to [Apify Console](https://console.apify.com) and open the Actor.
2. Add the websites you want to scan in the **Start URLs** field.
3. Enter the brand or product names you want to track in the **Brands / Product Names** field.
4. Click **Start** and wait for the run to finish.
5. Open the **Output** tab to view and download your results.

### Input

| Field | Type | Description |
|---|---|---|
| `startUrls` | array | Websites to crawl (required) |
| `brands` | array | Brand or product names to search for (required) |

Example — track AI company mentions on a tech news site:

```json
{
    "startUrls": [
        { "url": "https://techcrunch.com" },
        { "url": "https://theverge.com" }
    ],
    "brands": ["OpenAI", "Anthropic", "Google", "Microsoft", "Apple"]
}
````

### Output

One dataset row per brand per site. Pages are sorted by mention count, highest first.

```json
[
    {
        "brand": "Microsoft",
        "startUrl": "https://techcrunch.com",
        "totalMentions": 27,
        "pageCount": 4,
        "pages": [
            { "url": "https://techcrunch.com/2026/04/14/microsoft-acquires-startup/", "mentions": 12 },
            { "url": "https://techcrunch.com/2026/04/14/ai-roundup/",                "mentions": 8  },
            { "url": "https://techcrunch.com/2026/04/13/cloud-wars/",                "mentions": 5  },
            { "url": "https://techcrunch.com/2026/04/12/earnings-week/",             "mentions": 2  }
        ],
        "scrapedAt": "2026-04-14T10:00:00.000Z"
    },
    {
        "brand": "Google",
        "startUrl": "https://techcrunch.com",
        "totalMentions": 14,
        "pageCount": 3,
        "pages": [
            { "url": "https://techcrunch.com/2026/04/14/ai-roundup/",    "mentions": 7 },
            { "url": "https://techcrunch.com/2026/04/13/cloud-wars/",    "mentions": 5 },
            { "url": "https://techcrunch.com/2026/04/12/earnings-week/", "mentions": 2 }
        ],
        "scrapedAt": "2026-04-14T10:00:00.000Z"
    }
]
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel from the **Output** tab or via the Apify API.

### Data table

| Field | Format | Description |
|---|---|---|
| `brand` | string | The brand or keyword that was tracked |
| `startUrl` | URL | The input site this result belongs to |
| `totalMentions` | number | Total mention count across all pages on this site |
| `pageCount` | number | Number of pages where the brand was found |
| `pages` | array | Each page that contained a mention, with `url` and `mentions` count, sorted by frequency |
| `scrapedAt` | ISO date | Timestamp of when the site was scraped |

### How matching works

- **Case-insensitive** — "apple", "Apple", and "APPLE" all count as the same mention
- **Whole-word** — "Apple" won't match inside "Appleton" or "pineapple"
- **Any keyword** — you're not limited to brand names; you can track people, technologies, topics, or any phrase

### Pricing

This Actor uses **Pay per event** pricing — you are charged per site that returned at least one brand mention. Sites that are crawled but yield no results are free.

| Event | Price | When charged |
|---|---|---|
| `site-scraped` | $0.10 | Once per input URL that produced results |

**$0.10 per site** — a run over 10 sites where 7 return mentions costs $0.70.

### Advanced settings

| Field | Default | Description |
|---|---|---|
| `maxDepth` | `2` | How many link-levels deep to follow. `0` = start URL only, `1` = directly linked pages, `2` = one level deeper into articles and sub-sections. Maximum: `3` |
| `maxRequestsPerSite` | `100` | Max pages crawled per site. Maximum: `300` |

Depth=2 with 100 pages is the recommended default — fast and cost-efficient for most sites. Raise both to depth=3 and 300 pages for deeper coverage on large content sites.

### JavaScript-heavy sites

This Actor uses plain HTTP requests — no browser, no JavaScript execution. It is fast and cost-efficient, but it cannot read content that is loaded dynamically by JavaScript.

**Sites that work well** (static or server-rendered HTML):

- Company blogs and press pages
- News aggregators and directories
- Wikipedia, forums, and community sites
- Most B2B and SaaS marketing sites

**Sites with limited results** (heavy JavaScript / SPA):

- TechCrunch, Wired, The Verge — articles are JS-rendered, only navigation text is captured
- Social media platforms — content is not accessible via plain HTTP
- Sites with infinite scroll or lazy-loaded sections
- Featured articles, sponsored content, and related posts widgets — these are almost always injected by JavaScript after page load and will not be captured

If you need full coverage on JS-heavy sites, the results from this Actor will be lower than expected. Use it where speed and cost matter more than completeness.

### FAQ and disclaimers

**Can I track more than brands?**
Yes — the scraper matches any text you provide. You can track competitor names, people, technologies, product categories, or any keyword.

**Why are some mentions missing?**
This Actor makes plain HTTP requests without running JavaScript. Content loaded dynamically (infinite scroll, JS-rendered articles) won't be captured. For JS-heavy sites results may be lower than expected.

**The mention count seems low.**
Try increasing `maxDepth` to `3` or raising `maxRequestsPerSite` — the default settings may not reach all pages on large sites.

**Is this legal?**
The scraper only reads publicly visible content. You are responsible for ensuring your use complies with the target site's Terms of Service and applicable laws.

**Need a custom solution?**
Open an issue in the repository or contact us for enterprise requirements.

# Actor input Schema

## `startUrls` (type: `array`):

List of websites to crawl for brand/product mentions.

## `brands` (type: `array`):

List of brand or product names to search for. Matching is case-insensitive and whole-word.

## `maxDepth` (type: `integer`):

How many link-levels deep to follow. 0 = start URL only, 1 = all directly linked pages, 2 = deeper into sub-sections.

## `maxRequestsPerSite` (type: `integer`):

Maximum number of pages to crawl per site. 0 = unlimited.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://example.com"
    }
  ],
  "brands": [
    "Apple",
    "Google",
    "Microsoft"
  ],
  "maxDepth": 2,
  "maxRequestsPerSite": 100
}
```

# Actor output Schema

## `results` (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 = {
    "startUrls": [
        {
            "url": "https://example.com"
        }
    ],
    "brands": [
        "Apple",
        "Google",
        "Microsoft"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("c0nst/brand-name-scraper").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 = {
    "startUrls": [{ "url": "https://example.com" }],
    "brands": [
        "Apple",
        "Google",
        "Microsoft",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("c0nst/brand-name-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://example.com"
    }
  ],
  "brands": [
    "Apple",
    "Google",
    "Microsoft"
  ]
}' |
apify call c0nst/brand-name-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=c0nst/brand-name-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Brand / Product Mention Scraper",
        "description": "Find out how often any brand, product, or name is mentioned across a website — and on how many pages. Useful for competitor research, PR monitoring, market analysis, and influencer prospecting. Just enter the URLs and scraper will count how many times each brand or product name is mentioned.",
        "version": "0.0",
        "x-build-id": "B6H2hnJYh8F7ekXSR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/c0nst~brand-name-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-c0nst-brand-name-scraper",
                "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/c0nst~brand-name-scraper/runs": {
            "post": {
                "operationId": "runs-sync-c0nst-brand-name-scraper",
                "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/c0nst~brand-name-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-c0nst-brand-name-scraper",
                "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": [
                    "startUrls",
                    "brands"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "List of websites to crawl for brand/product mentions.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "brands": {
                        "title": "Brands / Product Names",
                        "type": "array",
                        "description": "List of brand or product names to search for. Matching is case-insensitive and whole-word.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxDepth": {
                        "title": "Max Crawl Depth",
                        "minimum": 0,
                        "maximum": 3,
                        "type": "integer",
                        "description": "How many link-levels deep to follow. 0 = start URL only, 1 = all directly linked pages, 2 = deeper into sub-sections.",
                        "default": 2
                    },
                    "maxRequestsPerSite": {
                        "title": "Max Requests Per Site",
                        "minimum": 0,
                        "maximum": 300,
                        "type": "integer",
                        "description": "Maximum number of pages to crawl per site. 0 = unlimited.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
