Catch Regulatory & Policy Changes — With a Timestamped Record of Each One
Legal, compliance, and GRC teams have to know the moment a regulator updates guidance, a statute page changes, a sanctions list is revised, or a vendor quietly edits its terms. Rendex Watch monitors any of those URLs on a schedule, renders them in real Chrome, runs a before/after visual and text diff with a highlighted overlay, and alerts you by email or webhook — while every capture is stamped with its time, final URL, and HTTP status for your evidence trail. Point-and-click in the dashboard or with one API call.
The Problem
Compliance obligations hinge on sources you don't control: regulator bulletins, legislation and rule-making pages, sanctions and watchlists, licensing conditions, and the terms, privacy policies, and DPAs of every vendor in your supply chain. These pages change without notice and rarely send an alert. Checking them by hand doesn't scale across jurisdictions, misses overnight edits, and — worse for an auditor — leaves no defensible record of what a page actually said on a given date. Rolling your own watcher means a scheduler, a fleet of headless browsers, immutable storage for every snapshot, and a diffing pipeline, all of which then become their own compliance liability to maintain.
The Solution
Rendex Watch is the monitoring product built into the API: point it at a regulator page, statute, sanctions list, or vendor terms URL — in the dashboard or with one POST to /v1/watches — pick the cadence and what counts as a change, and Rendex renders the page in real Chrome on schedule, runs the before/after visual diff (with a highlighted overlay plus a secondary text diff that shows exactly which clauses moved), and fires an email or HMAC-signed webhook when it changes. Every capture carries a timestamp, the final URL, and the HTTP status, so you keep a dated record of what each source said and when. Need the evidence in your own custody? On Pro and Enterprise, deliver each render straight to your S3/R2 bucket for a tamper-resistant archive — or build the whole pipeline yourself on the screenshot API, capturing timestamped snapshots on your own cron and diffing them in CI.
Get Started in Minutes
# Watch a regulator page — Rendex renders it in real Chrome on a schedule,
# runs a before/after visual + text diff, and alerts you the moment it changes.
curl -X POST https://api.rendex.dev/v1/watches \
-H "Authorization: Bearer rdx_your_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://regulator.example.gov/guidance/aml",
"name": "AML guidance page",
"diffMode": "both",
"threshold": 0.01,
"intervalMinutes": 1440,
"webhookUrl": "https://hooks.yourapp.com/compliance-watch",
"renderParams": { "fullPage": true }
}'
# Rendex captures the baseline now, re-checks daily, and POSTs your webhook
# (with a highlighted diff overlay + text diff) the moment the guidance changes.// Monitor a vendor's Terms / DPA for silent edits — POST /v1/watches.
const res = await fetch("https://api.rendex.dev/v1/watches", {
method: "POST",
headers: {
Authorization: "Bearer rdx_your_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
url: "https://vendor.example.com/legal/terms",
name: "Vendor Terms of Service",
diffMode: "both", // visual + text diff of the clauses
threshold: 0.01,
intervalMinutes: 1440, // daily
notifyEmail: "compliance@youraccount.com", // must be your own account email
renderParams: { fullPage: true },
}),
});
const { data: watch } = await res.json();
console.log(`Watching ${watch.url} — next check ${watch.nextRunAt}`);# Own the chain of custody: capture a timestamped snapshot of a source on
# your own schedule and keep it as dated evidence of what the page said.
from rendex import Rendex
from pathlib import Path
from datetime import datetime, timezone
rendex = Rendex("YOUR_API_KEY")
def archive(url: str, label: str) -> None:
result = rendex.screenshot(url=url, full_page=True, format="png")
stamp = datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ")
out = Path(f"evidence/{label}/{stamp}.png")
out.parent.mkdir(parents=True, exist_ok=True)
out.write_bytes(result.image)
# result carries the final URL + HTTP status for your audit log.
print(f"Archived {url} at {stamp} (status {result.status})")
archive("https://sanctions.example.int/list", "sanctions-list")100 free API calls/month — no credit card required. Get your API key and start building.
Built for This Use Case
Clause-Level Change Detection
Rendex Watch renders the whole page in real Chrome on your schedule and runs a before/after visual diff with a highlighted overlay — plus a text diff that surfaces exactly which clauses, figures, or list entries changed.
Timestamped for Audit
Every capture returns the time, final URL, and HTTP status — a dated record of what a regulator page, statute, or vendor policy actually said on a given day, the provenance an auditor expects.
Evidence in Your Own Custody
Deliver every render straight to your own S3/R2 bucket (Pro+) for a tamper-resistant, long-term archive you control — not a record that lives only in someone else's dashboard.
Monitor Hundreds of Sources
Batch and async endpoints cover a whole register of regulator pages, sanctions lists, and vendor terms in one run, with HMAC-signed webhooks as each finishes.
Best-Attempt Reliability
A slow or flaky government or vendor site returns the best capture plus a quality signal instead of a silent gap in your monitoring record.
Per-Jurisdiction Monitoring (Pro+)
Render a page as it appears from a specific country to track geo-targeted regulatory notices and localized terms that differ by market.
Start Free, Scale as You Grow
100 calls/month free. Starter at $69/mo for 10K calls (or $58/mo billed annually — 2 months free). Pro at $179/mo for 100K calls.