# AI Visibility Check — Cited by ChatGPT, Perplexity & Gemini? (`sorcerai/constellation-ai-visibility-check`) Actor

Live check across ChatGPT, Perplexity, Claude & Gemini: which buyer queries cite your brand, which ignore you, and who gets cited instead. Real citations, not training-data guesses. Free tier + $3 flat.

- **URL**: https://apify.com/sorcerai/constellation-ai-visibility-check.md
- **Developed by:** [Aria Pramesi](https://apify.com/sorcerai) (community)
- **Categories:** SEO tools, AI, Lead generation
- **Stats:** 2 total users, 1 monthly users, 86.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / full visibility check

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

## AI Visibility Check — See If ChatGPT, Perplexity, Claude & Gemini Actually Cite Your Brand

Enter your domain and run a **live** visibility check across the four AI engines buyers now ask instead of Google. You get real citation and mention rates — measured by actually querying the engines, **not guessed from a model's training data** — plus a per-engine, per-query breakdown that shows exactly where you're invisible and who gets cited in your place.

Free tier to try it. Flat **$3** for the full report. No credits, no multipliers, no subscription.

***

### What you learn

- **Citation rate** — how often the AI engines cite *your site as a source* when answering buyer questions about your category.
- **Mention rate** — how often your brand is *named* in the answer, even without a link.
- **Per-engine breakdown** — Perplexity vs. ChatGPT vs. Claude vs. Gemini. Visibility differs a lot by engine; this shows where you're winning and where you're absent.
- **Per-query results** — for each query, whether any engine cited or named you, and **sample URLs that got cited instead of you**.
- **Domain Rating** — your Ahrefs DR (0–100), included free, for context on authority.

Output is delivered as a clean table plus a full **Markdown** and **JSON** report.

***

### Why this one is different

**1. Real checks, not training-data guesses.** Many "AI visibility" tools ask an LLM what it *thinks* it knows about you — which is stale and hallucination-prone. This runs your queries against the live engines and reads the actual answers and citations.

**2. Honest, predictable billing — the part everyone else gets wrong.** The most common complaint about scraping/AI actors is *silent failure that still costs money*: runs that hang, return nothing, or deliver half a result while the meter runs. This actor is built to make that impossible:

- Invalid input fails **before** any paid work — free.
- If the upstream data provider is down, it refuses **before** charging.
- If fewer than 75% of your checks return real data, it **refuses to deliver a partial report and does not charge you**.
- A failed, empty, or fabricated run is **never billed** — full stop.
- Flat **$3** per full run. No per-page credits, no "enhanced mode" multipliers, no monthly minimum.

**3. A free tier that's actually free.** The free check (1 query, 1 engine) is owner-paid — a real taste of your visibility at $0.

***

### Pricing

| Tier | Cost | What you get |
|------|------|--------------|
| **Free** | **$0** | 1 query, 1 engine (Perplexity), 1 rep — a quick taste of your AI visibility. |
| **Full** | **$3 flat** | 5 queries × 4 engines (ChatGPT, Perplexity, Claude, Gemini) × 2 reps. Complete per-engine + per-query report with Domain Rating. |

You're charged **only when a complete report is delivered**. Nothing else.

***

### How to use

1. Enter your **website URL** (e.g. `https://example.com`).
2. Pick a **tier** — `free` (default) or `full`.
3. *(Optional)* Add your **brand name**, **aliases**, or your own **queries** — otherwise they're auto-generated from your domain and category.
4. Run. Full-tier runs are billed $3 via Apify pay-per-event only on successful delivery.

**Inputs:** `url` (required), `brand`, `queries`, `engines`, `reps`, `aliases`, `tier`.

***

### How it works (and why you can trust the bill)

Every run follows a strict charge-gated sequence:

1. **Validate** input — no money, no work.
2. **Preflight** the upstream provider — refuse if it's down, no charge.
3. **Execute** the live engine checks in memory.
4. **Integrity gate** — a run that returned no or insufficient real data is refused, never billed.
5. **Charge** (full tier only) — and if your Apify per-run budget blocks it, the report is withheld rather than given away or charged.
6. **Deliver** — write the report; if delivery ever fails after a charge, the run fails loudly with a path to your report or a refund.

***

### Who it's for

- **Brands & marketers** checking whether AI search actually surfaces them.
- **SEO / AEO / GEO agencies** benchmarking clients across engines.
- **Founders** who suspect competitors are getting cited by ChatGPT and Perplexity while they aren't — and want proof, per query.

***

### About

Powered by **Constellation**, an AEO/GEO (AI Engine Optimization) analysis platform. This actor is the fast visibility check; for a full audit of *why* you're not cited and how to fix it — content optimization and go-to-market — contact **aria@sorcerai.co**.

# Actor input Schema

## `url` (type: `string`):

Website to check, e.g. https://example.com. Must contain a valid domain; the registrable domain is what citation matching runs against.

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

Brand name to detect in AI answers. If empty, derived from the domain (e.g. 'stripe.com' → 'Stripe'). Set this when your brand differs from your domain name.

## `queries` (type: `array`):

Buyer-style queries to test, e.g. 'best invoicing software'. Free tier uses the first 1, full tier the first 5. If empty, sensible queries are auto-generated from the brand ('best X', 'X alternatives', 'X review', ...).

## `engines` (type: `array`):

Engines to query on the full tier. Allowed values: perplexity, chat\_gpt, claude, gemini. Defaults to all four. The free tier always uses perplexity only.

## `reps` (type: `integer`):

How many times each query is asked per engine (AI answers vary between runs; 2 reps gives more reliable citation detection). Free tier is fixed at 1; full tier allows up to 2.

## `aliases` (type: `array`):

Alternative names the AI might use for your brand (e.g. 'HubSpot CRM' for 'HubSpot'). Counted as mentions when detected in answers.

## `tier` (type: `string`):

free ($0): 1 query, 1 engine (Perplexity), 1 rep — a quick taste, daily limit applies. full ($3 flat, pay-per-event): 5 queries × 4 engines × 2 reps, complete per-engine and per-query report with Domain Rating. Charged only on successful delivery; failed or partial runs are never billed.

## Actor input object example

```json
{
  "url": "https://example.com",
  "engines": [
    "perplexity",
    "chat_gpt",
    "claude",
    "gemini"
  ],
  "reps": 2,
  "tier": "free"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `report_markdown` (type: `string`):

No description

## `report_json` (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 = {
    "url": "https://example.com"
};

// Run the Actor and wait for it to finish
const run = await client.actor("sorcerai/constellation-ai-visibility-check").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 = { "url": "https://example.com" }

# Run the Actor and wait for it to finish
run = client.actor("sorcerai/constellation-ai-visibility-check").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 '{
  "url": "https://example.com"
}' |
apify call sorcerai/constellation-ai-visibility-check --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sorcerai/constellation-ai-visibility-check",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/uxlzMO8a8YtgIXzt9/builds/BXsPuz2ySIrasJjSo/openapi.json
