---
title: "One site check"
method: GET
path: "/builder/sessions/{sessionId}/quality/checks/{runId}"
tags: ["Builder"]
---

# One site check

`GET /builder/sessions/{sessionId}/quality/checks/{runId}`

## Request

- Base URL: `https://hostingsurge.com/api/v1`
- URL: `https://hostingsurge.com/api/v1/builder/sessions/{sessionId}/quality/checks/{runId}`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Host-hs_session`

## Path parameters

- `sessionId` string, uuid, required
- `runId` string, uuid, required

## Response `200`

The check

- object
  - `id` string, uuid, required
  - `kind` 'check' | 'monitor', required: check: the preview version (sandbox build, prerender, axe, audit); monitor: the live site, weekly
  - `status` 'running' | 'done' | 'failed', required
  - `startedAt` string, required: ISO-8601 timestamp
  - `finishedAt` string, nullable, required: ISO-8601 timestamp
  - `commitSha` string, nullable, required
  - `current` boolean, required
  - `url` string, nullable, required: Monitor: the live address checked
  - `score` integer, nullable, required
  - `blocking` boolean, required
  - `pagesChecked` integer, required
  - `cards` object[], required
    - `category` 'works' | 'mobile' | 'accessible' | 'fast' | 'findable' | 'safe', required: The score card: works (builds, no errors, no dead links), mobile, accessible, fast, findable (search engines, link previews), safe
    - `status` 'good' | 'fair' | 'poor' | 'blocked' | 'skipped', required
    - `score` integer, nullable, required
    - `blocking` integer, required
    - `warnings` integer, required
    - `tips` integer, required
    - `note` string, nullable, required: no_preview, no_build, no_pages (not checked); visual_off, visual_failed (checked in part)
  - `findings` object[], required
    - `id` string, required: Stable for the same problem in the same place, e.g. seo.h1-count:3f2a9c1d
    - `rule` string, required: The rule, e.g. seo.h1-count, a11y.img-alt, works.build, sec.secret, axe.<axe rule id>
    - `category` 'works' | 'mobile' | 'accessible' | 'fast' | 'findable' | 'safe', required: The score card: works (builds, no errors, no dead links), mobile, accessible, fast, findable (search engines, link previews), safe
    - `severity` 'block' | 'warn' | 'info', required: block refuses a publish (a failed build, a secret); warn and info never do
    - `message` string, required: Plain English for the customer
    - `params` object, required: Values of the message (counts, sizes, names)
    - `route` string, nullable, required: The page as a visitor opens it, e.g. /sv/meny
    - `page` string, nullable, required: The page id in src/site.ts
    - `lang` string, nullable, required
    - `file` string, nullable, required
    - `line` integer, nullable, required
    - `element` string, nullable, required: The element in words, e.g. <img> "/assets/team.webp"
    - `sectionIndex` integer, nullable, required: Its section on the page, from 0 ("Show me" selects it in the preview)
    - `fixHint` string, required: What the AI changes on "Fix it"
    - `fixable` boolean, required
    - `count` integer, required
  - `summary` object, required
    - `durationMs` integer
    - `build` object
      - `ok` boolean, required
      - `durationMs` integer, required
      - `jsKb` integer
    - `prerender` object
      - `mode` 'project' | 'fallback' | 'none', required
      - `pages` integer, required
      - `errors` integer, required
    - `axe` object
      - `ok` boolean, required
      - `pages` integer, required
    - `audit` object
      - `ok` boolean, required
      - `critical` integer, required
      - `high` integer, required
      - `moderate` integer, required
      - `low` integer, required
    - `visual` 'done' | 'off' | 'failed'
    - `requests` object: Weekly check: requests to the live site
      - `checked` integer, required
      - `failed` integer, required
    - `seoFiles` boolean: The SEO files automatic SEO would publish were checked
  - `error` object, nullable, required
    - `code` string, required
    - `message` string, required

## Other responses

- `400`: Invalid request (code invalid_request)
- `401`: Missing or invalid session/token (code unauthorized)
- `402`: Automatic SEO needs a plan or Build Credits (code upgrade_required, details.feature builder.auto_seo)
- `403`: Not permitted (code forbidden)
- `404`: Not found or not visible to the caller (code not_found)
- `409`: Refused for now (code conflict; details.reason turn_running, archived, not_published, auto_seo_unsupported)
- `429`: Too many checks or error reports (code rate_limited; details.reason check_rate, runtime_error_rate); see Retry-After
- `501`: Site checks are not set up on this server yet (code not_configured, details.reason not_ready)

---

[API](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api.md) · [All operations](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/revisions/4d08337cdff1?raw)
