# AI Shopping Visibility Audit | ChatGPT & Perplexity (`transaction-labs/ai-shopping-visibility-citation-gap-api`) Actor

Run a 12-check AI shopping visibility audit across ChatGPT and Perplexity. Track recommended products, competitor winners, buyer-intent gaps, and cited sources in JSON.

- **URL**: https://apify.com/transaction-labs/ai-shopping-visibility-citation-gap-api.md
- **Developed by:** [Nico Vasquez](https://apify.com/transaction-labs) (community)
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$990.00 / 1,000 completed shopping audits

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

### AI Shopping Visibility & Citation Gap API

**Discover which products AI shopping search recommends, which competitors win, and which websites appear in its sources.**

The AI Shopping Visibility & Citation Gap API analyzes brand visibility across ChatGPT Search and Perplexity Search. It runs six buyer-intent questions through both search engines, producing a structured **12-check competitive shopping audit**.

Instead of simply checking whether an AI mentions your brand, this Actor examines which products are recommended, who receives top-pick placements, and where competing brands appear.

#### What you get

- **Brand recommendation rate:** How often the target brand appears in product recommendations.
- **Category winners:** Products explicitly identified as overall or top choices.
- **Competitor visibility:** Competing brands, recommended products, and their frequency of appearance.
- **Buyer-intent breakdown:** Separate findings for general shopping, value, premium, lightweight travel, convenience, and high-output use cases.
- **Source visibility:** Websites and URLs returned by the search engines, including brand-owned content.
- **Citation-gap observations:** Cases where a brand's website appears in source results without its products being recommended.
- **Evidence records:** Supporting excerpts, original search answers, and per-check results.

#### How to use

1. Enter the **brand** you want to analyze.
2. Provide the brand's official **website domain**.
3. Enter the **product category**.
4. Choose the supported market, currently **United States**.
5. Start the Actor and retrieve the JSON report from the default dataset.

For example, enter `Anker`, `anker.com`, and `power banks` to analyze Anker's visibility against competing power-bank brands.

The Actor automatically runs the twelve search checks. You do not need to write prompts or configure the individual search engines.

#### What the output includes

The default dataset contains one structured audit report. Important fields include:

| Field | Meaning |
|---|---|
| `reportStatus` | Complete or partial audit |
| `checksAttempted` | Search checks attempted |
| `checksUsable` | Searches returning usable answers |
| `brandRecommendationRatePct` | Percentage of usable checks recommending the brand |
| `brandTopPickChecks` | Checks where the brand receives an explicit overall-winner designation |
| `intentResults` | Results organized by shopping intent and search engine |
| `competitorSummary` | Competing brands and recommendation frequencies |
| `recommendedProducts` | Products associated with the target brand |
| `competitorProducts` | Products associated with competitors |
| `sourceDomainSummary` | Source domains and observed frequency |
| `citationGapSummary` | Brand-source visibility without corresponding recommendations |
| `promptResults` | Individual search results, evidence, and supporting details |

Results are suitable for further processing through the Apify API, dataset exports, or downstream analytics workflows.

#### Pricing

**$0.99 per completed twelve-check audit.**

A completed-audit billing event is triggered only when all twelve checks produce usable results. If one or more checks remain unusable, the Actor may provide a partial report without triggering the completed-audit charge.

Temporary upstream failures may be retried within bounded limits.

#### Important limitations

AI shopping recommendations can vary between runs. Results represent a snapshot of specific prompts and search services, not a comprehensive measurement of every answer shown to ChatGPT or Perplexity users.

A product's appearance does not guarantee future visibility, commercial performance, or improved search rankings.

Source URLs are reported as observed by the upstream search services. Their inclusion does not establish that a particular page caused an AI recommendation. Product names and source classifications may occasionally be incomplete or ambiguous.

This Actor provides competitive research data, not guaranteed placement, search-engine optimization outcomes, or verification of product specifications.

#### Who it's for

Useful for ecommerce brands, marketplace sellers, digital marketers, GEO and AI-search optimization professionals, competitive intelligence researchers, and agencies evaluating product visibility in AI-assisted shopping.

Use the results to identify competitive gaps, compare buyer-intent scenarios, and prioritize further research.

# Actor input Schema

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

The brand whose recommendation visibility you want to measure.

## `website` (type: `string`):

Official website domain, without a URL path.

## `category` (type: `string`):

Product category, e.g. power banks, travel backpacks, walking sneakers.

## `country` (type: `string`):

Initial market: United States only.

## Actor input object example

```json
{
  "brand": "Anker",
  "website": "anker.com",
  "category": "power banks",
  "country": "US"
}
```

# 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 = {
    "brand": "Anker",
    "website": "anker.com",
    "category": "power banks"
};

// Run the Actor and wait for it to finish
const run = await client.actor("transaction-labs/ai-shopping-visibility-citation-gap-api").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": "Anker",
    "website": "anker.com",
    "category": "power banks",
}

# Run the Actor and wait for it to finish
run = client.actor("transaction-labs/ai-shopping-visibility-citation-gap-api").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": "Anker",
  "website": "anker.com",
  "category": "power banks"
}' |
apify call transaction-labs/ai-shopping-visibility-citation-gap-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,transaction-labs/ai-shopping-visibility-citation-gap-api"
        }
    }
}
```

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/qTeZieL263qmkLNHj/builds/m5J0oN9n4g404ECtu/openapi.json
