Pendium MCP Docs

scan_visibility

Trigger an AI visibility scan for a brand across ChatGPT, Claude, Gemini, and AI Overviews.

Trigger an AI visibility scan for a brand. Scans how ChatGPT, Claude, Gemini, and AI Overviews perceive and recommend the brand. Provide either a website URL (creates a new agent if needed) or a syntheticId (for existing agents).

Returns immediately — use get_scan_status to poll for results.

Authentication: Required

Parameters

ParameterTypeRequiredDefaultDescription
urlstringOne of url or syntheticIdWebsite URL to scan. Creates a new agent if one doesn't exist for this domain.
syntheticIdintegerOne of url or syntheticIdID of an existing agent to re-scan.
mode"batch" | "full"No"batch"batch: all 4 AI platforms with cost-effective models. full: premium models for highest accuracy.
maxQueriesinteger (1–100)No30Total queries to run across all platforms. 20–40 recommended. Higher values give more coverage but cost more credits.

Behavior

Scanning an existing agent

When you provide a syntheticId:

  1. Ownership is verified against your API key.
  2. Credit balance is checked — returns an error if insufficient.
  3. If a scan is already running, returns current progress instead of starting a new one.
  4. Otherwise, triggers the scan and returns immediately.

Scanning a new URL

When you provide a url:

  1. The domain is extracted from the URL.
  2. If an agent already exists for that domain under your account, it re-scans the existing agent.
  3. If no agent exists, a new brand agent is created and the scan begins.
  4. The agent initialization includes website scraping, knowledge base creation, and the visibility scan.

Response

{
  "success": true,
  "syntheticId": 1234,
  "agentName": "Example",
  "scanTriggered": true,
  "isNewAgent": false,
  "mode": "batch",
  "maxQueries": 30,
  "message": "Scan triggered. Use get_scan_status to poll for results (every 30-60 seconds)."
}

Error: insufficient credits

{
  "success": false,
  "error": "Insufficient credits",
  "creditBalance": 0,
  "upgradeUrl": "https://pendium.ai/pricing"
}

Scan already running

{
  "success": true,
  "scanAlreadyRunning": true,
  "syntheticId": 1234,
  "progress": {
    "completedQueries": 12,
    "totalQueries": 30
  },
  "message": "Scan already in progress: 12/30 queries complete. Use get_scan_status to poll."
}

On this page