Monitor Competitor Pricing

Stay ahead of your competition by automatically tracking their pricing changes. This guide shows you how to monitor competitor websites for price updates, product launches, and promotional changes.

Prerequisites

  • Supacrawler API key
  • Competitor website URLs to monitor
  • Email or webhook endpoint for price alerts

Quick example

Monitor a competitor's pricing page for changes:

curl -X POST https://api.supacrawler.com/api/v1/watch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://competitor.com/pricing",
    "frequency": "daily",
    "selector": ".price, .pricing-plan, .cost",
    "notify_email": "[email protected]",
    "notification_preference": "changes_only"
  }'

Multi-competitor monitoring

Track pricing across multiple competitors:

import requests
import os

competitors = [
    {
        "name": "Competitor A",
        "pricing_url": "https://competitor-a.com/pricing",
        "selector": ".price-amount, .plan-price"
    },
    {
        "name": "Competitor B", 
        "pricing_url": "https://competitor-b.com/plans",
        "selector": ".pricing-card .price, .monthly-price"
    },
    {
        "name": "Competitor C",
        "pricing_url": "https://competitor-c.com/subscribe",
        "selector": ".subscription-price, .plan-cost"
    }
]

api_key = os.environ['SUPACRAWLER_API_KEY']

for competitor in competitors:
    response = requests.post("https://api.supacrawler.com/api/v1/watch",
        headers={
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json"
        },
        json={
            "url": competitor["pricing_url"],
            "frequency": "daily",
            "selector": competitor["selector"],
            "notify_email": f"pricing-{competitor['name'].lower().replace(' ', '-')}@company.com",
            "notification_preference": "changes_only",
            
            # Webhook for analysis
            "webhook_url": "https://company.com/api/competitor-pricing",
            "webhook_headers": {
                "X-Competitor": competitor["name"],
                "X-Alert-Type": "pricing-change"
            },
            
            # Full context capture
            "include_image": True,
            "include_html": True
        }
    )
    
    result = response.json()
    if result.get('success'):
        print(f"✅ {competitor['name']}: {result['watch_id']}")
    else:
        print(f"❌ {competitor['name']}: {result.get('error')}")

CSS selectors for pricing pages

  • Name
    Price amounts
    Type
    .price, .price-amount, .cost
    Description

    Common price display elements

  • Name
    Pricing plans
    Type
    .pricing-plan, .plan-card, .subscription
    Description

    Plan containers with pricing information

  • Name
    Monthly/yearly
    Type
    .monthly-price, .annual-price, .billing
    Description

    Billing period specific prices

  • Name
    Features
    Type
    .feature-list, .plan-features, .included
    Description

    Feature lists that might change with pricing

Best practices

  • Daily monitoring: Most suitable for B2B SaaS pricing
  • Screenshot evidence: Always capture visual proof of changes
  • Feature tracking: Monitor features alongside pricing changes
  • Historical analysis: Store data for trend analysis
  • Competitive response: Set up alerts for immediate pricing adjustments

Was this page helpful?