SaaSPricingIntelligence avatar
SaaSPricingIntelligence

Pricing

Pay per event

Go to Apify Store
SaaSPricingIntelligence

SaaSPricingIntelligence

Developed by

Eliud Munyala

Eliud Munyala

Maintained by Community

Monitor competitor pricing pages and extract structured pricing data from SaaS companies. Track pricing changes over time and analyze competitive positioning.

0.0 (0)

Pricing

Pay per event

0

1

1

Last modified

4 days ago

SaaS Pricing Intelligence Monitor

Monitor competitor pricing pages and extract structured pricing data from SaaS companies. Track pricing changes over time and analyze competitive positioning.

What This Actor Does

This actor scrapes pricing pages from SaaS companies and extracts:

  • Pricing tiers and plans
  • Prices and billing cycles
  • Features included in each tier
  • Promotional offers and discounts
  • Enterprise/custom pricing indicators

It can detect changes compared to historical data and provide basic competitive analysis.

Use Cases

  • Product Teams - Monitor competitor pricing and feature changes
  • Pricing Analysts - Track market pricing trends across multiple competitors
  • Business Intelligence - Collect competitive pricing data for analysis

Quick Start

Basic Configuration

{
"companies": [
{
"name": "Slack",
"pricing_url": "https://slack.com/pricing",
"category": "collaboration"
},
{
"name": "Notion",
"pricing_url": "https://www.notion.so/pricing",
"category": "productivity"
}
],
"monitoring_frequency": "daily",
"change_detection": true,
"use_proxies": true
}

Input Parameters

ParameterTypeDescriptionDefault
companiesarrayList of companies with name, pricing_url, and optional categoryRequired
monitoring_frequencystringHow often to check (hourly/daily/weekly/monthly)daily
change_detectionbooleanCompare with historical data to detect changestrue
enable_enrichmentbooleanEnable competitive analysis featurestrue
use_proxiesbooleanUse Apify residential proxiestrue
proxy_countrystringProxy country code (US, GB, CA, etc.)US
minimum_confidenceintegerMinimum confidence score (0-100) to include results70
include_screenshotsbooleanCapture screenshots of pricing pagestrue
max_concurrencyintegerMaximum concurrent requests3
max_tasks_per_minuteintegerRate limit for requests20

Output Data

The actor outputs structured JSON data for each company:

{
"company": "Slack",
"url": "https://slack.com/pricing",
"category": "collaboration",
"extraction_timestamp": "2025-10-16T10:00:00Z",
"pricing_data": {
"total_tiers_found": 3,
"tiers": [
{
"name": "Pro",
"price": "$7.25",
"price_numeric": 7.25,
"currency": "USD",
"billing_cycle": "monthly",
"features": ["Unlimited message history", "Guest access"],
"is_enterprise": false
}
],
"has_enterprise_tier": true,
"promotions_found": ["25% off annual plans"]
},
"changes_detected": {
"has_changes": true,
"change_type": "price_increase",
"severity": "moderate",
"price_changes": [
{
"tier": "Pro",
"field": "price",
"old_value": "$6.67",
"new_value": "$7.25",
"change_percentage": 8.7
}
]
},
"confidence_score": 85.5,
"screenshot_key": "pricing_slack_20251016.png"
}

Features

Data Extraction

  • Multi-layer extraction using JavaScript evaluation and DOM parsing
  • Handles dynamic pricing pages (React, Vue, Angular)
  • Confidence scoring for data quality
  • Screenshot capture for visual verification

Change Detection

  • Compares current data with historical snapshots
  • Identifies price changes, new tiers, and removed features
  • Severity classification (minor, moderate, major)
  • Stores historical data in Apify Key-Value Store

Competitive Analysis (Optional)

When enable_enrichment is enabled:

  • Market positioning analysis (compares pricing across competitors)
  • Identifies pricing gaps and opportunities
  • Basic recommendations based on competitive data

Anti-Detection

  • Residential proxy rotation
  • Randomized request delays
  • Human-like browser behavior
  • Automatic retry on failures

Limitations

  • Accuracy: Extraction accuracy depends on page structure. Complex or non-standard pricing pages may have lower confidence scores.
  • Dynamic Pricing: Cannot extract personalized/user-specific pricing that requires authentication.
  • Enterprise Pricing: "Contact Sales" tiers are flagged but actual prices cannot be extracted.
  • Rate Limits: Respects rate limiting to avoid detection (processes 3-5 pages per minute by default).

Pricing & Performance

Typical Resource Usage:

  • Simple pricing page: 5-10 seconds, ~0.002-0.005 compute units
  • Complex SPA: 15-30 seconds, ~0.008-0.015 compute units

Monthly Estimates:

  • 5 competitors, daily monitoring: ~40-80 compute units/month
  • 20 competitors, weekly monitoring: ~60-120 compute units/month
  • 50 competitors, monthly monitoring: ~50-100 compute units/month

Costs increase with:

  • Proxy usage (+~20%)
  • Screenshot capture (+~10%)
  • Complex pages requiring longer processing

Integrations

Use Apify's built-in features to integrate with your workflow:

  • Scheduled Runs - Set up automatic monitoring (daily, weekly, etc.)
  • Webhooks - Get notified when runs complete
  • Dataset API - Access results programmatically via REST API
  • Zapier/Make - Connect to thousands of apps for notifications and data export

Example: Slack Notifications

  1. Create a scheduled run in Apify Console
  2. Set up a webhook pointing to Zapier/Make
  3. Configure Zapier to send Slack message when significant changes detected

Technical Details

Extraction Strategy:

  1. Load pricing page with Playwright (headless Chrome)
  2. Execute multi-layer extraction (JS evaluation, DOM parsing, text analysis)
  3. Normalize and structure data
  4. Calculate confidence scores
  5. Compare with historical data if available
  6. Apply competitive analysis enrichment (optional)

Supported Page Types:

  • Static HTML pricing tables
  • JavaScript-rendered SPAs (React, Vue, Angular)
  • Toggle-based pricing (monthly/annual switches)
  • Multi-currency pricing pages

Error Handling:

  • Automatic retries on network failures
  • Progressive validation (skips invalid URLs, continues with valid ones)
  • Detailed error logging for troubleshooting

FAQ

Q: How accurate is the data extraction? A: Accuracy varies by page structure. Structured pricing pages typically achieve 80-90% confidence. Complex or unconventional layouts may be lower. Check the confidence_score field in output.

Q: Can it handle pricing that changes based on user location? A: Yes, use the proxy_country parameter to view pricing from different geographic locations.

Q: What happens if a pricing page blocks the scraper? A: The actor uses residential proxies and anti-detection techniques. If blocked, it will retry. Enable use_proxies and use appropriate request_delay settings.

Q: How is historical data stored? A: Historical pricing snapshots are stored in Apify Key-Value Store under key historical_pricing_data. Data persists across runs.

Q: Can I monitor more than 50 companies? A: Yes, but the default limit is 50 per run. Contact support for bulk monitoring needs.

Support

For issues, questions, or feature requests, please contact Apify support or report issues on the actor's GitHub repository.


Built on Apify platform. Powered by Playwright and Crawlee for Python.