ScavioScavio
ProductPricingDocs
Sign InGet Started
  1. Home
  2. Tutorials
  3. How to Build a Shopify Competitor Tracker API
Tutorial

How to Build a Shopify Competitor Tracker API

Track Shopify competitor products, pricing, and rankings with automated search API queries. Monitor new products, price changes, and SEO positions.

Get Free API KeyAPI Docs

Build a Shopify competitor tracker that monitors rival stores' product listings, pricing, and search rankings by searching for competitor products across Google and Amazon, extracting price and availability data, and comparing changes over time. Shopify store owners need to know when competitors launch new products, change prices, or gain search ranking positions. An automated tracker catches these changes daily without manual browsing, and the search API provides structured data that is easier to process than raw HTML scraping.

Prerequisites

  • Python 3.8+ installed
  • requests library installed
  • A Scavio API key from scavio.dev
  • Competitor store names or product categories

Walkthrough

Step 1: Define competitors to track

Set up the competitor stores and product categories to monitor.

Python
import os, requests, json, datetime, time, re

API_KEY = os.environ['SCAVIO_API_KEY']

COMPETITORS = [
    {'name': 'CompetitorA', 'domain': 'competitor-a.myshopify.com', 'categories': ['t-shirts', 'hoodies']},
    {'name': 'CompetitorB', 'domain': 'competitor-b.com', 'categories': ['sneakers', 'accessories']},
]

HISTORY_FILE = 'competitor_tracker.json'

print(f'Tracking {len(COMPETITORS)} competitors')

Step 2: Search competitor products

Query Google for competitor product pages to track their catalog.

Python
def search_competitor_products(competitor: dict) -> list:
    products = []
    for category in competitor['categories']:
        query = f'site:{competitor["domain"]} {category}'
        resp = requests.post('https://api.scavio.dev/api/v1/search',
            headers={'x-api-key': API_KEY},
            json={'platform': 'google', 'query': query}, timeout=15)
        results = resp.json().get('organic_results', [])
        for r in results[:5]:
            products.append({
                'competitor': competitor['name'],
                'category': category,
                'title': r.get('title', ''),
                'url': r.get('link', ''),
                'snippet': r.get('snippet', ''),
            })
        time.sleep(0.3)
    return products

prods = search_competitor_products(COMPETITORS[0])
print(f'Found {len(prods)} products')
for p in prods[:3]:
    print(f"  [{p['category']}] {p['title'][:50]}")

Step 3: Search competitor pricing on Amazon

Cross-reference competitor products on Amazon to compare pricing.

Python
def search_amazon_pricing(product_name: str) -> dict:
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'platform': 'amazon', 'query': product_name}, timeout=15)
    results = resp.json().get('organic_results', [])
    if not results:
        return {'found': False}
    top = results[0]
    price_str = top.get('price', '')
    price_clean = re.sub(r'[^\d.]', '', str(price_str))
    return {
        'found': True,
        'title': top.get('title', ''),
        'price': float(price_clean) if price_clean else 0,
        'rating': top.get('rating', ''),
        'url': top.get('link', ''),
    }

for p in prods[:2]:
    amazon = search_amazon_pricing(p['title'][:40])
    if amazon['found']:
        print(f"  {p['title'][:30]}: Amazon ${amazon['price']}")

Step 4: Track search rankings

Monitor where competitors rank for target keywords.

Python
def track_rankings(keywords: list, competitor_domains: list) -> list:
    rankings = []
    for keyword in keywords:
        resp = requests.post('https://api.scavio.dev/api/v1/search',
            headers={'x-api-key': API_KEY},
            json={'platform': 'google', 'query': keyword}, timeout=15)
        results = resp.json().get('organic_results', [])
        for i, r in enumerate(results):
            link = r.get('link', '')
            for domain in competitor_domains:
                if domain in link:
                    rankings.append({
                        'keyword': keyword,
                        'competitor': domain,
                        'position': i + 1,
                        'title': r.get('title', ''),
                        'date': datetime.date.today().isoformat(),
                    })
        time.sleep(0.3)
    return rankings

domains = [c['domain'] for c in COMPETITORS]
rankings = track_rankings(['trendy t-shirts', 'custom hoodies'], domains)
for r in rankings:
    print(f"  #{r['position']}: {r['competitor']} for '{r['keyword']}'")

Step 5: Generate competitor report

Produce a daily report comparing competitor activity, pricing, and rankings.

Python
def daily_report(competitors: list) -> str:
    lines = [f'Competitor Report - {datetime.date.today().isoformat()}', '']
    for comp in competitors:
        lines.append(f'--- {comp["name"]} ({comp["domain"]}) ---')
        products = search_competitor_products(comp)
        lines.append(f'  Products indexed: {len(products)}')
        for p in products[:2]:
            amazon = search_amazon_pricing(p['title'][:40])
            price_info = f', Amazon: ${amazon["price"]}' if amazon.get('found') else ''
            lines.append(f'  - {p["title"][:40]}{price_info}')
        lines.append('')
    report = '\n'.join(lines)
    # Save report
    with open(f'competitor_report_{datetime.date.today().isoformat()}.txt', 'w') as f:
        f.write(report)
    print(report)
    return report

daily_report(COMPETITORS)

Python Example

Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def track_competitor(domain, category):
    data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'google', 'query': f'site:{domain} {category}'}).json()
    return [{'title': r.get('title', ''), 'url': r.get('link', '')}
        for r in data.get('organic_results', [])[:5]]

print(track_competitor('example.myshopify.com', 't-shirts'))

JavaScript Example

JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function trackCompetitor(domain, category) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: H,
    body: JSON.stringify({platform: 'google', query: `site:${domain} ${category}`})
  });
  return ((await r.json()).organic_results || []).slice(0, 5)
    .map(r => ({title: r.title, url: r.link}));
}
trackCompetitor('example.myshopify.com', 't-shirts').then(console.log);

Expected Output

JSON
A Shopify competitor tracking system that monitors product catalogs, compares Amazon pricing, tracks search rankings, and generates daily competitive intelligence reports.

Related Tutorials

  • How to Build a Multi-Marketplace Price Tracker
  • How to Aggregate Multi-Source Data with a Search API

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

Python 3.8+ installed. requests library installed. A Scavio API key from scavio.dev. Competitor store names or product categories. A Scavio API key gives you 50 free credits on signup.

Yes. The free tier includes 50 credits on signup, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Related Resources

Best Of

Best Shopify Competitor Analysis Tools in 2026

Read more
Best Of

Best Search APIs for Competitor Monitoring Alerts (2026)

Read more
Use Case

Shopify Competitor Monitoring via Search API

Read more
Use Case

Automated Competitor Price Tracking

Read more
Glossary

Search API Provider Landscape (2026)

Read more
Solution

Monitor Competitor Pricing Across Marketplaces

Read more

Start Building

Track Shopify competitor products, pricing, and rankings with automated search API queries. Monitor new products, price changes, and SEO positions.

Get Free API KeyRead the Docs
ScavioScavio

Real-time search API for AI agents. Search every platform, not just Google.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative

Tools

  • JSON Formatter
  • cURL to Code
  • Token Counter
  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy