Extract exactly what you need.
From CSS selectors to AI-powered extraction - choose the method that fits your source. Every method returns structured JSON fields you can use in your diff conditions.
Best for HTML pages with stable structure
CSS Selector
Target any HTML element using standard CSS selector syntax - the same selectors you use in JavaScript and browser DevTools. Verid extracts the text content or attribute of each matched element.
When to use
Use when the page has a predictable HTML structure, such as product pages, news articles, documentation, or dashboards. If you can right-click → Inspect in your browser and identify the element, CSS is the right choice.
extract_config
{
"method": "css",
"fields": {
"price": ".product-price",
"availability": "#stock-status",
"title": "h1.product-title"
}
}extracted output
{
"price": "$29.99",
"availability": "In Stock",
"title": "Wireless Headphones Pro"
}Best for complex HTML traversal
XPath
XPath gives you more expressive power than CSS - navigate up the DOM tree, select by text content, combine conditions, and access attributes that CSS can't reach. Verid supports XPath 1.0 expressions.
When to use
Use when CSS selectors aren't expressive enough. Common cases: selecting a sibling of an element with known text, navigating table structures, or extracting attributes from deeply nested nodes.
extract_config
{
"method": "xpath",
"fields": {
"price": "//span[contains(@class,'price')]/text()",
"rating": "//div[@data-testid='rating']/@aria-label"
}
}extracted output
{
"price": "29.99",
"rating": "4.5 out of 5 stars"
}Best for REST APIs and JSON feeds
JSONPath
Point Verid at any URL that returns JSON and extract specific values using JSONPath expressions - the JSON equivalent of XPath. Works great for GitHub APIs, npm registry, CoinGecko, and any other JSON-returning endpoint.
When to use
Use when the monitored URL returns JSON. No HTML parsing overhead - Verid parses the JSON directly and extracts your fields with zero ambiguity.
extract_config
{
"method": "json_path",
"fields": {
"version": "$.tag_name",
"published": "$.published_at",
"prerelease": "$.prerelease"
}
}extracted output
{
"version": "v19.1.0",
"published": "2026-04-10T14:23:00Z",
"prerelease": false
}Best for unstructured text and specific patterns
Regex
Run a regular expression against the full page source and extract named capture groups as fields. Useful for pages where DOM structure is unreliable or when you need to match a specific pattern in the raw text.
When to use
Use when the data you want is embedded in text without a stable HTML structure - version numbers in changelogs, prices in unstructured descriptions, dates in body copy, or code snippets.
extract_config
{
"method": "regex",
"fields": {
"version": "version[:\s]+v?(?<version>[\d.]+)",
"build": "build[:\s]+#?(?<build>\d+)"
}
}extracted output
{
"version": "2.4.1",
"build": "4892"
}Best for any-change detection
Full Page
Captures a normalized snapshot of the entire page - stripping dynamic attributes like timestamps and session IDs - and computes a hash. Any meaningful content change triggers a notification.
When to use
Use when you don't know which part of the page will change, or when you want to catch any modification. Good for monitoring terms of service, privacy policies, documentation pages, and status pages.
extract_config
{
"method": "full_page"
}extracted output
{
"hash": "a3f5b2c1d4e...",
"length": 42381
}Best for dynamic or hard-to-parse pages
LLM Extraction
Describe what you want in plain English and let the AI do the extraction. Verid sends the page content to a fast, JSON-capable LLM and returns structured JSON matching your description. A secondary model is used automatically as a fallback if the primary fails. Great for pages that resist traditional selectors.
When to use
Use when the page structure is too dynamic for CSS/XPath, when you need semantic understanding of content, or when you want to prototype quickly without writing selectors. Results are cached for 30 days - repeat runs on unchanged content do not count against your monthly LLM extraction quota.
extract_config
{
"method": "llm",
"prompt": "Extract the job title, company name, location, and salary range if listed. Return as JSON with keys: title, company, location, salary."
}extracted output
{
"title": "Senior Backend Engineer",
"company": "Acme Corp",
"location": "Remote - US",
"salary": "$160k–$200k"
}Jump to a method
Ready to extract?
Start for free - 5 monitors, no credit card required.