Use Case

Diff competitors
without getting blocked

Competitive intel is simple: extract, normalize, diff, alert. The hard part is the modern web. browser.city gives you stealth-by-default extraction primitives so your monitors don’t die quietly.

Deterministic Diffs

Extract clean markdown so diffs are about content changes, not DOM churn.

Stealth-First Crawling

Competitive pages are guarded. Stealth-by-default keeps your monitors alive and your data consistent.

Requests For 90%

Most competitive intel is extraction: pricing pages, changelogs, docs, status pages. Use Request API for speed.

Sessions For Auth

When competitors hide pricing behind dashboards, use Sessions (Playwright connect) and keep state across pages.

Screenshot Proof

When a diff fires, grab a screenshot/PDF with Humanized REST tools for quick triage and reporting.

Zero-Logs Posture

Competitive monitoring can be sensitive. Keep your run history and datasets out of vendor logs.

Hash + alert

Extract markdown, hash it, and alert when it changes. Pair this with screenshots/PDF for “proof” when stakeholders ask what changed.

diff.ts
import { createHash } from "node:crypto";const apiKey = process.env.BROWSERCITY_API_KEY!;const opts = { method: "POST", headers: { Authorization: `Bearer ${apiKey}` } };const res = await fetch("https://api.browser.city/v1/requests", {  ...opts,  body: JSON.stringify({ url: "https://example.com/pricing", markdown: true }),}).then((r) => r.json());const md = String(res.content ?? "");const hash = createHash("sha256").update(md).digest("hex");console.log({ hash });// Compare the hash to yesterday's value and alert if different.

What teams monitor

Pricing pages
Changelogs
Docs updates
Status incidents
Terms changes
Job postings
Product marketing pages
Security pages
[ 06 / 06 ] — Get Started

Start building in under a minute

Free tier. No credit card. Full stealth from day one.