SaaSPricingIntelligence
Pricing
Pay per event
SaaSPricingIntelligence
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
| Parameter | Type | Description | Default |
|---|---|---|---|
companies | array | List of companies with name, pricing_url, and optional category | Required |
monitoring_frequency | string | How often to check (hourly/daily/weekly/monthly) | daily |
change_detection | boolean | Compare with historical data to detect changes | true |
enable_enrichment | boolean | Enable competitive analysis features | true |
use_proxies | boolean | Use Apify residential proxies | true |
proxy_country | string | Proxy country code (US, GB, CA, etc.) | US |
minimum_confidence | integer | Minimum confidence score (0-100) to include results | 70 |
include_screenshots | boolean | Capture screenshots of pricing pages | true |
max_concurrency | integer | Maximum concurrent requests | 3 |
max_tasks_per_minute | integer | Rate limit for requests | 20 |
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
- Create a scheduled run in Apify Console
- Set up a webhook pointing to Zapier/Make
- Configure Zapier to send Slack message when significant changes detected
Technical Details
Extraction Strategy:
- Load pricing page with Playwright (headless Chrome)
- Execute multi-layer extraction (JS evaluation, DOM parsing, text analysis)
- Normalize and structure data
- Calculate confidence scores
- Compare with historical data if available
- 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.
On this page
Share Actor:
