Browser Lite monitor
A Browser Lite monitor loads a single URL in a real browser, runs a short list of assertions against the rendered page, and records a screenshot on failure. It catches issues that an HTTP monitor misses — JavaScript errors, broken third-party widgets, missing fonts, layout shifts, content rendered only after JS execution.
For multi-step user journeys (sign-in → checkout → confirmation), use a Browser Flow monitor instead.
Plan & add-ons
Browser Lite slots are sold per variant:
| Variant | Minimum interval | Where to get it |
|---|---|---|
| Standard | 5 min | $4.99/mo per slot (Starter+). Pro includes 2; Business includes 5. |
| Fast | 1 min | $9.99/mo per slot (Pro+). Business includes 2. |
Self-hosted Browser Lite slots ($9.99/mo, Starter+, 1-min minimum interval, no managed runtime cap) run the same check on your own runner — use them for browser checks against private endpoints or to avoid the cloud-managed runtime cap.
Top-level configuration
| Field | Type | Default | Notes |
|---|---|---|---|
| URL | URL | — | Page to load. Required. |
| Browser | enum | chromium | One of chromium, firefox, webkit. |
| Browsers | array | — | Run the same check across multiple engines (Business plan + add-ons). Takes precedence over Browser when set. |
| Viewport | object | 1280 × 720 | {width, height}. Width 320–3840, height 240–2160. |
| User agent | string | browser default | Optional override. Max 500 chars. |
| Wait until | enum | load | One of load, domcontentloaded, networkidle, commit. |
| Assertions | array | — | One or more page-level assertions (see below). |
| Screenshot on failure | bool | true | Capture a screenshot when an assertion fails. |
| Trace capture | bool | false | Record a full trace artifact. Larger; useful for debugging intermittent failures. |
| Ignore HTTPS errors | bool | false | Disable certificate verification. Staging-only. |
Assertions
Browser Lite supports exactly six assertion types. Each entry in
the assertions array has a type and a params object:
| Assertion | Params | Checks |
|---|---|---|
status_code | operator? (eq, neq, gt, lt, gte, lte, in, not_in — default eq), value (number, or number array for in / not_in) | HTTP status of the page’s own main-document response. Sub-resource requests (scripts, images, third-party calls) never affect this assertion. |
text_contains | text, is_regex? (default false), case_sensitive? (default false), selector? | The page — or the element scoped by selector — contains the text. |
text_not_contains | text, is_regex? (default false), case_sensitive? (default false), selector? | The page (or scoped element) does not contain the text. |
element_exists | selector | At least one element matches the selector. |
element_not_exists | selector | No element matches the selector. |
response_time_below | ms (1–60000) | Total page-load time is below the threshold. |
All six assertion types are fully enforced — a failing assertion
of any type marks the check down.
For richer assertions (title, URL, attributes, CSS, console
errors) or multi-step flows that require interaction (click,
fill, etc.) before asserting, use Browser Flow.
Runtime cap
Cloud-managed Browser Lite checks have a 90 second total
runtime cap on every variant (Standard and Fast). A check that
doesn’t complete inside the cap is marked down with reason
runtime_exceeded.
Self-hosted Browser Lite slots have no managed runtime cap — the effective limit is what your runner allows.
Result data
Each check returns:
- Total page-load duration (ms).
- Per-assertion pass / fail outcome.
- Final page URL.
- HTTP status of the navigation.
- Screenshot artifact (on failure or when explicitly requested).
- Trace artifact (when
trace_capture: true). - Console error counts.
Status mapping
| Outcome | Status |
|---|---|
| Page loads, every assertion passes | up |
| Page loads but runtime exceeded the degraded threshold | degraded |
| Any assertion fails | down |
| Navigation aborts, browser fails to launch, network unreachable | down |
| Runtime cap exceeded | down |
Tips
- Run on Chromium first, then layer Firefox or WebKit only if you’ve seen real engine-specific issues. Each engine adds compute.
- Pair with an HTTP monitor on the same URL — Browser Lite catches the rendered-page failures, HTTP catches the infra-level ones.
- Heavy single-page apps with long JavaScript execution may need
wait_until: "networkidle"so the assertions don’t fire before the page is ready.