Monitor any webpage for changes, via API.


Verid extracts the exact field you care about (price, version, stock status), then fires a webhook only when a predicate you define is true. Structured. Quiet by default.

Free, no signup. Paste any public URL and see the live diff.

6
Extractor methods
9
Predicate types
Retry w/ backoff
Fig. 1: The Wire
Monitors
React latest release
active
api.github.com/repos/facebook/react/releases/latest·$.tag_name
v18.2.0
every 60m
ETH / USD price
active
api.coingecko.com/api/v3/simple/price·$.ethereum.usd
$3,198.20
every 5m
npm: typescript
active
registry.npmjs.org/typescript/latest·$.version
5.4.4
every 30m
Delivery feedlive
14:02:11React latest releasev18.2.0v19.0.0200
13:55:44ETH / USD price3,198.203,241.88200
13:41:09npm: typescript5.4.45.4.5200
Corrections as they post: the old value struck, the new value set. The webhook payload, verbatim.
The problem

Every existing approach
optimizes the wrong layer.

You don't want raw HTML. You don't want "the page changed" emails. You want a webhook when a specific value crosses a threshold you care about, and when the change is visual, a pixel diff scoped to the region you chose.

DIY scrapers

Fragile selectors, forever

You write the fetch, the parser, the scheduler, the diff, the retry, the alert. Then the site changes a class name and you maintain it on a Sunday.

No-code monitors

Whole-page noise

"The page changed" alerts trigger on cookie banners, ad rotations, and timestamps. No way to scope the check or gate it on a rule, so you stop reading them.

Scraping APIs

Half the loop

They return structured data, but you still wire up scheduling, state, diffing, and predicates yourself. The annoying part is exactly the part they skip.

Verid is the missing middle: structured extraction, durable state, field-level diff, and predicate-driven delivery in one loop. One API call away.

The loop

One pipeline. Five stages.
Zero glue code.

Every monitor runs the same loop on a schedule you set. You write the config we run the infrastructure.

01

Fetch

Static fetch first. Auto-fallback to a headless browser, then residential proxy if the site fights back.

02

Extract

CSS, XPath, JSONPath, regex, full-page hash, or LLM prompt. Output is always typed fields.

03

Diff

Field-level comparison against the last successful run. Returns exactly which fields changed.

04

Predicate

Did price drop 10%? Did stock return? Did the version match a regex? Quiet unless your rule fires.

05

Deliver

HMAC-signed webhook, Slack, Discord, or email. 6 retries with backoff and a dead-letter queue.

Alert on meaningful state, not raw change.

The reason screenshot-only tools spam you is they fire on any change. Verid only fires when the rule you wrote returns true. Combine them with AND / OR.

  • Price drop
    Competitor price falls 5%+
  • Stock return
    Out-of-stock becomes available
  • Version bump
    A semver field changes
  • Composite
    AND / OR combinations
See all 9 predicate types →
predicate.json
{
  "type": "composite",
  "operator": "AND",
  "conditions": [
    { "type": "field_decreases_by_percent",
      "field": "price", "threshold": 10 },
    { "type": "field_equals",
      "field": "availability",
      "value": "in_stock" }
  ]
}
// → fires only on price drops for in-stock items

Get the alert where your team already works.

When a predicate fires, Verid pushes the before/after diff to the channel you choose - signed, retried, and never silently dropped.

  • HMAC-signed webhooks your endpoint can verify.
  • 6 retries with exponential backoff, then a dead-letter queue.
  • Before / after diff payload, not just "something changed".
POST /your-app/hooks
{
  "monitor": "React latest release",
  "fired": "field_changes",
  "field": "version",
  "before": "19.0.0",
  "after":  "19.1.0",
  "at": "2026-06-25T09:31:00Z"
}
Every request carries an X-Verid-Signatureheader - verify it with your monitor's secret before trusting the payload.
REST API

Create a monitor in seconds.

Full REST API with an OpenAPI 3.1 spec. Works with any HTTP client.

POST /v1/monitors
curl -X POST https://api.verid.dev/v1/monitors \
  -H "Authorization: Bearer vrd_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "React latest release",
    "url": "https://api.github.com/repos/facebook/react/releases/latest",
    "schedule_interval_seconds": 3600,
    "extract_config": {
      "method": "json_path",
      "fields": { "version": "$.tag_name" }
    },
    "diff_predicate": { "type": "field_changes", "field": "version" },
    "deliveries": [{ "type": "webhook", "url": "https://your-app.com/hooks" }]
  }'
Built for developers

Everything else the loop needs,
already wired.

Fetching, state, signing, retries, and templates the infrastructure you'd otherwise build and babysit yourself.

Three-layer fetching

Static fetch → headless browser → residential proxy. Bot-protected and JS-heavy sites escalate automatically.

REST API + Node SDK

Full REST API with an OpenAPI 3.1 spec and an official Node.js SDK. Works with any HTTP client.

Field-level diff history

Every run is compared to the last. See exactly which fields changed and their before / after values.

HMAC-signed webhooks

Each webhook is signed with your monitor’s secret so your endpoint can verify it really came from Verid.

Retries + dead-letter queue

6 automatic retries with exponential backoff. Anything that still fails lands in a dead-letter queue, never silently dropped.

Ready-made templates

Start in seconds with templates for GitHub releases, npm packages, CoinGecko prices, and more.

How Verid compares

The same job, three toolchains.

Verid is the only one that closes the loop instead of handing you the hard part.

Capability
DIY scraper
Screenshot-only tools
Verid
Structured field extraction
Yes (you write it)
Pixel diffs only
Yes 6 methods
Predicate-based alerting
You write it
No
8 predicates + composites
Field-level diff history
You store it
Image diffs only
Per-field before / after
Visual screenshot diff
You build capture + pixel compare
Whole page only
Region-scoped pixel diff
Bot / JS-heavy sites
You add a headless browser + proxies
Limited
Auto-escalates static → browser → proxy
Signed webhook delivery
You write retries
Email / Slack only
HMAC + 6× backoff + DLQ
Time to first alert
Days
Minutes (then noise)
Minutes (and quiet)
Google Alerts alternative

Google Alerts watches the news.
Verid watches the page.

Google Alerts emails you when a keyword turns up in something Google indexed. It can't read a price, a version number, a stock status, or a JSON field, and there is no API to create alerts from code. Verid monitors the URL itself and POSTs a signed webhook the moment your rule is true.

Capability
Google Alerts
Verid
What it watches
Newly indexed news, blog, and web results for a keyword
The exact URL you hand it, on your schedule
Prices, versions, stock status
Not supported
CSS, XPath, JSONPath, regex, hash, or AI extraction
What triggers the alert
The keyword appeared somewhere
9 predicate types on a named field, plus AND / OR
Before / after values
No history, just a link
Field-level diff of every run
JS-heavy or bot-protected pages
Only what Google already indexed
Static fetch escalates to browser, then residential proxy
Where the alert lands
Email digest or RSS feed
HMAC-signed webhook, Slack, Discord, or email
Check frequency
As-it-happens, daily, or weekly - Google decides
The interval you set, daily down to every 5 minutes
Set up from code
No public API
REST API, OpenAPI 3.1 spec, and a Node SDK

How to set up an alert in 3 steps.

No feed to find, no keyword guesswork. You name the page, the field, and the rule.

  1. 01

    Point Verid at a URL

    Paste the page or JSON endpoint you want to watch and pick a check interval, from once a day on the free plan down to every 5 minutes on paid plans.

  2. 02

    Pick the field to extract

    Choose a CSS selector, XPath, JSONPath, regex, full-page hash, or an AI prompt so the monitor returns a typed field such as price, version, or availability instead of raw HTML.

  3. 03

    Write the rule and the destination

    Set a predicate such as "price drops 10%" or "version changes", then choose a signed webhook, Slack, Discord, or email. Verid stays quiet on every run where the rule is false.

Already on a change monitor? Verid picks up where they stop: Visualping and Distill diff whole pages and mail you the result, ChangeTower and Talkwalker Alerts stop at keyword mentions, IFTTT needs a feed to already exist, and the Wayback Machine only shows you what changed long after it did. See how delivery works →

How do I...

The question you searched,
answered in one config.

Eight of the things people ask us to watch, each with the extractor and the rule that does it. Every answer links to the full walkthrough.

How do I get notified when a website changes?

Create a monitor with the page URL, pick an extractor for the part you care about, and set a rule. Verid re-checks on your interval, diffs the result against the previous run, and notifies you only when the rule matches - not on every cookie banner or timestamp.

How do I track competitor prices automatically?

Point a CSS or XPath extractor at the price element on each competitor product page, then gate delivery on a percentage-drop predicate. The webhook carries the old and the new price, so repricing can run straight off the payload instead of a nightly scrape.

How do I check SERP rankings from a different location?

The search URL is the input, so you set hl, gl, and uule yourself and run one monitor per market. Verid renders the results page, extracts positions, titles, and AI Overview blocks, and alerts you when any of them move.

How do I set up back-in-stock alerts?

Extract the availability string with a CSS selector or regex, then fire only when that field equals your in-stock value. You hear about the restock itself and stay quiet through every unrelated edit to the product page.

How do I monitor policy or regulatory changes?

Full-page hashing catches any change on a register, tender board, or policy landing page without writing a selector first. Run it daily, deliver to email or Slack, and you get a plain summary of what moved on pages that publish without notice.

How do I get alerted when WHOIS or domain ownership changes?

Monitor a WHOIS or RDAP lookup endpoint and use JSONPath to pull registrar, nameservers, and expiry into named fields. A change predicate on any of them turns a silent transfer or expiry into a webhook you can act on.

How do I watch a price or number inside a JSON API?

Give the endpoint to a JSONPath extractor and name the fields you want. No scraper, no HTML parsing: the monitor stores the last value, compares the new one, and fires on the threshold you set for crypto, stocks, or FX rates.

How do I follow a site that has no RSS feed?

Watch the sitemap or the listing page instead. Verid extracts the current set of URLs or list items, diffs it against the last run, and sends the new entries as they appear - the feed the site never published.

Pricing

Start free. Upgrade when you outgrow it.

A permanent free plan with a real monthly budget - no credit card, no time limit. Paid plans add frequency, monitors, history, and proxy bandwidth.

Free
$0
5 monitors
Daily checks (24h minimum)
14-day history
1 delivery endpoint per monitor
Lite
$9 /mo
25 monitors
Hourly checks (2h minimum)
90-day history
2 delivery endpoints per monitor
Editor's Pick
Starter
$19 /mo
50 monitors
Hourly checks (1h minimum)
180-day history
3 delivery endpoints per monitor
Pro
$49 /mo
250 monitors
15-minute checks
365-day history
10 delivery endpoints per monitor
Scale
$149 /mo
1,500 monitors
5-minute checks
2-year history
25 delivery endpoints per monitor

Frequent questions

Short answers to what people ask before they sign up.

Does Verid handle JavaScript-rendered pages?

Yes. Static fetch runs first; if extraction returns empty fields, the job automatically retries with a headless browser. Bot-protected sites fall through to a residential proxy.

What happens when a site changes its HTML?

If your CSS or XPath selector breaks, the LLM extractor is a fallback you can switch to with a config change describe the field in natural language and re-run. No code deploy.

How is this different from Browserless, Apify, or ScrapingBee?

Those return HTML. You still have to schedule, diff, store state, and define alert rules yourself. Verid is the whole loop in one API call you write the predicate, we run the rest.

How do you avoid alert noise on dynamic pages?

Predicates. Verid only fires deliveries when the rule you defined returns true price dropped 10%, version field changed, stock string matches a regex. Other byte-level changes are ignored.

Is the webhook signed?

Yes. Every webhook is signed with an HMAC using your monitor’s secret. We retry up to 6 times with exponential backoff and dead-letter anything that still fails.

Is Verid a Google Alerts alternative?

For anything beyond keyword mentions, yes. Google Alerts only reports newly indexed news and blog results and has no public API. Verid monitors the URL you choose, extracts a named field such as price or version, and delivers a signed webhook, Slack, Discord, or email alert when your rule fires.

Do I need to write code to set up an alert?

No. You can create a monitor in the dashboard by pasting a URL, picking an extractor, and choosing a rule and a destination. The REST API and Node SDK exist for when you want to create or manage monitors programmatically.

Get started

5 monitors, the full extraction loop, signed webhooks no credit card, no time limit.