---
title: "vision.ui-check-result@1 · OpenVibe.Services"
canonical: "https://openvibe.services/docs/contracts/vision.ui-check-result"
updated: null
---

# vision.ui-check-result@1 · OpenVibe.Services

HTML: [vision.ui-check-result@1 · OpenVibe.Services](https://openvibe.services/docs/contracts/vision.ui-check-result)

# VisionUiCheckResult `vision.ui-check-result@1`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

- Version: 1.0.0
- Owner: vision
- Visibility: first-party
- Status: active
- Compatibility: backward
- Schema: [`https://openvibe.network/contracts/vision/ui-check-result.v1.json`](/docs/contracts/vision.ui-check-result.json)

vision.ui-check-result@1: the answer of POST /api/v1/ui-check and GET /api/v1/ui-checks/:id on OpenVibe.Vision. \`check\` names the engine that ran (static HTML/CSS or a screenshot through OCR boxes and pixels), the viewport, every finding with its stable kind and severity, and the summary the saved row keeps. No image bytes are returned; a screenshot is identified only by its sha256.

## Fields

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `check` | object | yes |  | - `no other fields` |
| `check.id` | string | yes |  | - `pattern ^vuc_[0-9A-HJKMNP-TV-Z]{26}$` |
| `check.source` | enum | yes |  | - `one of "html", "url", "screenshot"` |
| `check.url` | string \| null |  |  | - `format uri` |
| `check.image_sha256` | string \| null |  |  | - `pattern ^[0-9a-f]{64}$` |
| `check.viewport` | object | yes |  | - `no other fields` |
| `check.viewport.w` | integer | yes |  | - `minimum 160`<br>- `maximum 10000` |
| `check.viewport.h` | integer | yes |  | - `minimum 160`<br>- `maximum 10000` |
| `check.engine` | enum | yes |  | - `one of "static-html", "screenshot"` |
| `check.findings` | array of object | yes |  | - `items: no other fields` |
| `check.findings[].kind` | enum | yes |  | - `one of "overflow", "cut_off", "contrast", "overlap", "layering"` |
| `check.findings[].severity` | enum | yes |  | - `one of "high", "medium", "low"` |
| `check.findings[].selector` | string | yes |  |  |
| `check.findings[].detail` | string | yes |  |  |
| `check.findings[].evidence` | object |  |  |  |
| `check.summary` | object |  |  |  |
| `check.counts` | object |  |  |  |
| `check.severity` | object |  |  |  |
| `check.warnings` | array of string |  |  |  |
| `check.summary_text` | string |  |  |  |
| `check.created_at` | string | yes |  | - `format date-time` |

## Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

 Valid: overflow

~~~~
{
  "check": {
    "id": "vuc_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "source": "html",
    "url": null,
    "image_sha256": null,
    "viewport": {
      "w": 390,
      "h": 844
    },
    "engine": "static-html",
    "findings": [
      {
        "kind": "overflow",
        "severity": "medium",
        "selector": "div.card",
        "detail": "the box is 1400px wide and reaches 1400px in a 390px viewport",
        "evidence": {
          "width": 1400,
          "right": 1400,
          "viewport": 390
        }
      }
    ],
    "summary": {
      "ok": false,
      "engine": "static-html",
      "source": "html",
      "viewport": {
        "w": 390,
        "h": 844
      },
      "counts": {
        "overflow": 1
      },
      "severity": {
        "high": 0,
        "medium": 1,
        "low": 0
      },
      "findings": 1,
      "summary": "1 UI fault found (1 overflow)",
      "warnings": []
    },
    "counts": {
      "overflow": 1
    },
    "severity": {
      "high": 0,
      "medium": 1,
      "low": 0
    },
    "warnings": [],
    "summary_text": "1 UI fault found (1 overflow)",
    "created_at": "2026-10-28T12:00:00.000Z"
  }
}
~~~~

Rejected: missing-fields

~~~~
{
  "check": {
    "id": "not-a-check"
  }
}
~~~~

## Validate

~~~~
const contracts = require('openvibe-contracts');
contracts.validate('vision.ui-check-result@1', value);   // { valid, errors: [{ path, message }] }
~~~~
