SaaS Pricing Scraper
Pricing
Pay per usage
Go to Apify Store
SaaS Pricing Scraper
Extract structured pricing data from any SaaS website. Get tiers, features, billing options as clean JSON. AI-powered.
Multi-source SaaS pricing intelligence. Extract pricing tiers, features, and competitor data from any SaaS product in seconds.
⚡ Quick Start
{"query": "Notion","useLLM": true,"llmProvider": "openai","openaiApiKey": "sk-..."}
Or with a direct URL:
{"url": "https://www.notion.so/pricing","useLLM": true,"llmProvider": "anthropic","claudeApiKey": "sk-ant-..."}
🔄 How It Works
- Discovery → Find pricing page via search or direct URL
- Scrape → Playwright captures page, clicks billing toggles automatically
- Extract → LLM or DOM selectors parse pricing tiers
- Enrich → Calculate confidence score, detect pricing model
🚀 Key Features
- Universal Scraping: Works on most SaaS pricing pages (Notion, Slack, HubSpot, Vercel, etc.)
- Smart Interactions: Auto-detects and clicks "Annual/Monthly" toggles to capture discount pricing
- LLM Extraction: Uses GPT-5.2 or Claude 4.5 Sonnet for accurate parsing of complex pricing tables
- BYOK: Bring your own OpenAI or Anthropic API key
- Structured Output: Clean JSON with tiers, features, billing options, pricing model detection
💰 Pricing
Free to use. You only pay:
- Apify platform costs (~$0.01-0.05 per run)
- Your own LLM API costs if enabled (~$0.01-0.03 per run)
🎯 Use Cases
- Founders: Benchmark pricing against competitors before launch
- Sales Teams: Get competitor pricing during deal negotiations
- VCs & Analysts: Track SaaS pricing trends across sectors
- Procurement: Verify you're getting the best deal
⚙️ Input Parameters
| Field | Type | Required | Description |
|---|---|---|---|
query | string | Yes* | Product name (e.g., "Notion", "Slack") |
url | string | Yes* | Direct pricing page URL |
useLLM | boolean | No | Enable AI extraction. Default: true |
llmProvider | string | No | openai or anthropic |
llmModel | string | No | Override model. Defaults: gpt-5.2, claude-4-5-sonnet-latest |
openaiApiKey | string | No | Your OpenAI key |
claudeApiKey | string | No | Your Anthropic key |
*Either query or url required
📊 Output Example
{"product": {"name": "Notion","website": "https://www.notion.so/pricing"},"pricing": {"model": "seat-based","has_free_tier": true,"currency": "USD","billing_options": ["monthly", "annual"],"tiers": [{"name": "Free","price_monthly": 0,"price_annual": 0,"price_unit": "per member","features": ["Collaborative workspace", "Basic page analytics"]},{"name": "Plus","price_monthly": 10,"price_annual": 8,"price_unit": "per member","features": ["Unlimited blocks", "Unlimited file uploads", "30-day page history"]},{"name": "Business","price_monthly": 18,"price_annual": 15,"price_unit": "per member","features": ["SAML SSO", "Advanced analytics", "90-day page history"]}]},"metadata": {"extraction_status": "success","extraction_method": "llm-openai","confidence_score": 0.95,"tiers_found": 4}}
📈 Confidence Scores
| Score | Meaning |
|---|---|
| 0.9+ | High confidence, LLM validated |
| 0.7-0.9 | Good, DOM extraction worked |
| 0.3-0.7 | Partial data, some tiers may be missing |
| <0.3 | Low confidence, enable LLM for better results |
⚠️ Limitations
- Enterprise pricing (Salesforce, SAP, Oracle) often requires login
- Usage-based pricing shows estimates only
- Some sites block automated browsers
- Results cached 24 hours to reduce costs
- No LLM fallback returns empty tiers if selectors fail
🔗 API Integration
Run programmatically via Apify API:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('datahq/saas-pricing-radar').call({query: 'Notion',useLLM: true,llmProvider: 'openai',openaiApiKey: process.env.OPENAI_API_KEY});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
📬 Feedback
Found a bug or have a feature request? Use the Issues tab or leave a review.