SaaS Pricing Monitor avatar

SaaS Pricing Monitor

Pricing

from $1.50 / 1,000 results

Go to Apify Store
SaaS Pricing Monitor

SaaS Pricing Monitor

Monitor SaaS pricing pages for plan, price, and billing changes with historical snapshots and structured diffs.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Daniel Ferreira de Almeida

Daniel Ferreira de Almeida

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Monitor SaaS pricing pages, keep a running history, and detect plan-level changes with a clean diff between runs.

What this Actor does

This Actor monitors one or more public pricing pages, extracts the visible plan structure, and compares the current snapshot against the previous one stored in Apify Key-Value Store.

Use it to answer questions such as:

  • Did a monthly or annual price change?
  • Was a plan added, removed, renamed, or reordered?
  • Did billing periods, limits, or CTA text change?
  • Did a free tier, trial, or feature list change?

Premium capabilities

  • Historical snapshots per URL
  • Structured plan extraction
  • Diff output with added, removed, and changed plans
  • Change status: new, unchanged, changed, error
  • Compact history window for audit trails
  • Optional raw HTML capture for debugging and forensics
  • Optional webhook delivery for change notifications
  • Stable output contract for downstream dashboards, alerts, and enrichment pipelines

Best suited for

  • SaaS competitor monitoring
  • Pricing intelligence and market research
  • Vendor watchlists and procurement workflows
  • Sales enablement and lead qualification
  • Product and growth teams tracking competitor positioning

Input

  • urls — pricing pages to monitor
  • html — optional single HTML fixture for offline validation
  • planCardSelector — optional CSS selector for pricing cards
  • priceSelector — optional selector for the price element inside each card
  • ctaSelector — optional selector for the CTA element inside each card
  • featureSelector — optional selector for feature items inside each card
  • includeHistory — include historical snapshots in the output
  • historyLimit — maximum number of historical snapshots to keep per URL
  • includeSnapshot — include the current snapshot object in the output
  • includeRawHtml — include the raw HTML in the output
  • maxTextChars — cap the preview text length
  • timeoutSecs — request timeout per page
  • webhookUrl — optional webhook for change notifications
  • runLabel — optional label for downstream tracking

Example input

{
"urls": ["https://example.com/pricing"],
"includeHistory": true,
"historyLimit": 10,
"includeSnapshot": true,
"includeRawHtml": false,
"maxTextChars": 4000,
"timeoutSecs": 30,
"runLabel": "weekly-pricing-check"
}

Output

Each dataset item includes:

  • page metadata
  • extracted plans
  • content hash
  • change status
  • changed fields
  • diff summary
  • historical snapshots
  • optional raw HTML and current snapshot

Example output fields

  • url
  • finalUrl
  • pageTitle
  • productName
  • detectedPlanCount
  • plans[]
  • changeStatus
  • changedFields[]
  • diff.addedPlans[]
  • diff.removedPlans[]
  • diff.changedPlans[]
  • history[]

Behavior notes

  • Designed for pricing pages, not generic site crawling
  • Works best on pages where plans are exposed in cards, tables, or clearly structured sections
  • Supports fallback extraction for less consistent layouts
  • Keeps prior snapshots in a dedicated Key-Value Store namespace
  • Returns error items per URL instead of failing the whole run when one page is unavailable

Typical workflow

  1. Provide one or more pricing URLs.
  2. Run the Actor on a schedule.
  3. Compare the new snapshot with the previous one.
  4. Trigger alerts or downstream processing when changeStatus is changed.

Good inputs

  • Competitor pricing pages
  • Product pricing pages
  • Plan comparison pages
  • Upgrade / billing / enterprise pages that expose plan details

Limitations

  • Public pages only unless you provide HTML directly
  • Highly dynamic or canvas-based pricing widgets may need custom selectors
  • If a site renders pricing entirely after complex client-side interaction, you may need to tune selectors or provide a pre-rendered HTML fixture

Store positioning

This Actor is positioned as a lightweight pricing intelligence tool: deterministic, low-maintenance, and optimized for recurring monitoring with historical diffs.

Support

If you need a custom extraction pattern for a specific pricing layout, tune the selectors in the input schema and rerun with a representative HTML fixture.