# Meta AI Brand Visibility Tracker: Mentions & Cited Sources (`spokentext/meta-ai-brand-visibility`) Actor

See whether Meta AI recommends your brand. Give your brand, your competitors and the questions customers ask: get which brands each answer names and in what order, the websites it cites, and your share of answers. Uses Muse Spark with web search.

- **URL**: https://apify.com/spokentext/meta-ai-brand-visibility.md
- **Developed by:** [clement](https://apify.com/spokentext) (community)
- **Categories:** Marketing, SEO tools, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 answers

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Meta AI Brand Visibility Tracker: Mentions & Cited Sources

Find out **whether Meta AI recommends your brand** when people ask the questions your customers ask. Give your brand, your competitors and a list of questions. For each question you get which brands the answer names, in what order, and which websites it cites, plus your share of answers across the whole run.

- **Built for Meta AI.** Answers come from Muse Spark, the model behind Meta AI, with live web search switched on.
- **Brand analysis, not just text.** Mentions, position, competitors named, cited websites and a run summary.
- **Spot competitors you did not list.** Every product or name the answer puts in bold is reported too.
- **Any language.** Ask in the language your customers use.
- **Pay per answer.** No subscription, and nothing charged for questions that fail.

### How to use

1. Enter **your brand** and, if needed, other spellings of it.
2. List the **competitors** you want to compare against.
3. Write the **questions** a customer would ask, one per line, such as "What are the best running shoes for flat feet?".
4. Click **Start**. When the run finishes, open the **Output** tab for the answers and the summary.

Live answers need a paid Apify plan. On the free plan, the Actor returns clearly labelled sample rows so you can see the exact output format.

### Output

One dataset item per answer:

```json
{
    "question": "What are the best running shoes for flat feet?",
    "repeat": 1,
    "status": "ok",
    "brand": "Brooks",
    "brandMentioned": true,
    "brandPosition": 5,
    "brandsMentioned": [
        { "name": "ASICS", "isOwnBrand": false, "mentions": 2, "position": 1 },
        { "name": "Hoka", "isOwnBrand": false, "mentions": 1, "position": 2 },
        { "name": "Brooks", "isOwnBrand": true, "mentions": 1, "position": 5 }
    ],
    "competitorsMentioned": ["ASICS", "Hoka", "Saucony", "New Balance"],
    "highlightedTerms": ["ASICS Gel-Kayano 33 - Best Overall", "HOKA Gaviota 6 - Maximum Stability"],
    "citedSources": [{ "url": "https://example.com/best-shoes-flat-feet", "domain": "example.com", "title": "Best Shoes for Flat Feet" }],
    "citedDomains": ["example.com"],
    "searchQueries": ["best running shoes flat feet 2026"],
    "answer": "For flat feet, look for stability shoes that address overpronation...",
    "answerIsAiGenerated": true,
    "model": "muse-spark-1.3",
    "answeredAt": "2026-10-06T10:15:00.000Z"
}
```

| Field | Meaning |
|---|---|
| `brandMentioned` | Whether the answer names your brand |
| `brandPosition` | Order in which your brand first appears among the tracked brands. 1 means it was named first |
| `brandsMentioned` | Every tracked brand found, in order of first appearance, with the number of mentions |
| `highlightedTerms` | Products or names the answer put in bold, tracked or not |
| `citedSources`, `citedDomains` | The web pages and websites the answer cites |
| `searchQueries` | The web searches the model ran before answering |
| `answer` | The full answer text. It is generated by an AI model |

#### Run summary

The **Summary** link in the Output tab gives the figures across all answers:

```json
{
    "brand": "Brooks",
    "answersAnalysed": 3,
    "brands": [
        { "name": "ASICS", "answersMentioning": 3, "shareOfAnswers": 100, "namedFirst": 2, "averagePosition": 1.3 },
        { "name": "Brooks", "isOwnBrand": true, "answersMentioning": 3, "shareOfAnswers": 100, "namedFirst": 1, "averagePosition": 3.7 },
        { "name": "Hoka", "answersMentioning": 2, "shareOfAnswers": 66.7, "namedFirst": 0, "averagePosition": 3 }
    ],
    "topCitedDomains": [{ "domain": "example.com", "answers": 2 }]
}
```

### Pricing

**$0.05 per answer.** A run with 20 questions costs $1.00. Asking each question 3 times costs $3.00.

Questions that fail are not charged. Set the run's maximum charge to cap spending: the Actor stops before exceeding it.

### Use cases

- Check whether Meta AI recommends you, a competitor, or nobody you know.
- Track your share of answers over time by scheduling the same questions weekly.
- See which websites Meta AI relies on in your market, to know where a mention would count.
- Add Meta AI to the assistants you already monitor.

### FAQ

#### How do I check if Meta AI mentions my brand?

Enter your brand and the questions your customers ask, then start the run. `brandMentioned` tells you for each question, and the summary gives your share across all of them.

#### Are these the same answers people see in the Meta AI app?

They come from the same model family, Muse Spark, reached through Meta's official developer interface with web search on. They are not guaranteed to be identical to what a given person sees in the app: the app can personalise answers, and any AI answer varies from one time to the next. Treat the results as a measurement of how the model tends to answer, not as a copy of one person's screen.

#### Why do answers change between runs?

AI assistants do not give the same answer twice. Set **Times to ask each question** to 3 or more for a steadier share figure.

#### How are brands detected?

By looking for each name you provide as a whole word, ignoring upper and lower case. Add alternative spellings under **Other spellings of your brand**. Very short or common names, such as "On" or "Apple", can match ordinary words; check `brandsMentioned` against the answer text for those.

#### Can I ask questions for a specific country?

Yes. Set **Location of the person asking** to a country or city, and write the questions in that market's language.

#### Does it work on the free Apify plan?

The free plan returns sample rows only. Every live answer is bought from Meta, so live data is available on paid Apify plans.

#### Can I use it from my own code, Make, Zapier or n8n?

Yes. Call it through the Apify API (see below), or connect it with Apify's integrations for Make, Zapier and n8n.

#### What happens to my questions?

They are sent to Meta's model to be answered, without being stored there for later reuse by this Actor. Results are stored only in your own Apify account.

### Limits

- Tracks the brands you list. Other names appear only in `highlightedTerms`.
- The model decides for each question whether to search the web, so some answers have no cited sources.
- Answers are kept short (about 250 words) and each question is limited to two search steps, to keep the price low.
- Up to 100 questions and 5 repetitions per run.
- Not available in the territories where Meta restricts its developer services.

This Actor is an independent tool. It is not affiliated with or endorsed by Meta.

### Run it from the API

```bash
curl -X POST "https://api.apify.com/v2/acts/spokentext~meta-ai-brand-visibility/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "brand": "Brooks", "competitors": ["ASICS", "Hoka"], "questions": ["What are the best running shoes for flat feet?"] }'
```

# Actor input Schema

## `brand` (type: `string`):

The brand, product or company name to look for in the answers.

## `brandAliases` (type: `array`):

Other names that should count as your brand, such as a longer name or an abbreviation.

## `competitors` (type: `array`):

Other brands to look for, so you can compare how often and how early each one is named.

## `questions` (type: `array`):

The questions your customers would ask an AI assistant, one per line, written the way a person would ask. Up to 100 per run.

## `repeats` (type: `integer`):

AI answers vary from one time to the next. Asking each question several times gives a steadier share figure. Each repetition is charged as one answer.

## `location` (type: `string`):

A country or city, such as France or New York. The answer is written for someone located there. Leave empty for no particular location.

## Actor input object example

```json
{
  "brand": "Brooks",
  "brandAliases": [
    "Brooks Running"
  ],
  "competitors": [
    "ASICS",
    "Hoka",
    "New Balance",
    "Saucony",
    "Nike"
  ],
  "questions": [
    "What are the best running shoes for flat feet?",
    "Which running shoe brand is best for beginners?",
    "What are the most comfortable running shoes for long distances?"
  ],
  "repeats": 1
}
```

# Actor output Schema

## `answers` (type: `string`):

No description

## `summary` (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 = {
    "brand": "Brooks",
    "brandAliases": [
        "Brooks Running"
    ],
    "competitors": [
        "ASICS",
        "Hoka",
        "New Balance",
        "Saucony",
        "Nike"
    ],
    "questions": [
        "What are the best running shoes for flat feet?",
        "Which running shoe brand is best for beginners?",
        "What are the most comfortable running shoes for long distances?"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("spokentext/meta-ai-brand-visibility").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 = {
    "brand": "Brooks",
    "brandAliases": ["Brooks Running"],
    "competitors": [
        "ASICS",
        "Hoka",
        "New Balance",
        "Saucony",
        "Nike",
    ],
    "questions": [
        "What are the best running shoes for flat feet?",
        "Which running shoe brand is best for beginners?",
        "What are the most comfortable running shoes for long distances?",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("spokentext/meta-ai-brand-visibility").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 '{
  "brand": "Brooks",
  "brandAliases": [
    "Brooks Running"
  ],
  "competitors": [
    "ASICS",
    "Hoka",
    "New Balance",
    "Saucony",
    "Nike"
  ],
  "questions": [
    "What are the best running shoes for flat feet?",
    "Which running shoe brand is best for beginners?",
    "What are the most comfortable running shoes for long distances?"
  ]
}' |
apify call spokentext/meta-ai-brand-visibility --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,spokentext/meta-ai-brand-visibility"
        }
    }
}
```

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/hetOoSwZs9fPkeL7N/builds/bOH2ajWWU3QCmpmSp/openapi.json
