---
title: "The complete, categorized entity record in one call. minTier free; depth widens additively with the caller’s tier, withheld sections listed in meta.withheld. Feature-flagged (entity-complete) — returns 404 when disabled."
method: GET
path: "/entities/{entityId}/complete"
tags: ["Layer 1 — Profile"]
---

# The complete, categorized entity record in one call. minTier free; depth widens additively with the caller’s tier, withheld sections listed in meta.withheld. Feature-flagged (entity-complete) — returns 404 when disabled.

`GET /entities/{entityId}/complete`

## Request

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

## Path parameters

- `entityId` string, required

## Response `200`

OK

- object
  - `data` EntityComplete: The complete, categorized entity record assembled once and projected to every channel. Free callers receive a generous taste (entity, categorization, headline, coverage); higher tiers unlock the remaining sections additively. Withheld sections are listed in meta.withheld.
    - `entity` Entity
      - `id` string, required
      - `type` 'organization' | 'person' | 'product' | 'location' | 'event' | 'concept' | 'podcast', required
      - `subtype` string, nullable
      - `canonicalName` string, required
      - `aliases` string[], required
      - `identifiers` EntityIdentifiers, required
        - `wikidataQid` string, nullable
        - `companiesHouseNumber` string, nullable
        - `linkedinSlug` string, nullable
        - `domain` string, nullable
        - `duns` string, nullable
      - `primaryMarket` string, nullable
      - `markets` string[]
      - `claims` Claim[]
        - `id` string, required
        - `entityId` string, required
        - `predicate` string, required
        - `value` unknown
        - `valueType` 'string' | 'integer' | 'number' | 'boolean' | 'date' | 'datetime' | 'object' | 'array' | 'entityRef', required
        - `unit` string, nullable
        - `asOf` string, date, nullable
        - `assertions` ClaimAssertion[], required
          - `observationId` string, required
          - `sourceSurface` 'serp_organic' | 'serp_ai_overview' | 'serp_knowledge_graph' | 'news' | 'reddit' | 'hackernews' | 'bluesky' | 'trustpilot' | 'google_maps' | 'wikipedia' | 'linkedin' | 'companies_house' | 'crunchbase' | 'github' | 'scholar' | 'patents' | 'youtube' | 'ai_engine_chatgpt' | 'ai_engine_claude' | 'ai_engine_gemini' | 'ai_engine_perplexity' | 'ai_engine_grok' | 'ai_engine_copilot' | 'own_site' | 'gleif' | 'edgar' | 'opencorporates' | 'ofac' | 'hm_treasury' | 'pep' | 'other', required: Provenance surface of an observation. `ai_engine_copilot` and the registry sources (gleif/edgar/opencorporates/ofac/hm_treasury/pep) are retained for observation provenance compatibility; collectors are flag-gated.
          - `sourceProvider` string, required
          - `assertedAt` string, date-time, required
          - `authorityWeight` number, required
          - `recencyWeight` number, required
        - `supersedes` string[], required
        - `supersededBy` string, nullable
        - `confidence` number, required
        - `status` 'current' | 'superseded' | 'contested' | 'historical', required
        - `conflictingClaims` string[], required
      - `completeness` Score
        - `dimension` 'completeness' | 'visibility' | 'sentiment' | 'shareOfVoice' | 'trustStack' | 'narrativeCoverage' | 'maturity', required
        - `scope` string, required
        - `value` number, required
        - `valueRange` number[], required
        - `confidence` number, required
        - `window` ScoreWindow, required
          - `start` string, date-time, required
          - `end` string, date-time, required
          - `label` string, required
        - `breakdown` ScoreBreakdown[], required
          - `key` string, required
          - `value` number, required
          - `confidence` number, required
          - `observationCount` integer, required
          - `weight` number, required
        - `explanation` string, required
        - `computedAt` string, date-time, required
        - `previousValue` number, nullable
        - `delta30d` number, nullable
        - `delta90d` number, nullable
        - `trajectory` 'improving' | 'stable' | 'declining' | 'volatile' | 'accelerating' | 'decelerating' | 'recovering', required
      - `neighbourhood` NeighbourhoodEdge[]
        - `entityId` string, required
        - `edgeType` string, required
        - `weight` number, required
        - `lastObservedAt` string, date-time, required
      - `createdAt` string, date-time, required
      - `lastObservedAt` string, date-time, nullable
      - `lastResolvedAt` string, date-time, nullable
    - `categorization` object
      - `category` string, nullable
      - `primaryType` 'organization' | 'person' | 'product' | 'location' | 'event' | 'concept' | 'podcast'
      - `subtype` string, nullable
      - `decompositionModel` 'commercial' | 'person' | 'organisation' | 'mixed', nullable
      - `entityClass` string, nullable
      - `lifecycleStage` string, nullable
      - `surfacesPresent` string[]
      - `topics` string[]
      - `cohorts` object[]
        - `id` string
        - `name` string
    - `headline` object
      - `aiVisibility` number, nullable
      - `sentiment` number, nullable
      - `shareOfVoice` number, nullable
      - `trustStack` number, nullable
    - `coverage` object
      - `totalObservations` integer: Discovery-layer observation rows in signals.observations (Reddit / press / SERP / owned-content / registry). Does NOT include AI-engine probes — see `aiEngineProbes`.
      - `aiEngineProbes` integer: AI-engine probe passes captured on entity.platformSignals (one per queried engine on the last pass). Additive with `totalObservations`.
      - `surfaces` object[]
        - `surface` string
        - `observationCount` integer
        - `lastObservedAt` string, date-time, nullable
    - `scores` Score[]
      - `dimension` 'completeness' | 'visibility' | 'sentiment' | 'shareOfVoice' | 'trustStack' | 'narrativeCoverage' | 'maturity', required
      - `scope` string, required
      - `value` number, required
      - `valueRange` number[], required
      - `confidence` number, required
      - `window` ScoreWindow, required
        - `start` string, date-time, required
        - `end` string, date-time, required
        - `label` string, required
      - `breakdown` ScoreBreakdown[], required
        - `key` string, required
        - `value` number, required
        - `confidence` number, required
        - `observationCount` integer, required
        - `weight` number, required
      - `explanation` string, required
      - `computedAt` string, date-time, required
      - `previousValue` number, nullable
      - `delta30d` number, nullable
      - `delta90d` number, nullable
      - `trajectory` 'improving' | 'stable' | 'declining' | 'volatile' | 'accelerating' | 'decelerating' | 'recovering', required
    - `perception` object, nullable
      - `consensusScore` number, nullable
      - `divergenceScore` number, nullable
      - `surfaces` object[]
        - `surface` string
        - `label` string
        - `value` number
        - `sampleSize` integer
    - `derivedInsights` object[]
      - `id` string
      - `label` string
      - `value` number: 0–100 scale.
      - `confidence` number: 0–100 scale (NOT the 0–1 Score.confidence range).
      - `contributingSources` string[]
    - `lifecycle` object
      - `stage` string, nullable
      - `label` string, nullable
      - `confidence` number, nullable
      - `drivers` string[]
      - `predictedNext` object, nullable
        - `stage` string
        - `label` string
        - `confidence` number
    - `drift` DriftEvent[]
      - `id` string, required
      - `entityId` string, required
      - `type` 'sentiment_spike' | 'compounding_sentiment' | 'source_divergence' | 'fact_drift' | 'velocity_change' | 'neighbourhood_shift' | 'trust_stack_change' | 'ai_engine_drift' | 'surface_divergence_trend', required
      - `pattern` 'breakout' | 'erosion' | 'pivot' | 'crisis' | 'drift_to_irrelevance' | 'authority_lag'
      - `severity` 'low' | 'moderate' | 'high' | 'critical', required
      - `direction` 'positive' | 'negative' | 'neutral', required
      - `detectedAt` string, date-time, required
      - `windowStart` string, date-time, required
      - `windowEnd` string, date-time, required
      - `confidence` number, required
      - `signals` DriftSignal[], required
        - `surface` string, required
        - `metric` string, required
        - `value` unknown, required
        - `baseline` number, nullable
        - `zScore` number, nullable
        - `observationCount` integer, required
      - `explanation` string, required
      - `relatedClaimChanges` string[]
      - `projectedTrajectory` object, nullable
    - `relationships` NeighbourhoodEdge[]
      - `entityId` string, required
      - `edgeType` string, required
      - `weight` number, required
      - `lastObservedAt` string, date-time, required
    - `typedRelationships` object[]
      - `entityId` string
      - `name` string
      - `type` string
      - `label` string
      - `direction` 'forward' | 'inverse'
      - `strength` number, nullable
      - `confidence` number
      - `sourceSurface` string, nullable
      - `observedAt` string, date-time
    - `ecosystem` object, nullable
      - `influenceScore` number, nullable
      - `coherenceScore` number, nullable
      - `engines` object[]
        - `engine` string
        - `label` string
        - `maker` string, nullable
        - `fit` number
        - `mentionRate` number, nullable
        - `recommendationRate` number, nullable
        - `citationRate` number, nullable
        - `sentiment` string, nullable
        - `confidence` number
        - `lastObservedAt` string, nullable
    - `authenticity` object, nullable
      - `available` boolean
      - `reason` string
      - `entityClass` string
      - `score` number
      - `sampleSize` integer
      - `lastObservedAt` string
    - `truthGap` object[]
      - `aspect` string
      - `divergence` number: 0–1 composite divergence.
      - `computedAt` string
    - `selfCheck` object, nullable
      - `lastComputedAt` string
      - `schemaConformant` boolean
      - `perEngine` object[]
        - `engine` string
        - `completenessPct` number, nullable
        - `truthGapPct` number, nullable
      - `topGaps` string[]
    - `youtubeIntelligence` object, nullable: YouTube Intelligence summary — YouTubers/podcasts only (layer_1_profile, flag youtube-intelligence).
      - `channel` object, nullable
        - `subscriberCount` integer, nullable
        - `totalViewCount` integer, nullable
        - `videoCount` integer, nullable
        - `fetchedAt` string, nullable
      - `episodeCount` integer
      - `commentsAnalysed` integer
      - `topIntent` string, nullable
      - `intentDistributionPct` object
        - `praise` number
        - `question` number
        - `complaint` number
        - `suggestion` number
        - `neutral` number
      - `lastFetchedAt` string, nullable
    - `subEntities` object
      - `available` boolean
      - `requiresTier` string
      - `data` object, nullable
        - `count` integer
    - `decisionSurvival` object
      - `available` boolean
      - `requiresTier` string
      - `data` object, nullable
    - `cohort` object
      - `available` boolean
      - `requiresTier` string
      - `data` object[], nullable
        - `cohortId` string
        - `cohortName` string
        - `rank` integer
        - `percentile` number
        - `visibilityDelta` number
        - `sentimentDelta` number
        - `entityCount` integer
    - `meta` object
      - `assembledAt` string, date-time
      - `tier` 'free' | 'layer_0_discovery' | 'layer_1_profile' | 'layer_2_insight' | 'layer_3_drift' | 'layer_4_cohort'
      - `recordVersion` string
      - `withheld` object[]
        - `section` string
        - `requiresTier` string
      - `upgrade` string
  - `meta` ResponseMeta
    - `requestId` string, required
    - `timestamp` string, date-time, required
    - `apiVersion` string, required
    - `pagination` object
      - `cursor` string, nullable
      - `hasMore` boolean
      - `limit` integer
    - `rateLimit` object
      - `limit` integer
      - `remaining` integer
      - `resetAt` string, date-time
    - `billing` object
      - `creditsUsed` integer
      - `creditsRemaining` integer, nullable
      - `tier` 'free' | 'layer_0_discovery' | 'layer_1_profile' | 'layer_2_insight' | 'layer_3_drift' | 'layer_4_cohort'
      - `allowedLayers` integer[]: Cumulative layer ladder unlocked by this key (0=discovery … 4=cohort). free → []; layer_2_insight → [0,1,2].
      - `mode` 'demo' | 'free' | 'payg' | 'keyed': How the caller is billed: demo (feedback-loop key), free (monthly allowance), payg (Developer PAYG), keyed (paid subscription).
  - `errors` ApiError[]
    - `code` 'ENTITY_NOT_RESOLVED' | 'ENTITY_NOT_FOUND' | 'INVALID_PARAMETER' | 'RATE_LIMITED' | 'INSUFFICIENT_CREDITS' | 'TIER_NOT_AVAILABLE' | 'UNAUTHENTICATED' | 'FORBIDDEN' | 'INTERNAL_ERROR', required
    - `message` string, required
    - `field` string
    - `candidates` object[]

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