---
title: "Fetch a specific Person Intelligence snapshot by id"
method: GET
path: "/api/me/intelligence/person/{snapshotId}"
tags: ["me", "intelligence"]
---

# Fetch a specific Person Intelligence snapshot by id

`GET /api/me/intelligence/person/{snapshotId}`

## Request

- Base URL: `https://api.signalraven.ai`
- URL: `https://api.signalraven.ai/api/me/intelligence/person/{snapshotId}`
- Auth: none declared

Cross-tenant reads return 404 (§10.3.4). Poll while status ∈ {queued, running}.

## Path parameters

- `snapshotId` string, uuid, required

## Response `200`

Snapshot row

- PersonIntelligenceRow
  - `snapshotId` string, uuid, required
  - `slug` string, required
  - `personUrl` string, required
  - `status` 'queued' | 'running' | 'ready' | 'failed', required
  - `profile` object, required
  - `aiRead` AiRead, nullable, required
    - `buyerClassification` 'buyer' | 'seller' | 'influencer', required
    - `employerBusinessModel` string, required
    - `classificationReason` string, required
    - `confidence` number, required
  - `evaluatedSignals` EvaluatedSignal[], required
    - `signalId` string, required
    - `activityType` 'post' | 'repost' | 'comment' | 'reaction', required
    - `postText` string, nullable, required
    - `postUrl` string, nullable, required
    - `score` integer, required
    - `reason` string, required
    - `evidence` string, nullable: The words in the activity text that state the need, quoted by the person activity judge (2026-09-29). Absent on rows judged before it.
    - `postedAt` string, nullable: When the activity was posted on LinkedIn (ISO string). Captured from actor result but may be missing when the actor did not surface a timestamp — nullable/optional so the Portal degrades gracefully.
    - `itemId` string: Raw activity item id — the activity-chart highlight join (intelligence depth). Absent on pre-release rows.
    - `pipeline` 'A' | 'B-1' | 'B-2': Which fetch pipeline produced the underlying item: A = engagement, B-1 = authored posts, B-2 = reposts. Absent on pre-release rows.
  - `scoredSignals` object, required
  - `activitySummary` ActivitySummary: Digest + weekly activity buckets + deterministic score, computed during the run. Null on snapshots predating the intelligence-depth release.
    - `digest` object, nullable, required
      - `summary` string
      - `bullets` string[]
      - `outreachAngle` string
      - `angleRefs` object[]
        - `url` string, required
        - `type` string, required
      - `topicRollups` object[], required
        - `topic` string, required
        - `itemCount` integer, required
        - `note` string, required
      - `generatedAt` string, required
    - `buckets` object[], required
      - `weekStart` string, required
      - `total` integer, required
      - `signals` integer, required
    - `undatedCount` integer, required
    - `outOfWindowCount` integer
    - `score` object, required
      - `value` integer, required
      - `label` 'Quiet' | 'Occasional' | 'Active' | 'Highly active', required
      - `components` object, required
    - `windowStart` string, nullable, required
    - `windowEnd` string, nullable, required
  - `rawActivityCount` integer, required
  - `signalsCount` integer, required
  - `hiring` boolean, nullable, required
  - `openToWork` boolean, nullable, required
  - `recentJobChange` boolean, nullable, required
  - `savedSignalEventIds` string[], required
  - `pushedSignalIds` string[]
  - `sourceCompanyReportId` string, uuid, nullable, required
  - `failureReason` string, nullable, required
  - `createdAt` string, date-time, required
  - `readyAt` string, date-time, nullable, required
  - `createdByUserId` string, uuid, nullable, required

## Other responses

- `404`: Not found or cross-tenant

---

[API](https://skmtc.dev/signalraven/apis/zygnal-api.md) · [All operations](https://skmtc.dev/signalraven/apis/zygnal-api/llms.txt) · [OpenAPI document](https://skmtc.dev/signalraven/apis/zygnal-api/revisions/36e1d9b9d604?raw)
