Report Format
Every examine run produces a MatrixReport containing metadata and one BrowserReport per browser.
MatrixReport
{
"runId": "uuid",
"url": "https://example.com",
"policy": "strict",
"createdAt": "2026-06-17T12:00:00.000Z",
"artifactDir": "/path/to/runs/uuid",
"reports": [ BrowserReport, ... ]
}
| Field | Description |
|---|---|
| runId | Unique identifier for the run |
| url | Normalized target URL |
| policy | Safety policy used |
| createdAt | ISO 8601 timestamp |
| reports | Array of per-browser reports |
BrowserReport
{
"browserId": "chromium",
"browserName": "Bundled Chromium",
"ok": true,
"startedAt": "2026-06-17T12:00:00.000Z",
"finishedAt": "2026-06-17T12:00:03.000Z",
"initialUrl": "https://example.com",
"finalUrl": "https://example.com",
"title": "Example Domain",
"status": 200,
"screenshot": "/api/runs/uuid/artifact/chromium/chromium-desktop.png",
"mobileScreenshot": "/api/runs/uuid/artifact/chromium/chromium-mobile.png",
"redirects": [],
"network": [ NetworkEntry, ... ],
"console": [ ConsoleEntry, ... ],
"storage": { ... },
"warnings": []
}
NetworkEntry
{
"method": "GET",
"url": "https://example.com/style.css",
"domain": "example.com",
"status": 200,
"resourceType": "stylesheet",
"size": 1234,
"failed": "ERR_CONNECTION_REFUSED"
}
status and size are set after the response arrives. failed is set if the request failed.
ConsoleEntry
{
"level": "error",
"text": "Failed to load resource",
"location": {
"url": "https://example.com/script.js",
"lineNumber": 42,
"columnNumber": 10
}
}
StorageSummary
{
"cookies": [
{
"name": "session",
"domain": ".example.com",
"path": "/",
"secure": true,
"httpOnly": true,
"sameSite": "Lax"
}
],
"localStorageKeys": ["key1", "key2"],
"sessionStorageKeys": []
}
File storage
Artifacts are stored on disk in runs/<runId>/:
runs/<runId>/
report.json # Complete MatrixReport
report.html # Visual HTML summary
chromium/
report.json # Per-browser BrowserReport
chromium-desktop.png
chromium-mobile.png