---
title: "SERP vs AI presence — how the entity performs in traditional search (SEO health, domain rank, organic keywords + traffic, top ranked keywords — from the SEO/GEO audit) versus how AI engines actually surface it (headline AI Visibility, Share of Voice, per-engine mention breakdown across ChatGPT, Claude, Gemini, Perplexity, Grok, LLM Knowledge Accuracy). Returns a coded gap verdict (aligned | serp_dominant | ai_dominant | both_strong | both_weak) with a plain-English headline and actionable insight. Coded reducer over the SEO/GEO audit + stored score snapshots + platformSignals + LLM Knowledge Accuracy. Zero LLM cost."
method: GET
path: "/entities/{entityId}/serp-vs-ai"
tags: ["Layer 1 — Profile"]
---

# SERP vs AI presence — how the entity performs in traditional search (SEO health, domain rank, organic keywords + traffic, top ranked keywords — from the SEO/GEO audit) versus how AI engines actually surface it (headline AI Visibility, Share of Voice, per-engine mention breakdown across ChatGPT, Claude, Gemini, Perplexity, Grok, LLM Knowledge Accuracy). Returns a coded gap verdict (aligned | serp_dominant | ai_dominant | both_strong | both_weak) with a plain-English headline and actionable insight. Coded reducer over the SEO/GEO audit + stored score snapshots + platformSignals + LLM Knowledge Accuracy. Zero LLM cost.

`GET /entities/{entityId}/serp-vs-ai`

## Request

- Base URL: `https://entidex.com/api/v1`
- URL: `https://entidex.com/api/v1/entities/{entityId}/serp-vs-ai`
- Auth: HTTP bearer

## Path parameters

- `entityId` string, required

## Response `200`

SERP vs AI comparison, or { available: false } when the entity has no signals on file yet.

- union
  - SerpVsAi: SERP vs AI presence comparison — traditional-search index vs AI-engine index, with a coded gap verdict + actionable insight. Coded reducer over the SEO/GEO audit + score snapshots + platformSignals + LLM Knowledge Accuracy + the latest Google AI answers + AI Overview citations runs. Zero LLM cost.
    - `entityId` string, required: Canonical entx_xxxx id.
    - `available` true, required
    - `computationVersion` string, required
    - `serp` SerpVsAiSideRead, required
      - `index` integer, nullable, required: 0–100 weighted composite; null when the side has no data on file.
      - `measured` boolean, required
      - `contributions` SerpVsAiIndexContribution[], required
        - `label` string, required
        - `value` integer, required
        - `weight` number, required
    - `ai` SerpVsAiSideRead, required
      - `index` integer, nullable, required: 0–100 weighted composite; null when the side has no data on file.
      - `measured` boolean, required
      - `contributions` SerpVsAiIndexContribution[], required
        - `label` string, required
        - `value` integer, required
        - `weight` number, required
    - `verdict` SerpVsAiVerdict, required
      - `gapClass` 'serp_dominant' | 'ai_dominant' | 'aligned' | 'both_weak' | 'both_strong', required
      - `gap` integer, nullable, required: SERP − AI on 0–100 space; positive = SERP dominant. Null when one side unmeasured.
      - `headline` string, required
      - `insight` string, required
    - `engines` SerpVsAiEngineMention[], required
      - `engine` string, required
      - `maker` string, nullable, required
      - `makerHref` string, nullable, required
      - `mentioned` boolean, required
      - `mentionPosition` integer, nullable, required
      - `recommendationLevel` string, required
      - `citedUrlCount` integer, required
    - `googleAi` SerpVsAiGoogleAiPresence, nullable, required: Google AI Overviews / AI Mode answer presence from the latest stored Google AI answers run. A search-surface read alongside the five-engine table — never part of either composite index. Null when no run is on file.
      - `surfaces` object[], required
        - `surface` 'ai_overview' | 'ai_mode', required
        - `label` string, required
        - `queries` integer, required
        - `answersPresent` integer, required
        - `mentioned` integer, required: Answered queries where the entity was named.
        - `ownDomainCited` integer, required: Answered queries citing the entity's own site as a source.
      - `collectedAt` string, date-time, required
    - `aiOverviewCitations` SerpVsAiAiOverviewCitations, nullable, required: AI Overview citations for the entity's OWN domain (the reverse citation index, CANON 1.112): total keywords where the domain is cited as a source inside Google AI Overview answers, with the highest-volume cited keywords. A search-surface read — never part of either composite index. Null when no citation-index run is on file; totalKeywords 0 is a genuine reading (the domain is not an AI Overview source).
      - `domain` string, required
      - `totalKeywords` integer, required: Total keywords where the domain is cited as an AI Overview source.
      - `capturedCount` integer, required: Captured slice size behind topKeywords (rows are capped at collection).
      - `topKeywords` object[], required
        - `keyword` string, required
        - `searchVolume` integer, nullable, required: Monthly search volume estimate.
        - `mainIntent` string, nullable, required: Dominant search intent (informational | commercial | transactional | navigational).
        - `citedUrl` string, nullable, required: The entity page the AI Overview cites for this keyword.
      - `collectedAt` string, date-time, required
    - `llmKnowledgeAccuracyPct` integer, nullable, required
    - `topKeywords` SerpVsAiKeyword[], required
      - `keyword` string, required
      - `position` integer, required
      - `intent` string, nullable, required
    - `lastObservedAt` string, date-time, nullable, required
    - `methodology` string, required
    - `provenance` object, required
      - `issuer` string, required
      - `methodologyUrl` string, uri, required
      - `note` string, required
  - SerpVsAiUnavailable
    - `entityId` string, required
    - `available` false, required
    - `reason` 'no_signal_yet' | 'entity_not_found' | 'disabled', required

## Other responses

- `404`: Entity or resource not found.

---

[API](https://skmtc.dev/entidex/apis/entidex-api.md) · [All operations](https://skmtc.dev/entidex/apis/entidex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/entidex/apis/entidex-api/revisions/86b92f21a09a?raw)
