---
title: "Run web/media search"
method: POST
path: "/v1/web-search"
tags: ["web-search"]
---

# Run web/media search

`POST /v1/web-search`

Create a web-search job and wait for an inline result when `responseMode` is `sync`. If the job does not finish before the inline timeout, or when `responseMode` is `async`, the API returns a persisted job envelope. Every response includes `X-Job-Id` for later lookup.

## Request body

- WebSearchRunRequest — Run endpoint payload for web search.
  - `adverseTerms` string[] — Optional adverse-media terms to search alongside the subject. The service also uses a built-in adverse/legal/regulatory term pack.
  - `dateRange` WebSearchDateRange — Date-range filter for web search.
    - `from` string, date, required
    - `to` string, date, required
  - `maxResults` integer
  - `platformFilters` WebPlatform[]
  - `responseMode` 'sync' | 'async'
  - `seedUrls` string[]
  - `socialAccounts` WebSearchSocialAccount[]
    - `platform` 'x' | 'instagram' | 'telegram' | 'youtube' | 'facebook'
    - `profileUrl` string, uri, nullable
    - `username` string, nullable
  - `subject` WebSearchSubject, required — Search subject definition for web/media lookups.
    - `aliases` string[]
    - `approximateAge` integer, nullable
    - `bodyTypeBuild` 'Slim' | 'Average' | 'Athletic / Fit' | 'Muscular' | 'Heavyset' | 'Unknown'
    - `dateOfBirth` string, date, nullable
    - `driversLicenseState` 'AL' | 'AK' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FL' | 'GA' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'OH' | 'OK' | 'OR' | 'PA' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'UT' | 'VT' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY'
    - `emailAddress` string, email, nullable
    - `employer` string, nullable
    - `employmentDateOfHire` string, date, nullable
    - `employmentDepartment` string, nullable
    - `employmentLocation` string, nullable
    - `employmentRole` string, nullable
    - `employmentStatus` 'Employee' | 'Contractor' | 'Former Employee' | 'Terminated' | 'Applicant' | 'Unknown'
    - `ethnicity` 'American Indian or Alaska Native' | 'Asian' | 'Black or African American' | 'Hispanic or Latino' | 'Middle Eastern or North African' | 'Native Hawaiian or Other Pacific Islander' | 'White' | 'Other' | 'Unknown'
    - `gender` 'Male' | 'Female' | 'Non-binary' | 'Other' | 'Unknown'
    - `imageFileId` string, nullable
    - `imageUrl` string, uri, nullable
    - `languages` string[]
    - `militaryStatus` 'No Military Service' | 'Active Duty' | 'Reserve' | 'National Guard' | 'Veteran' | 'Unknown'
    - `mobilePhoneNumber` string, nullable
    - `name` string, required
    - `placeOfBirth` string, nullable
    - `regions` string[]
    - `socialMediaUrls` WebSearchSubjectSocialMediaUrl[]
      - `platform` 'x' | 'instagram' | 'telegram' | 'youtube' | 'facebook'
      - `url` string, uri, required
    - `terminationDate` string, date, nullable
    - `type` 'person' | 'organization' | 'keyword', required

## Response `200`

Normalized search hits when completed inline, otherwise a job envelope.

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