mon ▸ watching00:00:00

Watch any page.
Act the moment it moves.

Point a monitor at any value on any page, a price, a status, a visual zone, as fast as every 10 seconds. When it changes, Writ fires the same beat: notify an agent, call a webhook, or kick off a workflow.

as fast as every 10s · your own accounts and data · HTTP or full browser render
pricewatch/iphone-16-pro · every 30s
$1,199no change yet
last 12 checks · steady
detect change→notify agent→POST webhook→run reprice flow
✓ value, selector, or visual zone✓ change-only alerts✓ act on change
mon ▸ target picked00:00:05
01
what to watch

A number, an element, or a whole zone.

Baseline on a value, a CSS selector, or a screenshot region. Writ watches only that, and only tells you when it actually changes. Pick a target:

store.example.com/iphone-16-provalue
pricewatch/iphone-16-pro1× selector read
$1,100
eventchange_detected
conditionprice < threshold
actionrun workflow · notify

The reaction starts from the persona’s warm session — no cold login. If the action fails, Writ logs the run and applies the retry policy you configured.

mon ▸ cadence set00:00:11
02
cadence

As often as every ten seconds.

Set how often the monitor checks. The fastest cadence is set by your plan, and lightweight HTTP checks run tighter than heavier browser renders. Pick an interval:

next check in 05:00
mon ▸ change detected00:00:18
03
watch & act

Detect the change. Fire the action.

When a Monitor detects a change, that event becomes an automation trigger: it fires a workflow, optionally held behind a confirm-gate for your approval. Detection to action, automatic. Trip it:

on change → notify · webhook · workflow
detect change→notify agent→POST webhook→run workflow
A change is a trigger. The trigger is an action, and it happens faster than you could.

The action is an automation that fires a workflow. See the full pattern on Watch-and-Act.

env ▸ venue selected00:00:24
04
run it your way

Runs on your machine, free, or in the cloud.

Local monitors run on your own machine at no compute charge. Cloud monitors run on the managed fleet, checked from the region you choose. Pick a venue:

cadence ▸ per plan00:00:26
05
Fastest check, by plan

Honest cadence - no asterisks.

Check frequency is a fixed floor per plan. HTTP checks (static pages) are faster than JS renders (dynamic pages), which run a full browser.

PlanHTTP (static)JS render (dynamic)
Freeevery 5 minevery 15 min
Starterevery 1 minevery 10 min
Proevery 1 minevery 10 min
Growthevery 30 severy 5 min
Scaleevery 10 severy 2 min
Enterpriseevery 10 severy 2 min

These floors are the same numbers on the pricing page - never a "contact us" for a cadence we list. 10-second checking is the top-tier floor.

rails ▸ on by default00:00:28
06
The seven-step rail

Unattended action, on rails you set.

Every fire walks the same seven steps, in order, and the sensitive ones wait for you. Nothing acts straight off a page change.

01detect
DetectA check runs at your cadence and captures the new value. Detection alone acts on nothing.
02validate
ValidateThe capture is extracted into structured values and deduplicated - one real change fires once, even when several selectors catch it.
03conditions
ConditionsYour rules decide: threshold, direction, cooldown and a hard cap on how often the automation may act. No match, no action.
04approval
Approval - if configuredA gated action parks as awaiting approval and notifies you: approve places it, reject discards it. Anything that can spend money also lives under a hard spend cap, and dry-run rehearses the whole chain without submitting anything.
05execute
ExecuteThe workflow runs on your own account, on sites you are authorized to use. Credentials resolve from the encrypted vault at execution - they are never written into the automation itself.
06log
LogEvery fire is recorded - what triggered it, what ran, the result and the timestamps - so you can audit exactly what happened, when, on which account.
07retry
Retry - or stopA failed run retries with backoff from a visible budget. When the budget is spent, the chain stops instead of firing blind.

Detect runs at your plan's cadence floor - Free 5 min · Starter 1 min · Pro 1 min · Growth 30 s · Scale 10 s · Enterprise 10 s. The same floors as on the pricing page, never hand-adjusted here.

A gated action waits for your explicit approval; anything that can spend money also lives under a hard spend cap. Writ runs on your own accounts, with your own credentials, on sites you choose. It automates work a person could do by hand - within hard limits, never beyond them. See the Acceptable Use Policy.

cfg ▸ one file00:00:31
07
Example

Back in stock to a prepared workflow - one configuration.

The trigger, the action, and the safety rails live in a single configuration. Call the resulting Workflow as an endpoint, or let the change fire it automatically.

watch-and-act.config
# Monitor: out-of-stock PDP, every 10s (Scale), JS render, selector ".stock-status"
# Automation: on change to "In stock" -> run Workflow "reserve-and-notify"
# Workflow: navigate -> fill (order form, Persona) -> submit -> capture confirmation
# Rails: confirm_gate=on, dry_run=false, rate_cap=1/min, idempotency_key=<sku+event>

POST https://api.usewrit.app/v1/reserve-and-notify/run
Authorization: Bearer wt_...
-> { "status": "awaiting_approval", "run_id": "...", "gate": "confirm-gate" }
dev ▸ monitor api00:00:34
08
developers

Wire monitors from code.

Arm a Monitor over the API in any language: set the target, the cadence, and what fires on change. Pick a language and run it:

A monitor is one POST with a key. No install, no agent to run — Writ checks the page on your cadence and records every change.

# Watch a page on Writ Cloud — no install, just the key.
curl -X POST https://api.usewrit.app/api/targets \
  -H "Authorization: Bearer $WRIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com",
       "check_type": "content",
       "selector": "h1",
       "check_period_ms": 300000}'

A check interval below your plan’s minimum is refused outright, naming the floor — it is never quietly slowed down.