amazonfbamonitoring

Amazon FBA Product Monitoring via Search API

Monitor Amazon product rankings and pricing for $0.50/day with search API instead of $39/mo Helium 10.

7 min

Monitoring 100 Amazon products daily with a search API costs $0.50/day ($15/mo), compared to $39+/mo for Helium 10 or $19+/mo for Keepa. The tradeoff: you build the monitoring logic yourself, but you own the data and the pipeline.

Why FBA sellers need automated monitoring

Amazon changes listings constantly. Titles get edited by Amazon's catalog team. Buy Box ownership shifts. Competitors adjust pricing daily. A product ranking #3 for a keyword on Monday can drop to #15 by Friday because a competitor ran a Lightning Deal and accumulated reviews. Manual checking does not scale past 10-20 ASINs.

What to track

Three signals matter most: keyword ranking position (where your product appears for target search terms), price changes (your listing and top competitors), and organic result count (how many competitors appear for your keywords). Tracking these daily gives you a dataset that shows trends before they become problems.

Daily monitoring script

Python
import requests, os, json, csv
from datetime import datetime

API = 'https://api.scavio.dev/api/v1/search'
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

PRODUCTS = [
    {'asin': 'B0CXYZ1234', 'keyword': 'wireless earbuds noise cancelling'},
    {'asin': 'B0CXYZ5678', 'keyword': 'bluetooth headphones over ear'},
    # Add up to 100 products
]

def check_ranking(keyword: str, target_asin: str):
    resp = requests.post(API, headers=H, json={
        'platform': 'amazon',
        'query': keyword,
    }, timeout=15)
    results = resp.json().get('organic_results', [])
    for i, r in enumerate(results):
        if target_asin in r.get('link', ''):
            return {
                'position': i + 1,
                'title': r.get('title'),
                'price': r.get('price'),
                'rating': r.get('rating'),
            }
    return {'position': None, 'title': None, 'price': None, 'rating': None}

today = datetime.now().strftime('%Y-%m-%d')
rows = []
for product in PRODUCTS:
    result = check_ranking(product['keyword'], product['asin'])
    rows.append({
        'date': today,
        'asin': product['asin'],
        'keyword': product['keyword'],
        **result,
    })

with open(f'rankings_{today}.csv', 'w', newline='') as f:
    w = csv.DictWriter(f, fieldnames=rows[0].keys())
    w.writeheader()
    w.writerows(rows)
print(f"Tracked {len(rows)} products, {sum(1 for r in rows if r['position'])} found in results")

Setting up daily runs

A cron job or GitHub Actions workflow runs this script once or twice daily. The CSV files accumulate into a dataset you can analyze for trends. For alerting, add a check: if position drops by more than 5 spots or price changes by more than 10%, send a Slack notification.

Python
# Alert on significant changes
import json

def load_previous(asin):
    try:
        with open('previous_rankings.json') as f:
            return json.load(f).get(asin, {})
    except FileNotFoundError:
        return {}

for row in rows:
    prev = load_previous(row['asin'])
    if prev.get('position') and row['position']:
        drop = row['position'] - prev['position']
        if drop >= 5:
            print(f"ALERT: {row['asin']} dropped {drop} spots for '{row['keyword']}'")

Cost breakdown at scale

100 products x 1 query each x 30 days = 3,000 queries/mo. At $0.005/query that is $15/mo, well within Scavio's $30/mo plan (7K credits). Checking twice daily doubles it to $30/mo. Adding competitor keyword tracking (5 extra keywords per product) pushes it to 18,000 queries/mo, covered by the $100/mo plan (28K credits). Compare this to Helium 10 at $39/mo for their Starter plan which caps keyword tracking at 20 keywords.

Limitations of the DIY approach

You do not get Keepa's historical price charts or Helium 10's keyword suggestion engine. You build your own alerting and dashboards. The advantage is full control over the data, no platform lock-in, and the ability to combine Amazon monitoring with Google Shopping and Walmart tracking in the same pipeline at the same per-query cost.