Private beta — hosted URL monitoring

Watch the public web

Point Cambio at any URL, choose your interval and define what counts as a real change. We run the schedulers, fetches, and storage—you get webhooks and structured payloads into your own systems.

monitor.ts
await cambio.monitor.create({
  url: "https://releases.example.com/changelog",
  match: "semver headings + breaking section",
  interval: "5m",
  webhook: "https://api.yours.dev/hooks/releases",
});

Why Cambio

The web is live data. Treat it like production input.

Sites change without a changelog

Retail pages, release notes, and signup flows update constantly. Building your own parser mesh for every target does not scale. Cambio keeps checks and normalization in one hosted layer so your services subscribe to outcomes, not HTML archaeology.

You lose the story between two polls

If nothing persists between checks, you cannot explain a price move or a quiet Terms tweak from Tuesday to Thursday. Cambio stores versioned captures for every monitor so your stack diffs, replays, and webhooks run on retained history—not guesswork from the latest fetch.

Noise drowns real events

Ads, A/B tests, and timestamps create endless false positives. Cambio focuses on the signal you define—inventory, headings, prices, body copy—so only meaningful web activity becomes an event in your pipeline.

How it works

Three steps. Your webhooks, your workers.

01

Register a URL and a match rule

POST the page to watch, the interval, and what should count as a change—plain language for fuzzy targets, or selectors and paths when you want hard guarantees.

POST /v1/monitors
POST /v1/monitors
Authorization: Bearer sk_live_•••

{
  "url": "https://shop.example.com/sneakers/drop-page",
  "match": "size 10 in stock OR price below 160",
  "interval": "30s",
  "webhook": "https://api.yours.dev/hooks/cambio"
}
02

We poll, snapshot, hash, and diff

Every check writes another entry in version history: capture time, snapshot id, and a stable hash of the normalized page. Rules evaluate against that chain—most hashes produce no event; your webhook fires only when the diff crosses what you defined.

version-history.json
{
  "monitor_id": "mon_8f2a",
  "url": "https://shop.example.com/sneakers/drop-page",
  "version_history": [
    {
      "seq": 1,
      "captured_at": "2026-05-10T14:00:08Z",
      "snapshot_id": "snap_k9mw",
      "normalized_body_hash": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    },
    {
      "seq": 2,
      "captured_at": "2026-05-10T14:05:08Z",
      "snapshot_id": "snap_k9n1",
      "normalized_body_hash": "sha256:2c26b46b68ffc68ff99b453c1d30413408132f176fe180af299da62f29cb9229",
      "diff_vs_previous": {
        "rule_matched": false,
        "reason": "timestamp noise only"
      }
    }
  ]
}
03

Deliver events to your stack

On a match, POST a structured payload to your HTTPS endpoint—or forward into queues and workers you already run. Same contract for sneaker drops, changelog lines, or pricing tables.

webhook.json
POST https://api.yours.dev/hooks/cambio
{
  "monitor_id": "mon_8f2a",
  "url": "https://shop.example.com/sneakers/drop-page",
  "detected_at": "2026-05-10T14:22:08Z",
  "change": {
    "type": "inventory",
    "summary": "Size 10 now listed as in stock",
    "before": { "sizes_in_stock": ["8", "9"] },
    "after":  { "sizes_in_stock": ["8", "9", "10"] }
  }
}

Built for builders

Monitoring primitives, not another dashboard.

Treat public URLs like upstream dependencies: versioned captures, explicit match rules, and HTTP callbacks into the services you already operate—SQS, Lambdas, background workers, or a simple API route.

Rules that fit the page

Use natural-language descriptions when the layout is messy, or pin CSS selectors and JSON paths when you need deterministic diffs. Same pipeline for both.

Structured outputs

Receive summaries plus before and after fields you can branch on in code—ideal for driving checkout bots, ticket bots, or internal dashboards without re-parsing HTML yourself.

Hosted operational core

No fleet of cron containers or scraper workers to patch. Retries, jitter, and capture live in Cambio so your infra stays a consumer of events, not a mirror of every target site.

Cadence you choose

From sub-minute checks for hot inventory to hourly passes on docs. Tune how aggressively you poll; we keep the operational load out of your VPC.

Use cases

From hype drops to quiet doc edits

Any workflow that depends on the public web changing—commerce, events, compliance, observability—gets the same building blocks: scheduled checks, durable captures, and outbound events you own end to end.

Inventory and sneaker-style drops

Watch PDPs and queue pages for SKU, size, or price changes. Fire a webhook the moment the DOM or JSON bundle shows stock—your bot or checkout flow handles the rest.

Ticket and registration opens

Race signups for marathons, concerts, and limited drops. Cambio holds the polling and diffing; you keep business logic in your own worker pool.

Changelogs and release pages

Track vendor changelogs, SDK release notes, and semver pages. Get an event when a breaking section appears—not when the footer copyright year ticks.

Competitive and pricing moves

Monitor competitor landing pages, pricing tables, and feature grids. Ship alerts to Slack or an internal pricing service when copy or numbers shift.

Policy, legal, and trust pages

Diff privacy policies, terms, and security advisories with history you can point to for audit or GRC workflows.

Status and incident surfaces

Watch status.example.com, maintenance banners, or API doc incident boxes. Turn vendor outages into automated runbooks or customer comms.

Webhooks into your queues

POST structured payloads straight to API Gateway, SQS consumers, or a Vercel route. Cambio is the sensor; your existing infra stays the brain.

Pricing

Metered like infra, not seats.

Free

Available in beta
$0/forever
  • 100 checks / month
  • Hourly cadence
  • Email or webhook delivery
  • 1 monitor

Pro

Coming soon
$29/month
  • 10,000 checks / month
  • 5-minute cadence
  • Signed webhooks + structured change payloads
  • Mixed rule types on one monitor
  • Up to 50 monitors

Scale

Coming soon
$199/month
  • 100,000 checks / month
  • 1-minute cadence
  • Extended retention & replay API
  • Higher concurrency for burst traffic
  • Unlimited monitors

Early access

Tell us what you monitor today

We are onboarding teams that already feel the pain of bespoke scrapers and brittle cron jobs. Drop your URLs and use cases—drops, changelogs, pricing, compliance—and we slot you into the right beta cohort.

No spam. Unsubscribe anytime.