---
title: "Get Site Config analysis"
method: GET
path: "/site-configs/{id}"
tags: ["Site Configs"]
---

# Get Site Config analysis

`GET /site-configs/{id}`

Returns a project-scoped historical analysis and the recommendation concluded by that run. Later knowledge does not change this response.

## Path parameters

- `id` string, required

## Response `200`

Analysis state and the recommendation concluded by that historical run.

- SiteConfigResponse
  - `analysis` SiteConfigAnalysis, required
    - `created_at` string, date-time, required — Time the analysis was created.
    - `failure` Error, required
      - `code` string, required — Application-specific error code (machine-readable)
      - `details` ErrorDetail[] — Additional error details (for multiple errors)
        - `code` string — Lower-level error code providing more specific detail
        - `message` string — Further detail about the error
      - `inner_error` ErrorDetail
        - `code` string — Lower-level error code providing more specific detail
        - `message` string — Further detail about the error
      - `message` string, required — Human-readable error description for debugging
    - `finished_at` string, date-time, nullable, required — Time the analysis reached a terminal status. Null while it is running.
    - `id` string, required — Discovery run ID used to poll analysis status.
    - `status` 'running' | 'completed' | 'failed' | 'canceled', required — Lifecycle status of the background analysis.
  - `recommendation` SiteConfigRecommendation, required
    - `browser` SiteConfigBrowser, required — Browser settings that can be passed directly to `POST /browsers`.
      - `gpu` boolean, required
      - `headless` boolean, required
      - `stealth` boolean, required
      - `viewport` BrowserViewport, required — Initial browser window size in pixels with optional refresh rate. If omitted, image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For GPU images, recommended presets use one of these resolutions with refresh rates 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view or recording behavior. If refresh_rate is not provided, it will be automatically determined based on the resolution (higher resolutions use lower refresh rates to keep bandwidth reasonable).
        - `height` integer, required — Browser window height in pixels. Any positive integer is accepted.
        - `refresh_rate` integer — Display refresh rate in Hz. Any positive integer is accepted; if omitted, automatically determined from width and height.
        - `width` integer, required — Browser window width in pixels. Any positive integer is accepted.
    - `evidence` SiteConfigEvidence, required
      - `accessed` integer, required
      - `blocked` integer, required
      - `inconclusive` integer, required
      - `last_observed_at` string, date-time, required — Most recent contributing observation. Recommendations remain eligible regardless of age and can be returned while a new analysis refreshes them.
      - `last_verified_at` string, date-time, nullable — Most recent contributing run where this config met the success threshold. Omitted for knowledge assembled from runs that did not independently meet the threshold.
      - `run_count` integer, required
      - `sample_size` integer, required — Number of judged trials.
      - `success_rate` number, required — Accessed trials divided by judged trials. Inconclusive trials are excluded.
    - `match_scope` 'exact' | 'host' | 'domain', required — Specificity of knowledge matched for this recommendation.
    - `matched_target` string, required — Target value that supplied the recommendation.
    - `proxy` union, required — Proxy recipe for the recommended browser.
      - SiteConfigDirectProxy — Direct egress recipe. Pass `{ "mode": "direct" }` as the browser's `proxy`.
        - `mode` 'direct', required
      - SiteConfigManagedProxy — Managed proxy recipe. `create` is a non-idempotent `POST /proxies` payload: create the resource once, retain its ID, and reuse that ID as the browser's `proxy.id`. Do not submit this recipe before every browser session.
        - `create` ProxyCreateRequest, required — Configuration for routing traffic through a proxy.
          - `bypass_hosts` string[] — Hostnames that should bypass the parent proxy and connect directly.
          - `config` union — Configuration specific to the selected proxy `type`.
            - DatacenterProxyConfig — Configuration for a datacenter proxy.
              - …
            - IspProxyConfig — Configuration for an ISP proxy.
              - …
            - ResidentialProxyConfig — Configuration for residential proxies.
              - …
            - MobileProxyConfig — Configuration for mobile proxies.
              - …
            - CreateCustomProxyConfig — Configuration for a custom proxy (e.g., private proxy server).
              - …
          - `name` string — Readable name of the proxy.
          - `protocol` 'http' | 'https' — Protocol to use for the proxy connection.
          - `type` 'datacenter' | 'isp' | 'residential' | 'mobile' | 'custom', required — Proxy type to use. In terms of quality for avoiding bot-detection, from best to worst: `mobile` > `residential` > `isp` > `datacenter`.
        - `mode` 'managed', required
    - `verification` 'verified' | 'inferred', required — Exact matches meet the evidence threshold; host and domain fallbacks are inferred. Check evidence.last_verified_at for successful verification age and last_observed_at for the latest evidence.
  - `target` SiteConfigTarget, required
    - `domain` string, required — Registrable domain.
    - `host` string, required — Full hostname, including subdomain.
    - `normalized` string, required — Exact normalized scheme, host, port, and path used for lookup.

## Other responses

- `401` — Unauthorized – missing or invalid authorization token
- `404` — Resource not found
- `500` — Internal Server Error

---

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