SaaS Pricing Page Monitor avatar

SaaS Pricing Page Monitor

Pricing

$0.80 / 1,000 checked pricing pages

Go to Apify Store
SaaS Pricing Page Monitor

SaaS Pricing Page Monitor

Monitor public SaaS pricing pages for deterministic plan and price candidate changes without browser automation.

Pricing

$0.80 / 1,000 checked pricing pages

Rating

0.0

(0)

Developer

Marcel K

Marcel K

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Monitor public SaaS pricing pages for deterministic plan and price candidate changes without browser automation, logins, cookies, screenshots, or LLM calls.

What it does

  • Fetches public HTTPS pricing pages with strict byte and target limits.
  • Extracts visible plan-like price candidates such as $19/mo, €49/month, Custom pricing, or Contact sales.
  • Stores a normalized baseline snapshot per target and baselineKey.
  • Compares each new run with the previous baseline.
  • Outputs changed pages by default, or all pages when includeUnchanged=true.

Good use cases

  • SaaS founders tracking competitor pricing-page changes.
  • Agencies monitoring client and competitor price pages.
  • Product marketers watching plan packaging changes.
  • RevOps and research teams collecting lightweight pricing evidence.

Input

  • targets: public HTTPS pricing page URLs or bare domains/paths, for example example.com/pricing.
  • maxTargets: safety cap, maximum 25 targets in v1.
  • includeUnchanged: include pages that have not changed since the previous baseline.
  • baselineKey: namespace for schedules, clients, or competitor sets.
  • maxChars: maximum HTML characters parsed by the deterministic extractor.
  • maxBytes: maximum upstream bytes read per page before streaming is cancelled.
  • includeRawContext: include short visible-text snippets around each price candidate.

Example input:

{
"targets": ["https://example.com/pricing"],
"maxTargets": 10,
"includeUnchanged": false,
"baselineKey": "competitors-weekly",
"maxChars": 60000,
"maxBytes": 524288,
"includeRawContext": true
}

Output

Each dataset item represents one checked pricing page that changed, or one included unchanged page when includeUnchanged is enabled.

Important fields:

  • normalizedTarget: normalized public HTTPS pricing page URL.
  • status: ok, partial, or error.
  • changed: whether the current pricing candidate snapshot differs from the previous baseline.
  • previousPriceCandidates: plan/price candidates from the previous baseline.
  • currentPriceCandidates: plan/price candidates from the current page.
  • changeTypes: status and/or price_candidates.
  • snapshotHash: stable SHA-256 hash used for future comparisons.
  • warnings: non-fatal warning codes such as no_price_candidates, non_html_content_type, or upstream_body_truncated.

Example dataset item:

{
"normalizedTarget": "https://example.com/pricing",
"checkedAt": "2026-07-06T01:25:31.000Z",
"status": "ok",
"changed": true,
"previousPriceCandidates": [],
"currentPriceCandidates": [
{ "planName": "Pro", "priceText": "$19/mo", "context": "Pro $19/mo For growing teams" }
],
"changeTypes": ["status", "price_candidates"],
"snapshotHash": "...",
"warnings": []
}

Pricing

This Actor uses Apify Pay Per Event with one custom event:

EventWhen it is chargedCandidate price
checked-pricing-pageBefore each public pricing page is fetched and checked, including unchanged checks that may be omitted from output$0.0012

That equals $1.20 per 1,000 checked pricing pages. Pricing is page-based rather than dataset-item based because unchanged checks still consume runtime while includeUnchanged=false omits unchanged dataset rows.

The current price is conservative for the first live cost-smoke. Reprice only after 1/10/25 target Apify cloud runs prove platform cost share stays below the 20-25% target.

Limitations

  • Public HTTPS pricing pages only.
  • No browser rendering, screenshots, login pages, cookies, or private-network fetching.
  • No LLM normalization in v1; output is deterministic evidence, not canonical price intelligence.
  • Static HTML only. JavaScript-rendered prices may be missed.
  • Candidate extraction is heuristic and should be treated as monitoring evidence, not financial advice.
  • Third-party product and company names belong to their owners. This Actor is unofficial and not affiliated with monitored sites.
  1. Run once with a stable baselineKey to create the first baseline.
  2. Schedule repeat runs with the same baselineKey.
  3. Keep includeUnchanged=false for compact change-only datasets.
  4. Enable includeUnchanged=true when you need an audit trail of all checks.
  5. Review warnings before treating a page as fully monitored.