---
title: "Read a web/media search job"
method: GET
path: "/v1/web-search/jobs/{job_id}"
tags: ["web-search"]
---

# Read a web/media search job

`GET /v1/web-search/jobs/{job_id}`

Read the persisted job envelope for one web-search run. When the job has completed, the `result` field contains a paginated page of normalized items controlled by the `limit` and `cursor` query parameters.

## Path parameters

- `job_id` string, required

## Query parameters

- `limit` integer
- `cursor` string, nullable

## Response `200`

Persisted job state with an optional paginated result page.

- JobEnvelopeWebSearchResult
  - `capability` 'web_search' | 'pii_expansion' | 'social_profile_analysis', required
  - `completedAt` string, date-time, nullable
  - `error` ApiError — Standard API error payload.
    - `code` string, required
    - `message` string, required
    - `retryable` boolean
  - `expiresAt` string, date-time, nullable
  - `jobId` string, required
  - `progress` JobProgress — Progress metadata for long-running jobs.
    - `completedSteps` integer
    - `message` string, nullable
    - `stage` string, required
    - `totalSteps` integer, nullable
  - `result` WebSearchResult — Inline or final web/media result payload.
    - `capability` 'web_search'
    - `items` WebSearchItem[]
      - `confidenceCategory` 'likely' | 'uncertain', required
      - `contentType` 'article' | 'post' | 'video' | 'forum_thread' | 'paste' | 'other', required
      - `displayDomain` string, required
      - `id` string, required
      - `label` string, required
      - `matchRationale` string[]
      - `matchedInputs` MatchedInputReference[]
        - `inputType` 'name' | 'alias' | 'adverse_term' | 'keyword' | 'region' | 'email' | 'phone' | 'address' | 'username' | 'domain' | 'location' | 'employer' | 'social_url' | 'seed_url' | 'date_of_birth' | 'place_of_birth' | 'age' | 'gender' | 'drivers_license_state' | 'employment_role' | 'employment_department' | 'employment_location' | 'employment_status', required
        - `value` string, required
      - `normalizedAttributes` SanitizedNormalizedAttributes — Sanitized, connector-agnostic normalized attributes.
        - `addresses` string[]
        - `dates` string[]
        - `domains` string[]
        - `emails` string[]
        - `keywords` string[]
        - `locations` string[]
        - `names` string[]
        - `organizations` string[]
        - `phones` string[]
        - `profileHandles` string[]
        - `usernames` string[]
      - `publishedAt` string, date-time, nullable
      - `resultUrl` string, nullable — Full URL for web/media hits. Web results intentionally expose the source URL so investigators can review the underlying page.
      - `safeMetadata` object
      - `sourceType` 'web' | 'news' | 'social' | 'registry' | 'person_record' | 'derived', required
      - `summary` string, required
      - `type` 'web_hit'
    - `limit` integer
    - `nextCursor` string, nullable
    - `total` integer, nullable
    - `warnings` ApiWarning[]
      - `code` string, required
      - `message` string, required
  - `resultUrl` string, nullable
  - `startedAt` string, date-time, nullable
  - `status` 'queued' | 'running' | 'completed' | 'failed' | 'expired', required
  - `streamUrl` string, nullable
  - `submittedAt` string, date-time, required
  - `summary` JobSummary — Summary counters for a completed or running job.
    - `itemsFound` integer
    - `itemsReturned` integer
  - `warnings` ApiWarning[]
    - `code` string, required
    - `message` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/intraceai/apis/intelligence-api.md) · [All operations](https://skmtc.net/intraceai/apis/intelligence-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/intraceai/intelligence-api/revisions/c0216eef7380/schema)
