Rendex
Use Case

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-regulation.sh
# 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.
watch-vendor-terms.js
// 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}`);
archive_evidence.py
# 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.

Frequently Asked Questions

Related Resources