mon ▸ watching 00: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 changenotify agentPOST webhookrun reprice flow
value, selector, or visual zone change-only alerts act on change
mon ▸ target picked 00: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-pro 1× 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 set 00: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 detected 00: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 changenotify agentPOST webhookrun 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 selected 00: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 plan 00: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 default 00: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.

01 detect
DetectA check runs at your cadence and captures the new value. Detection alone acts on nothing.
02 validate
ValidateThe capture is extracted into structured values and deduplicated - one real change fires once, even when several selectors catch it.
03 conditions
ConditionsYour rules decide: threshold, direction, cooldown and a hard cap on how often the automation may act. No match, no action.
04 approval
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.
05 execute
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.
06 log
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.
07 retry
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 file 00: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 api 00: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.